XL 2016 Problème de validation du formulaire

Lord Fredo

XLDnaute Nouveau
Bonjour,

tout d'abord je vous souhaite une bonne et heureuse année 2020. Que cette année soit riche en formules, macros, code VBA... mais aussi pleine de réponses.

J'ai fait un petit formulaire afin de remplir au jour le jour le suivi d'utilisation de ma carte bleue mais lorsque je valide le formulaire je me retrouve avec une erreur d'exécution "13".
Je ne comprends pas trop car si je remplis toutes mes catégories cela fonctionne très bien.
 

Pièces jointes

  • Relevé Carte.xlsm
    189.5 KB · Affichages: 9
  • Capture.PNG
    Capture.PNG
    246.7 KB · Affichages: 14
Solution
Bonjour
Le fait de mettre dans le panier rempli la liste uniquement,
et tu peux en rajouter d'autres en sélectionnant une autre catégorie et la somme associée
tu peux donc mettre plusieurs lignes dans le panier , et éventuellement en supprimer par double clic.
c'est en fait lorsque tu appuies sur le bouton valider que tu valides l'ensemble du panier et que tu transfères les valeurs dans la base de donnée

Lord Fredo

XLDnaute Nouveau
Bonjour M12,
Je te souhaite également une bonne année.

J'ai modifié comme tu m'as dis mais le montant dans la catégorie concerné n'apparaît plus sous forme de nombre mais plutôt comme du texte. C'était donc pour cette raison que j'avais inséré CDbl.

De ce fait, est-ce qu'il y a un moyen d'incrémenter le tableau en gardant le format nombre ?

Merci pour ton aide
 

JM27

XLDnaute Barbatruc
Bonjour
et comme cela pour la text box 3
VB:
.Cells(DerLigne, 3) = CDbl(Left(Me.TextBox3, (Len(Me.TextBox3) - 1)))
nota: attention les dégâts si les textbox ne sont pas documentées
Le fait d'introduire des formats dans les textbox crée des pb , après c'est plus dur à traiter
il faut sécuriser ton userform en mettant des contrôles de saisie
 
Dernière édition:

JM27

XLDnaute Barbatruc
C'est simple
Une textbox renvoi du texte.
Il faut donc le convertir en numérique(CDBL)
mais il faut que cela soit compatible et ne comporte pas de caractère alphanumérique.
Mais comme tu mets le format Euros dans ta textbox (E) c'est pas possible de le transformer en cdbl
il te faut donc supprimer celui ci lors du transfert vers la feuille d'ou: len = nombre de caractères dans ta textbox
d'ou la fonction left (gauche) de ta textbox avec le nombre de caractères -1

un conseil pour la saisie des textbox : interdire la saisie des alpha
par exemple :
j'interdit de saisir des caractèteres alpha dans la combo
VB:
Private Sub Textbox3_KeyPress(ByVal Touche As MSForms.ReturnInteger)
     If InStr("0123456789.,", Chr(Touche)) = 0 Then Touche = 0
     Me.TextBox3 = Replace(Me.TextBox3, ".", ",")
End Sub

Je te mets un fichier à terminer suivant les indications figurant dans les macros
 

Pièces jointes

  • Relevé Carte .xlsm
    163.5 KB · Affichages: 4
Dernière édition:

JM27

XLDnaute Barbatruc
Bonjour
Voici une version que j'ai réalisé suivant ce que j'ai compris .
et comme je pense que l'on doit la réaliser ( mais je ne détiens pas la vérité , d'autre méthodes sont possibles)
J'ai commenté toutes les lignes de la macro afin de te faciliter la compréhension.
 

Pièces jointes

  • Relevé Carte new .xlsm
    197.1 KB · Affichages: 7

Lord Fredo

XLDnaute Nouveau
JM27,

Merci pour tout.
En regardant ton code je me suis pris la liberté d'y ajouter dans la ComboAnnée une liste déroulante. Après plusieurs tests ça fonctionne bien.Seul bémol, la liste déroulante avec les années fonctionne mais à la fin j'ai aussi les 2 années qui étaient concernées au départ.

Ci-joint le fichier pour vous montrer.

Encore merci
 

Pièces jointes

  • Relevé Carte -3.xlsm
    180.5 KB · Affichages: 9

Lord Fredo

XLDnaute Nouveau
Bonjour JM27,
C'est un très bon travail que tu as fait là.
Cependant, lorsque je remplis mon UserForm et que je clique sur "METTRE DANS LE PANIER" est-ce qu'il serait possible d'y ajouter plusieurs lignes avant de valider définitivement les opérations ?
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 854
Membres
103 975
dernier inscrit
denry