De l'userform3, je lance l'userform5.
Dans l'userform5, apr=E8s avoir trait=E9 des donn=E9es en lien avec l'userf=
orm3, je mets =E0 jour un combobox nomm=E9 CB_Prof. Apr=E8s l'avoir vid=E9,=
je le recharge par l'interm=E9diaire de cette boucle:
For Charge =3D 9 To Nbl Step 9
UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2)
Next Charge
Le probl=E8me c'est que des lignes blanches apparaissent dans la liste d=E9=
roulante du combobox (3 =E0 chaque rechargement) et je ne comprends pas pou=
rquoi!
Quelqu'un aurait une id=E9e?
Voici un extrait du code ci-dessous o=F9 on retrouve la boucle.
Merci d'avance.
JP
--------------------------
For i =3D 9 To Nbl Step 9
If TextBox1.Value =3D Cells(i, 2).Value Then
MsgBox "La personne existe d=E9j=E0 dans la base de donn=E9es."
Exit Sub: UserForm5.Show
ElseIf ComboBox1 =3D "" Or TextBox1 =3D "" Then
MsgBox "Les champs Nom Pr=E9nom, et EP/EG sont obligatoires"
Exit Sub: UserForm5.Show
ElseIf Cells(i, 2).Value =3D "" Then
Cells(i, 1) =3D ComboBox1.Value
Cells(i, 2) =3D TextBox1.Value
Cells(i, 3) =3D TextBox2.Value
For C =3D 4 To Sheets("BD_PFMP").Range("AF3").Value + 3 ' + 3 p=
our le d=E9calage
Cells(i, C) =3D Me.Controls("TB_" & C + 46).Value ' TB_ com=
mencent =E0 50
Next C
MsgBox "Les donn=E9es ont =E9t=E9 enregistr=E9es."
' vide textbox et combobox
TextBox1 =3D ""
TextBox2 =3D ""
ComboBox1 =3D ""
For Efface =3D 50 To 81
Me.Controls("TB_" & Efface) =3D ""
Next Efface
'Mise =E0 jour de la combobox Prof de l'userform3
UserForm3.CB_Prof.Clear
For Charge =3D 9 To Nbl Step 9
UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2)
Next Charge
Exit For
End If
Next i
Jusqu'à atteindre la valeur de Nbl ... Dans ces cellules que tu prends toutes les 9 lignes (step 9) N'y a t il pas des vides...???
-- LSteph
JP
Bonjour Stephane,
Si il y a des vides. Au début de l'enrichissement de la base de données , j'ai une ligne pleine sur Nbl. Ensuite deux sur Nbl, etc.... Nbl est égale à: Nbl=Application.CountA(Sheets("BD_PFMP").Range("B9:B404"))
Normalement les lignes vides ne sont pas comptées???
Je vais mettre un point d'arrêt sur cette ligne pour voir la valeur de Nb l.
Je te tiens au courant.
Merci
JP
Bonjour Stephane,
Si il y a des vides. Au début de l'enrichissement de la base de données , j'ai une ligne pleine sur Nbl. Ensuite deux sur Nbl, etc....
Nbl est égale à:
Nbl=Application.CountA(Sheets("BD_PFMP").Range("B9:B404"))
Normalement les lignes vides ne sont pas comptées???
Je vais mettre un point d'arrêt sur cette ligne pour voir la valeur de Nb l.
Si il y a des vides. Au début de l'enrichissement de la base de données , j'ai une ligne pleine sur Nbl. Ensuite deux sur Nbl, etc.... Nbl est égale à: Nbl=Application.CountA(Sheets("BD_PFMP").Range("B9:B404"))
Normalement les lignes vides ne sont pas comptées???
Je vais mettre un point d'arrêt sur cette ligne pour voir la valeur de Nb l.
Je te tiens au courant.
Merci
JP
JP
En fait, je vois où est l'erreur. Au tout début, la première ligne sur 9 est vides. Les 8 autres contienn ent des valeurs. C'est dans la première, des blocs de 9, où je vais écrire. Peut être puis-je utiliser le code couleur pour les compter. Elles sont b leues code couleur (16764057). Si couleur = 16764057 et que la cellule contient quelque chose alors je c ompte la ligne. Le problème c'est qu'au début, Nbl sera inférieure à 9. Ma boucle n e se déclenchera pas. Je suis un peu perdu.
Si tu as une idée!
Merci
JP
En fait, je vois où est l'erreur.
Au tout début, la première ligne sur 9 est vides. Les 8 autres contienn ent des valeurs.
C'est dans la première, des blocs de 9, où je vais écrire.
Peut être puis-je utiliser le code couleur pour les compter. Elles sont b leues
code couleur (16764057).
Si couleur = 16764057 et que la cellule contient quelque chose alors je c ompte la ligne.
Le problème c'est qu'au début, Nbl sera inférieure à 9. Ma boucle n e se déclenchera pas. Je suis un peu perdu.
En fait, je vois où est l'erreur. Au tout début, la première ligne sur 9 est vides. Les 8 autres contienn ent des valeurs. C'est dans la première, des blocs de 9, où je vais écrire. Peut être puis-je utiliser le code couleur pour les compter. Elles sont b leues code couleur (16764057). Si couleur = 16764057 et que la cellule contient quelque chose alors je c ompte la ligne. Le problème c'est qu'au début, Nbl sera inférieure à 9. Ma boucle n e se déclenchera pas. Je suis un peu perdu.
Si tu as une idée!
Merci
JP
JP
J'ai omis de préciser qu'au début Nbl est égale à 352. Sur les bloc s de 9, 8 lignes contiennent des variables (titres de lignes). D'où 396 lignes /9 D blocs et 44 *8 = 352.
J'ai omis de préciser qu'au début Nbl est égale à 352. Sur les bloc s de 9, 8 lignes contiennent des variables (titres de lignes).
D'où 396 lignes /9 =44 blocs et 44 *8 = 352.
J'ai omis de préciser qu'au début Nbl est égale à 352. Sur les bloc s de 9, 8 lignes contiennent des variables (titres de lignes). D'où 396 lignes /9 D blocs et 44 *8 = 352.
MichD
Bonjour,
Ta question n'est pas très claire!
Pourquoi ne pas utiliser cjoint.com pour publier seulement cette colonne avec laquelle tu veux initialer ton combobox, avec une explication des données que tu veux retenir?
Tu nous retournes ici l'adresse que tu auras obtenue.
Pourquoi ne pas utiliser cjoint.com pour publier seulement
cette colonne avec laquelle tu veux initialer ton combobox,
avec une explication des données que tu veux retenir?
Tu nous retournes ici l'adresse que tu auras obtenue.
Pourquoi ne pas utiliser cjoint.com pour publier seulement cette colonne avec laquelle tu veux initialer ton combobox, avec une explication des données que tu veux retenir?
Tu nous retournes ici l'adresse que tu auras obtenue.
Bonjour, As-tu testé cette boucle indépendamment de tout le reste ?? '-------------- 'Mise à jour de la combobox Prof de l'userform3 UserForm3.CB_Prof.Clear For Charge = 9 To Nbl Step 9 UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2) Next Charge '----------------
-- Salutations JJ
"JP" a écrit dans le message de news:
Bonsoir,
De l'userform3, je lance l'userform5. Dans l'userform5, après avoir traité des données en lien avec l'userform3, je mets à jour un combobox nommé CB_Prof. Après l'avoir vidé, je le recharge par l'intermédiaire de cette boucle:
For Charge = 9 To Nbl Step 9 UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2) Next Charge
Le problème c'est que des lignes blanches apparaissent dans la liste déroulante du combobox (3 à chaque rechargement) et je ne comprends pas pourquoi!
Quelqu'un aurait une idée?
Voici un extrait du code ci-dessous où on retrouve la boucle.
Merci d'avance.
JP --------------------------
For i = 9 To Nbl Step 9 If TextBox1.Value = Cells(i, 2).Value Then MsgBox "La personne existe déjà dans la base de données." Exit Sub: UserForm5.Show ElseIf ComboBox1 = "" Or TextBox1 = "" Then MsgBox "Les champs Nom Prénom, et EP/EG sont obligatoires" Exit Sub: UserForm5.Show ElseIf Cells(i, 2).Value = "" Then Cells(i, 1) = ComboBox1.Value Cells(i, 2) = TextBox1.Value Cells(i, 3) = TextBox2.Value For C = 4 To Sheets("BD_PFMP").Range("AF3").Value + 3 ' + 3 pour le décalage Cells(i, C) = Me.Controls("TB_" & C + 46).Value ' TB_ commencent à 50 Next C MsgBox "Les données ont été enregistrées." ' vide textbox et combobox TextBox1 = "" TextBox2 = "" ComboBox1 = "" For Efface = 50 To 81 Me.Controls("TB_" & Efface) = "" Next Efface 'Mise à jour de la combobox Prof de l'userform3 UserForm3.CB_Prof.Clear For Charge = 9 To Nbl Step 9 UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2) Next Charge Exit For End If Next i
Bonjour,
As-tu testé cette boucle indépendamment de tout le reste ??
'--------------
'Mise à jour de la combobox Prof de l'userform3
UserForm3.CB_Prof.Clear
For Charge = 9 To Nbl Step 9
UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2)
Next Charge
'----------------
--
Salutations
JJ
"JP" <jthillard@gmail.com> a écrit dans le message de news:
f4f2b06f-a06a-433e-a0f0-5b2969c0d0fe@googlegroups.com...
Bonsoir,
De l'userform3, je lance l'userform5.
Dans l'userform5, après avoir traité des données en lien avec l'userform3, je mets à jour un combobox nommé
CB_Prof. Après l'avoir vidé, je le recharge par l'intermédiaire de cette boucle:
For Charge = 9 To Nbl Step 9
UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2)
Next Charge
Le problème c'est que des lignes blanches apparaissent dans la liste déroulante du combobox (3 à chaque
rechargement) et je ne comprends pas pourquoi!
Quelqu'un aurait une idée?
Voici un extrait du code ci-dessous où on retrouve la boucle.
Merci d'avance.
JP
--------------------------
For i = 9 To Nbl Step 9
If TextBox1.Value = Cells(i, 2).Value Then
MsgBox "La personne existe déjà dans la base de données."
Exit Sub: UserForm5.Show
ElseIf ComboBox1 = "" Or TextBox1 = "" Then
MsgBox "Les champs Nom Prénom, et EP/EG sont obligatoires"
Exit Sub: UserForm5.Show
ElseIf Cells(i, 2).Value = "" Then
Cells(i, 1) = ComboBox1.Value
Cells(i, 2) = TextBox1.Value
Cells(i, 3) = TextBox2.Value
For C = 4 To Sheets("BD_PFMP").Range("AF3").Value + 3 ' + 3 pour le décalage
Cells(i, C) = Me.Controls("TB_" & C + 46).Value ' TB_ commencent à 50
Next C
MsgBox "Les données ont été enregistrées."
' vide textbox et combobox
TextBox1 = ""
TextBox2 = ""
ComboBox1 = ""
For Efface = 50 To 81
Me.Controls("TB_" & Efface) = ""
Next Efface
'Mise à jour de la combobox Prof de l'userform3
UserForm3.CB_Prof.Clear
For Charge = 9 To Nbl Step 9
UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2)
Next Charge
Exit For
End If
Next i
Bonjour, As-tu testé cette boucle indépendamment de tout le reste ?? '-------------- 'Mise à jour de la combobox Prof de l'userform3 UserForm3.CB_Prof.Clear For Charge = 9 To Nbl Step 9 UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2) Next Charge '----------------
-- Salutations JJ
"JP" a écrit dans le message de news:
Bonsoir,
De l'userform3, je lance l'userform5. Dans l'userform5, après avoir traité des données en lien avec l'userform3, je mets à jour un combobox nommé CB_Prof. Après l'avoir vidé, je le recharge par l'intermédiaire de cette boucle:
For Charge = 9 To Nbl Step 9 UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2) Next Charge
Le problème c'est que des lignes blanches apparaissent dans la liste déroulante du combobox (3 à chaque rechargement) et je ne comprends pas pourquoi!
Quelqu'un aurait une idée?
Voici un extrait du code ci-dessous où on retrouve la boucle.
Merci d'avance.
JP --------------------------
For i = 9 To Nbl Step 9 If TextBox1.Value = Cells(i, 2).Value Then MsgBox "La personne existe déjà dans la base de données." Exit Sub: UserForm5.Show ElseIf ComboBox1 = "" Or TextBox1 = "" Then MsgBox "Les champs Nom Prénom, et EP/EG sont obligatoires" Exit Sub: UserForm5.Show ElseIf Cells(i, 2).Value = "" Then Cells(i, 1) = ComboBox1.Value Cells(i, 2) = TextBox1.Value Cells(i, 3) = TextBox2.Value For C = 4 To Sheets("BD_PFMP").Range("AF3").Value + 3 ' + 3 pour le décalage Cells(i, C) = Me.Controls("TB_" & C + 46).Value ' TB_ commencent à 50 Next C MsgBox "Les données ont été enregistrées." ' vide textbox et combobox TextBox1 = "" TextBox2 = "" ComboBox1 = "" For Efface = 50 To 81 Me.Controls("TB_" & Efface) = "" Next Efface 'Mise à jour de la combobox Prof de l'userform3 UserForm3.CB_Prof.Clear For Charge = 9 To Nbl Step 9 UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(Charge, 2) Next Charge Exit For End If Next i
JP
J'ai fait des modifications qui semblent fonctionner. mais un regard nouveau peut permettre d'améliorer encore les choses.
Il faut cliquer sur le bouton "Formulaire d'entrée de suivi des élève s" Dans le formulaire, cliquer sur le bouton nouveau professeur. L'userform5 s 'ouvre. Il faut entrer des données dans cet usurform. J'attire votre attention sur le temps qui s'écoule quand on appuie sur le bouton quitter avant de retrouver l'userform3.
J'ai fait des modifications qui semblent fonctionner.
mais un regard nouveau peut permettre d'améliorer encore les choses.
Il faut cliquer sur le bouton "Formulaire d'entrée de suivi des élève s"
Dans le formulaire, cliquer sur le bouton nouveau professeur. L'userform5 s 'ouvre.
Il faut entrer des données dans cet usurform.
J'attire votre attention sur le temps qui s'écoule quand on appuie sur le bouton quitter avant de retrouver l'userform3.
J'ai fait des modifications qui semblent fonctionner. mais un regard nouveau peut permettre d'améliorer encore les choses.
Il faut cliquer sur le bouton "Formulaire d'entrée de suivi des élève s" Dans le formulaire, cliquer sur le bouton nouveau professeur. L'userform5 s 'ouvre. Il faut entrer des données dans cet usurform. J'attire votre attention sur le temps qui s'écoule quand on appuie sur le bouton quitter avant de retrouver l'userform3.
'-------------------------------- Dim C As Range With Sheets("BD_PFMP") For Each C In .Range("B9:B" & .Range("B" & .Rows.Count).End(xlUp).Row) If C.Value <> "" Then With Me.ComboBox1 .AddItem C.Value End With End If Next End With '--------------------------------
'--------------------------------
Dim C As Range
With Sheets("BD_PFMP")
For Each C In .Range("B9:B" & .Range("B" & .Rows.Count).End(xlUp).Row)
If C.Value <> "" Then
With Me.ComboBox1
.AddItem C.Value
End With
End If
Next
End With
'--------------------------------
'-------------------------------- Dim C As Range With Sheets("BD_PFMP") For Each C In .Range("B9:B" & .Range("B" & .Rows.Count).End(xlUp).Row) If C.Value <> "" Then With Me.ComboBox1 .AddItem C.Value End With End If Next End With '--------------------------------
Je vais essayer ton code mais j'ai fait une modif dans une boucle for i qu i va très bien. J'espère qu'elle n'aura pas d'inconvénient à l'usag e. J'ai juste ajouté la personne avec la ligne suivante: 'ajoute la nouvelle personne à la liste déroulante UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(i, 2).Value
En conséquence, je ne réinitialise pas le combobox "CB_PROF" ce qui per met de ne pas relancer toutes les procédures qui y sont liées. Du coup c'est hyper rapide.
Merci
JP
Denis,
Je vais essayer ton code mais j'ai fait une modif dans une boucle for i qu i va très bien. J'espère qu'elle n'aura pas d'inconvénient à l'usag e. J'ai juste ajouté la personne avec la ligne suivante:
'ajoute la nouvelle personne à la liste déroulante
UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(i, 2).Value
En conséquence, je ne réinitialise pas le combobox "CB_PROF" ce qui per met de ne pas relancer toutes les procédures qui y sont liées. Du coup c'est hyper rapide.
Je vais essayer ton code mais j'ai fait une modif dans une boucle for i qu i va très bien. J'espère qu'elle n'aura pas d'inconvénient à l'usag e. J'ai juste ajouté la personne avec la ligne suivante: 'ajoute la nouvelle personne à la liste déroulante UserForm3.CB_Prof.AddItem Sheets("BD_PFMP").Cells(i, 2).Value
En conséquence, je ne réinitialise pas le combobox "CB_PROF" ce qui per met de ne pas relancer toutes les procédures qui y sont liées. Du coup c'est hyper rapide.
Merci
JP
JP
Denis,
Mon combobox1 est renommé en CB_Prof. J'ai donc modifié ton code mais i l bloque à With Me.CB_Prof
JP
Denis,
Mon combobox1 est renommé en CB_Prof. J'ai donc modifié ton code mais i l bloque à With Me.CB_Prof