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)

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

  • HugoB99 (PHASE_TEST).xlsm
    187 KB · Affichages: 25

fanfan38

XLDnaute Barbatruc
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
 
H

HugoB99

Guest
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)
 

fanfan38

XLDnaute Barbatruc
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

  • HugoB99 (PHASE_TEST).xlsm
    27.4 KB · Affichages: 37
Dernière édition:

Dranreb

XLDnaute Barbatruc
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.
 

fanfan38

XLDnaute Barbatruc
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
 
H

HugoB99

Guest

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:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…