Initialize Combobox avec données ds 1 colonne

Bonjour,

Je souhaite initialisé mes combobox avec les données dans des colonnes d'une feuille excel autre que celle contenant ma macro.

J'arrive a le faire pour le premier combobox avec la méthode suivante. Mais je souhaite le faire pour mes 3 combobox mais il y a un pb dans mon code....

Si vous pouviez m'aider voici mon code.

Merci a vous!!

Private Sub UserForm_Initialize()

Dim nb_lignes1 As Integer, nb_lignes2 As Integer, nb_lignes3 As Integer, i As Integer, j As Integer, k As Integer

i = 2

j = 2

k = 2

Workbooks("Employes.xlsx").Sheets("Feuil1").Activate

With ActiveSheet

nb_lignes1 = .Range("A" & .Rows.Count).End(xlUp).Row

nb_lignes2 = .Range("B" & .Rows.Count).End(xlUp).Row

nb_lignes3 = .Range("C" & .Rows.Count).End(xlUp).Row

End With

For i = 2 To nb_lignes1 ' => pour lister les code de commande

ComboBox1.AddItem Cells(i, 1) 'Ajoute les valeurs des cellules

For j = 2 To nb_lignes2

ComboBox2.AddItem Cells(j, 2)

For k = 2 To nb_lignes3

ComboBox3.AddItem Cells(k, 3)

Next k

Next j

Next i

End Sub

134interventions.xlsm (32.79 Ko)
124employes.xlsx (10.60 Ko)
130ventes.zip (8.89 Ko)

Bonsoir

Dans les propriétés des ComboBox 2 et 3 supprimes la propriété RowSource

Ensuite un exemple de code pour alimenter tes ComboBox

Private Sub UserForm_Initialize()
Dim J As Long

  With Workbooks("Employes.xlsx").Sheets("Feuil1")
    For J = 2 To .Range("A" & .Rows.Count).End(xlUp).Row             ' => pour lister les code de commande
      ComboBox1.AddItem .Cells(J, "A") 'Ajoute les valeurs des cellules
    Next J
    For J = 2 To .Range("B" & .Rows.Count).End(xlUp).Row             ' => pour lister les code de commande
      ComboBox2.AddItem .Cells(J, "B")                                 'Ajoute les valeurs des cellules
    Next J
    For J = 2 To .Range("C" & .Rows.Count).End(xlUp).Row             ' => pour lister les code de commande
      ComboBox3.AddItem .Cells(J, "C")                                'Ajoute les valeurs des cellules
    Next J
  End With
End Sub

Merci beaucoup de ton aide!!

Ca marche!

désolée j'ai une autre question...

Une fois que les valeurs sont initialisées dans le combobox j'aimerai que lorsque que tu rentres un nom le prénom et la qualification dans les combobox 2 et 3 soient récupérées automatiquement en fonction du nom données..

je pense qu'l faut utiliser un

if combobox1.value ... then

combobox2.value = ....

combobox23value = ....

mais j'y arrive pas..

Bonjour

Un essai

Encore merci ,

tu m'aides vraiment beaucoup!

Bonjour à vous,

Désolée nouveau problème sur le même fichier.

Dans mon userform 5 lors du click sur le combobox 3 je souhaite crée une ligne dans ma feuile "interventions" en récupérant le chiffre mis dans le combobox 1 de l'userform 3.....

Je n'y arrive pas... ci joint mon fichier

63interventions.xlsm (55.10 Ko)

Bonjour

Tu connais très bien ton programme, mets toi à la place de ceux qui veulent t'aider, il doivent, avant de trouver une solution, trouver le cheminement entre tes Userform pour savoir comment afficher celui qui est en cause

A voir

voila mon code:

Dim DerligInt As Integer

Workbooks("Interventions").Sheets("Interventions").Activate

With ThisWorkbook.Sheets("Interventions")

DerligInt = .Range("A" & .Rows.Count).End(xlUp).Row

End With

'copie code intervention selectionner dans combobox1 de l'userform 5 dans la 1ere colonne de la feuille "interventions"

Range(Cells(DerligInt + 1, "A"), Cells(DerligInt + 1, "A")).Select

ActiveCell.FormulaR1C1 = UserForm5.ComboBox1.Value

cela bloque apres le end with

Bonjour

Le fichier que j'ai posté n'est pas corrigé ?

Private Sub CommandButton3_Click()
Dim DerligInt As Long

  With ThisWorkbook.Sheets("Interventions")
    DerligInt = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & DerligInt) = UserForm3.ComboBox1
  End With
'
'    Workbooks("Interventions").Sheets("Interventions").Activate
'
' With ThisWorkbook.Sheets("Interventions")
'        DerligInt = .Range("A" & .Rows.Count).End(xlUp).Row
'    End With
'
'    'copie code intervention selectionner dans combobox1 de l'userform 5 dans la 1ere colonne de la feuille interventions
'    Range(Cells(DerligInt + 1, "A"), Cells(DerligInt + 1, "A")).Select
'    ActiveCell.FormulaR1C1 = UserForm5.ComboBox1.Value
'
'    'supprime la ligne, de la feuille EnCours, dont le code d'intervention est rentré dans le combobox 1 de l'userform3
'    'Rows("?").Select
'    'Application.CutCopyMode = False
'    'Selection.Delete Shift:=xlUp
End Sub

Merci!

Autre problème:

il faut que je récupère le contenu d'une cellule dans une feuille en fonction du contenu d'une cellule d'une autre feuille du classeur.

Dim DerligInt As Integer

Dim ligneok As Integer

Workbooks("Interventions").Sheets("Interventions").Activate

With ThisWorkbook.Sheets("Interventions")

DerligInt = .Range("A" & Rows.Count).End(xlUp).Row + 1

.Range("A" & DerligInt) = UserForm3.ComboBox1

End With

With ThisWorkbook.Sheets("EnCours")

ligneok = .Range("A" & UserForm3.ComboBox1.Value)

End With

With ThisWorkbook.Sheets("Interventions")

.Range("B" & DerligInt) = Sheets("EnCours").Range("B", ligneok) ICI EST MON PROBLEME!

End With

j'essaie de récuperer le code de commande en fonction du code d'intervention que je viens de coller.

Bonsoir

Quand tu places une macro dans ton message utilises les balise Code

With ThisWorkbook.Sheets("Interventions")
.Range("B" & DerligInt) = ThisWorkbook.Sheets("EnCours").Range("B" & ligneok)            ' ICI EST MON PROBLEME!
End With

Merci , bonne soiree

Rechercher des sujets similaires à "initialize combobox donnees colonne"