Charger les combobox

Bonjour a tous je suis nouveau sur ce forum

en fait j'ai un souci et je sollicite votre aide. Je dois créer un fichier de renseignement a partir d'un formulaire qui renseignera le tableau excel.

Mon souci est le suivant je n'arrive pas a renseigner les combox. j'ai déja essayé plusieurs code mais rien ca ne charge pas les combobox. De plus la combobox "vaccin a administrer" doit etre a choix miltiple.

le fichier est joint

Merci d'avance pour votre aide

Bonjour Elangue, bonjour le forum,

Ajoute ce code dans le module de l'UserForm :

Private Sub UserForm_Initialize()
With Sheets("DONNEES")
    Me.ComboBox3.List = .Range("A1:A" & .Cells(Application.Rows.Count, 1).End(xlUp).Row).Value 'alimentation dynamique
    Me.ComboBox2.List = .Range("E1:E2").Value 'alimentation non dynamique
End With
End Sub

Merci ThauThème pour ton aide.

Le code fonctionne mais pas a 100%. Pour les vaccins je souhaite selectionner plusieurs car le patient peut faire plusieurs vaccins en même temps.

merci

Bonjour Elangue, bonjour le forum,

Oui en effet j'avais oublier ce détail. Mais avec une ComboBox tu ne peux pas faire du MultiSelect. il faut passer par une ListBox...

Après, comment tu vas renvoyer les données dans le tableau avec plus d'un vaccin... Tu vas concaténer dans la colonne N ? Je pense que ça sera la solution la plus simple. Je t'ai écris le code pour cette partie dans le bouton Enregistrer...

37elangue-v01.xlsm (24.62 Ko)

ok merci je vais parti sur cette base

cdt


STP quand je fais le test en enregistrant la cellule vaccin change et ecrit 2

je ne comprend rien

Bonjour Elangue, bonjour le forum,

Désolé il y avait deux erreurs dans mon code et j'ai eu la sotte prétention de te l'envoyer sans le tester. En pièce jointe le fichier modifié...

36elangue-v02.xlsm (27.16 Ko)

ok merci

Par ailleurs j'ai ce code qui doit me permettre de renseigner mon tableau et réinitialiser la fiche de renseignement. Je pense kil a un problème. de plus je voudrais insérer celui que vous m'avez envoyé je n'arrive pas

aidez moi

merci

on me signale l'erreur ici

==>>Private Sub CommandButton_enregistrer_Click()

If TextBox_date.Value = "" Or TextBox_noms.Value = "" Or TextBox_prenoms.Value = "" Or TextBox_date.Value = "" Or TextBox_adresse.Value = "" Or TextBox_code.Value = "" Or TextBox_ville.Value = "" Or TextBox_tel1.Value = "" Or TextBox_email.Value = "" Or TextBox_passport.Value = "" Or TextBox_rdv.Value = "" Or ListBox1.Value = "" Or ComboBox2.Value = "" Then

MsgBox "Formulaire incomplet"

Else

'Si le formulaire est complet, on insère les valeurs sur la feuille

Dim no_ligne As Integer, Label_civilité As String

'Choix de civilité

For Each OptionButton In Frame1.Controls

If OptionButton.Value Then

civilite = OptionButton.Caption

End If

Next

'no_ligne = N° de ligne de la dernière cellule non vide de la colonne +1

no_ligne = Range("A65536").End(xlUp).Row + 1

'Insertion des valeurs sur la feuille

Cells(no_ligne, 1) = TextBox_date.Value

Cells(no_ligne, 2) = OptionButton.Value

Cells(no_ligne, 3) = TextBox_noms.Value

Cells(no_ligne, 4) = TextBox_prenoms.Value

Cells(no_ligne, 5) = TextBox_date.Value

Cells(no_ligne, 6) = TextBox_adresse.Value

Cells(no_ligne, 7) = TextBox_code.Value

Cells(no_ligne, 8) = TextBox_ville.Value

Cells(no_ligne, 9) = TextBox_tel1.Value

Cells(no_ligne, 10) = TextBox_tel2.Value

Cells(no_ligne, 11) = TextBox_email.Value

Cells(no_ligne, 12) = TextBox_passport.Value

Cells(no_ligne, 13) = TextBox_rdv.Value

Cells(no_ligne, 14) = ListBox1.Value

Cells(no_ligne, 15) = ComboBox2.Value

'Après insertion, on remet les valeurs initiales

OptionButton1.Value = True

TextBox_date.Value = ""

TextBox_noms.Value = ""

TextBox_prenoms.Value = ""

TextBox_date.Value = ""

TextBox_adresse.Value = ""

TextBox_code.Value = ""

TextBox_ville.Value = ""

TextBox_tel1.Value = ""

TextBox_tel2.Value = ""

TextBox_email.Value = ""

TextBox_passport.Value = ""

TextBox_rdv.Value = ""

ComboBox2.Value = ""

End If

End Sub

Bonsoir Elangue, bonsoir le forum,

L'erreur doit provenir du fait que je t'avais déjà proposé une partie de code pour le bouton dans Private Sub CommandButton_enregistrer_Click(). Tu devais l'avoir en double c'est pour cela que ça plantait...

Le principe que tu proposes est correct. Il fonctionnerait très bien si tes données étaient toutes du texte. Mais ce n'est pas le cas, tu risques de rencontrer des problèmes avec les dates (tu tapes 01/02/2015 et tu te retrouves avec 02/01/2015), les numéros de téléphone (le premier zéro ne s'affiche pas) et si l'utilisateur n'a choisi aucune Civilité, il n'y a aucun message d'alerte et, par conséquent, la cellule en colonne B vide.

Le code que je te propose est beaucoup plus long mais plus fiable, même si tout n'est pas bétonné...

• D'abord, parce que je suis maniaque, j'ai recréé les contrôles dans l'ordre avec le nom qui se suit. Tu peux donc utiliser la touche [Tabulation] pour naviguer dans les contrôles.

• Ensuite au niveau des Labels, je les ai toutes renommées. Elles commencent toutes par L (pour Label) suivi du nom du contrôle auquel elles font référence. LTexBox1, LFrame1, ..., LListBox1 et LComboBox1. Cela facilite les messages dans le code...

• La propriété [Tag]. Je l'utilise dans les contrôles à renseigner uniquement. Elle correspond à la colonne dans laquelle la valeur du contrôle doit être renvoyée. Comme cette propriété est de type String, je la convertie en Byte pour les adresses (F.Cells(DL, CByte(CTRL.Tag)).Value). Ça a plusieurs avantages, que tu verras dans le code, et surtout, ça permet de boucler sur les contrôles, de les différencier etc...

• pour remettre à zéro l'UserForm je préfère le fermer (Unload) puis le rouvrir (Show) mais ta méthode fonctionne aussi

Code commenté...

Remarque : L'email et Le vaccin sont-il vraiment obligatoires ?

53elangue-v03.xlsm (36.96 Ko)

Merci bcp pour ce que tu fais ces magnifique j'ai voulu comprendre mai je me suis un peu perdu dans la lecture de ton code.

Je veux améliorer ce travail et créer une base de données pour la sauvegarde et pour pouvoir apres ressortir detail des vaccins administrer par période (jour ou mois ou année).

mille fois merci

Bonjour Elangue, bonjour le forum,

Si tu dois par la suite faire des stats (filtrer ou compter) sur les vaccins, la méthode de concaténation utilisée n'est pas recommandée. Soit tu crées autant de colonnes que de vaccins (pas top), soit tu utilises autant de ligne que de vaccin pour la personne ayant plusieurs vaccin à faire (pas génial non plus).

Pour comprendre le code, en plus des commentaires que je t'ai faits, sélectionne un mot que tu ne comprends pas et appuie sur la touche [F1]. Tu ouvriras l'aide VBA qui est très bien faite avec exemples à l'appui...

merci pour tout ThauTheme tu m'as vraiment aidé

Rechercher des sujets similaires à "charger combobox"