Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Formulaire de saisie VBA (niveau novice-facile)

  • Initiateur de la discussion Initiateur de la discussion HugoB99
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

H

HugoB99

Guest
Bonjour à tous,

Aussitôt arrivé, aussitôt je vous sollicites... 🙄

Contexte :

Création d'un formulaire VBA pour une saisie plus agréable et fiable des informations dont j'ai besoin.
Le VBA est fonctionnel dans son ensemble. Je m'explique.
- La saisie se fait convenablement, tout est "adressé" dans la bonne case/colonne/ligne.
- L'ouverture du formulaire par ctrl + f fonctionne sans soucis également.
- Le bouton quitter ne pose pas de soucis non plus (vous me direz, c'est pas le plus compliqué)

Problème :

- J'ai deux ComboBox nommées respectivement ComboBox0 (qui contient une liste déroulante de code client) et ComboBox1 (qui contient une liste déroulante avec : "Client", "Prospect").
Dans un premier temps dans mon VBA, j'aimerai que les textbox + combobox1 se vide par un .clear lorsque je clique sur mon commandbutton1 "Nouveau contact".
Jusque là, la data saisie dans la combobox0 s'adresse au bon endroit dans mon classeur (tout comme le reste des textbox et combobox) SAUF QUE (et la ca part en cacahuète)
dans ma combobox1 je me retrouve avec une liste déroulante ou j'ai : "client", "Prospect", a nouveau "client" ou "prospect" qui viennent s'ajouter après que j'ai saisie une fiche client dans mon formulaire. De plus, la liste s'agrandit encore et intègre en plus d'un doublon "client" ou "prospect", le code client que j'ai définis dans ma combobox0. (Je rappelle que je n'ai aucun soucis d'adressage dans les cases, colonnes, lignes de mon tableau Excel.)

- Dans un deuxième temps, mon bouton "Modifier" ne fonctionne pas. Et la pour le coup, je suis vraiment perdu.

Quelqu'un(s) pourrai(en)t il(s) (me remerciez pas pour l'écriture inclusive xD) me filler un ptit coup de pouce ?

Bien cordialement et au plaisir de vous lire,

HB99

Nb: Vous trouverez en pj mon document, je pense que ce sera bien plus visuel pour vous.
 

Pièces jointes

Bonjour
Pourquoi dans la macro Private Sub UserForm_Initialize()
tu mets: Me.ComboBox1.AddItem Ws.Range("A" & J)

et dans la macro Private Sub CommandButton1_Click()
tu mets: Me.ComboBox1.AddItem Ws.Range("C" & J)

A+ François
 
Bonjour
Pourquoi dans la macro Private Sub UserForm_Initialize()
tu mets: Me.ComboBox1.AddItem Ws.Range("A" & J)

et dans la macro Private Sub CommandButton1_Click()
tu mets: Me.ComboBox1.AddItem Ws.Range("C" & J)

A+ François

Bonjour François,

En effet je me suis gouré, il me semble que c'est pas nécessaire a mettre et autrement j'aurai du mettre ("C" & J) ou ("A" & J)
 
Je suis en train de regarder mais je viens de constater que les adressage son pas bon textbox2=cellule(ligne,2)
Je vais chercher mon petit fils en ensuite je mis remet...
et voilà... corrections faites

A+ François
 

Pièces jointes

Dernière édition:
Bonjour.
Remarque: les très courtes procédures sont à peu près toujours les mêmes pour envoyer globalement les valeurs de tous les contrôles dans un tableau dynamique d'une ligne puis envoyez celui ci comme valeur d'une ligne nouvelle ou existante de la base. Pareil d'abord pour toute l'opération inverse. Il est recommandé de faire subir à la plage à mettre à jour une mise sous forme de tableau, lequel sera ainsi représenté par un objet VBA de type LstObject, détecté par l'Objet ComboBoxLiées.
 
Bonjour
Excuse, je n'aime pas travailler avec les messages.. Il vaut mieux continuer sur le fil...
As tu télécharger le fichier ci dessus... car les macros ne sont pas dans la version précédente...
Pour moi ça marche....

A+ François
 

Bonjour à tous,

Oui oui, j'ai bien uploadé le fichier ci dessus. Voici le bout de code qui dérange le debogeur :

'Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") <> vbYes Then Exit Sub
L = Sheets("BASE").Range("A" & Rows.Count).End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
enrdonnees (L)
End Sub

le message d'erreur : "Sub ou function non définie"

Ok, sorry pour le flood du forum. Mais j'ai trouvé!
J'ai remplacer "Commandbuton1_Click()" contre Nouveau_Click() (le nom dans la caption etant celui ci.

Je n'avais pas vu, pensant que le problème était plus conséquent.

Je tiens à vous remercier pour l'aide que vous m'avez fourni sur le sujet et plus particulièrement FanFan38 et Dranreb qui ont eu la patience et la pédagogie pour m'aider.
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
507
Réponses
3
Affichages
631
Réponses
16
Affichages
702
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…