probleme sur liste déroulante

jopont

XLDnaute Impliqué
bonsoir
Sur un formulaire du fichier joint, formulaire nommé frplongee, j'ai une liste déroulante comportant des lieux. la liste s'alimente depuis la feuille lieux du classeur.Cette feuille peut également être alimenté en dynamique depuis la liste déroulante.

Mon probleme est donc le suivant, lorsque la feuille lieux est vide pas de probleme pour l'alimenté depuis la liste déroulante avec un lieux.
Les chose se gâte losque je rentre plus de 2 lieux.

Enfin je ne sais pas si j'ai été clair, mais le mieux semble d'essayer le formulaire frplongee, et surtout la liste déroulante lieux.
merci de votre aide
[file name=SALPontarlier_20051014170237.zip size=46709]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/SALPontarlier_20051014170237.zip[/file]

Message édité par: jopont, à: 14/10/2005 17:03
 

Pièces jointes

  • SALPontarlier_20051014170237.zip
    45.6 KB · Affichages: 12
L

Lionel

Guest
Bonsoir jopont,

Dans l'initialisation de ton userform, tu utilises AddItem pour ta liste déroulante, or c'est une méthode qui n'ajoute qu'un seul élément pour les liste à 1 colonne. Voici la solution que je te propose (qui n'est peut-être pas la meilleure, d'ailleurs...) :

'Alimente le ComboBox cblieu avec la liste stockée précédemment
With Sheets('lieux')
L = .Range('A65536').End(xlUp).Row
If L = 1 And .Cells(1, 1) = '' Then Exit Sub
For Compteur = 1 To L
Me.cblieux.AddItem .Cells(Compteur, 1).Value '(merci Hervé!)
Next
End With

De plus, tu déclares L comme un Long, ce qui me paraît un peu excessif, un Integer ou Byte pourrait peut-être suffir, non ?

Je pense que tu rencontreras d'autres problèmes, mais tu les règleras au fur et à mesure...

Amicalement
Lionel ;)
 

jopont

XLDnaute Impliqué
merci mais ça ne semble pas resoudre mon probleme, qui semble se situer au niveau de la copie des éléments dans la feuille:

Code:
Private Sub UserForm_Initialize()
Private Sub UserForm_Initialize()
Dim L As Long
Me.cbPlongeur.RowSource = 'bdPlongeur!B2:B' & Sheets('bdPlongeur').Cells(1, 2).End(xlDown).Row
Me.CbCadre.RowSource = 'bdPlongeur!G2:G' & Sheets('bdPlongeur').Cells(1, 7).End(xlDown).Row
Me.cbProfondeur.RowSource = 'profondeur!A1:A' & Sheets('lieux').Cells(1, 1).End(xlDown).Row
Me.cbPosition.RowSource = 'bdPlongeur!J2:J' & Sheets('bdPlongeur').Cells(1, 7).End(xlDown).Row
'Alimente le ComboBox cblieu avec la liste stockée précédemment
    With Sheets('lieux')
    For Compteur = 1 To L
        L = .Range('A65536').End(xlUp).Row
        If L = 1 And .Cells(1, 1) = '' Then Exit Sub
        Me.cblieux.AddItem .Cells(Compteur, 1).Value '(merci Hervé!)
Next
    End With
        End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    With Sheets('lieux')
        'Recopie la liste dans la feuille 'lieux' pour stockage
        .Cells.Delete
        .Range(.Cells(1, 1), .Cells(cblieux.ListCount, 1)) = cblieux.List()
    End With
    
    End Sub

Deplus la liste ne semble pas s'alimenter à l'ouverture du userform

Message édité par: jopont, à: 14/10/2005 20:40

Message édité par: jopont, à: 14/10/2005 21:02
 

jopont

XLDnaute Impliqué
Ok ça fonctionne. Il ne semble plus y avoir de probleme.
Pendant que j'y suis comment faire pour que dans le userform frplongee, la plongée s'inscrive en rouge lorsque le choix de la case d'option dans s'agissait-il d'une intervention est sur oui.
merci
 
L

Lionel

Guest
C'est re-moi :)

Si la 'plongée' correspond à 'Cadre de la plongée', alors il te faut 2 procédures évènementielles :

Celle pour le cas où l'utilisateur clique sur 'Oui' :
Private Sub optInterOui_Click()
CbCadre.ForeColor = &HC0
End Sub

Et celle où il clique sur 'Non' (des fois qu'il change d'avis) :
Private Sub optInterNon_Click()
CbCadre.ForeColor = &H80000008
End Sub

Si La couleur rouge que je te propose ne te convient pas, à toi de vérifier celle que tu préfères...

Amicalement et en espérant que cela t'aide
Lionel
 

Discussions similaires

Statistiques des forums

Discussions
312 297
Messages
2 086 972
Membres
103 414
dernier inscrit
Congelus