Combobox prend la même valeur

Bonsoir à tous

J’ai bon cherché je ne trouve pas de solution, je viens donc sollicité votre aide.

Dans le fichier joint ce trouve un userform avec plusieurs combobox.

Lorsque je choisi une valeur dans une des combobox je souhaiterais que les combobox qui se trouvent à droite de la combobox de référence prennent la même valeur et ainsi de suite des que l’on change la valeur d’une combobox.

J’espère qu’une solution existe, merci pour votre aide.

Bonne soirée à tous

16test-01.xlsm (53.91 Ko)

Bonjour

Une solution simple

Merci Banzai64 d'avoir pris le temps d'apporter une solution à mon poste.

Comme tu as pu le voir ta proposition applique exactement ce que je demandais, mais si des données ont été sauvegardées à la prochaine ouverture je me retrouve avec une erreur :

380 Impossible de définir la propriété LinstIndex. Valeur de propriété non valide.

Encore merci pour ton aide.

Bonsoir,

Re-, Banzaï

Un autre essai, avec un module de classe...

Bon courage

Bonsoir

A tester

Rajoutes en début de la macro Private Sub UserForm_Initialize()

Private Sub UserForm_Initialize()

   EnCours = True

'LUNDI
With Sheets("BD")

Rajoutes en fin de la macro Private Sub UserForm_Initialize()

Me.TextBox5 = Range("J4")

EnCours = False
End Sub

Bonjour

Banzai64, en rajoutant le complément tout fonctionne, super merci.

Cousinhub, j’ai testé ton code est répond très bien à mais besoin super merci. Par contre lors de l’ouverture on ne récupère pas les données déjà sauvegardées.

Comme tu as repris la totalité du code je n’arrive pas à décaler la zone de sauvegarde après le clic du bouton VALIDER. Si je souhaitais commencer à sauvegarder à partir de la colonne 27 qui est AA qu’elles sont les modifs à faire ?

Banzai64 et Cousinhub

J’ai une autre demande si vous avez encore un peu de temps à consacrer à mon sujet

Pour une autre partie je viens de me rendre compte que je vais avoir besoin que le décalage se fasse aussi de 2 en 2 la copie se fait toujours vers la droite

Si j’utilise la combobox1 je passe à la combobox3, idem pour combobox2 je passe à combobox4

J’ai bien cherché à modifier vos codes, mais je n’ai pas réussi à avoir le résultat souhaité.

Merci pour votre soutien, bonne journée

Bonjour,

Quelles donnée veux-tu récupérer? (TextBox ET Combobox, ou TextBox uniquement?)

Pour transférer à partir de la colonne AA, modifie ainsi :

Dans le code du bouton "Valider" de l'usf :

Private Sub CommandButton1_Click()
Dim J As Byte
With Sheets("CS")
    For J = 1 To CombosCount
        .Cells(1, J + 26) = Combos(J).CombosGroup
    Next J
    For J = 1 To 5
        .Cells(4, (J * 2) + 26) = Me.Controls("TextBox" & J)
    Next J
End With
Unload Me
End Sub

Et si j'ai bien compris pour le décalage de 2 combobox, modifie ainsi dans le module de classe :

Private Sub CombosGroup_Change()
Dim I As Byte
For I = Right(CombosGroup.Name, Len(CombosGroup.Name) - 8) To CombosCount Step 2
    Combos(I).CombosGroup = CombosGroup
Next I
End Sub

Si ce n'est pas ça, ???

Bonne journée

Dans cette partie j'ai modifié la zone comme tu l'as proposé, ça marche impect.

Private Sub UserForm_Initialize()
Dim I As Byte
Dim Plg As Range
Dim Obj As Control
CombosCount = 0
For Each Obj In Me.Controls
    If TypeOf Obj Is MSForms.ComboBox Then
        CombosCount = CombosCount + 1
        ReDim Preserve Combos(1 To CombosCount)
        Set Combos(CombosCount).CombosGroup = Obj
    End If
Next Obj
With Sheets("BD")
    Set Plg = .Range("C4:C" & .Cells(Rows.Count, "C").End(xlUp).Row)
    For I = 1 To CombosCount
        Me.Controls("Combobox" & I).List = Application.Transpose(Plg)
        Me.Controls("Combobox" & I) = Cells(1, I + 26)
    Next I
End With
With Sheets("CS")
    For I = 1 To 5
        Me.Controls("TextBox" & I) = .Cells(4, I * 2).Value
        Me.Controls("TextBox" & I) = Cells(4, (I * 2) + 26)
    Next I
End With
End Sub

Par contre, j'ai rajouté ceci pour récupérer les valeurs sauvegardées précédemment.

Me.Controls("Combobox" & I) = Cells(1, I + 26)
Me.Controls("TextBox" & I) = Cells(4, (I * 2) + 26)

Pour cette partie j'ai testé, mais une erreur s'affiche je me demande si je l'ai placé au bonne endroit. Peux-tu l'intégrer au fichier ci-dessous, merci.

Private Sub CombosGroup_Change()
Dim I As Byte
For I = Right(CombosGroup.Name, Len(CombosGroup.Name) - 8) To CombosCount Step 2
    Combos(I).CombosGroup = CombosGroup
Next I
End Sub

Merci pour tout

Re-,

Il faut changer le code dans le module de classe nommé "Classe1"

Regarde le fichier

cousinhub ça fonctionne super.

Pour le module de Classe je découvre, ceci explique cela.

Il faut changer le code dans le module de classe nommé "Classe1"

Merci à vous deux pour votre soutien tout au long de ce poste, à une prochaine.

Bonne soirée

Rechercher des sujets similaires à "combobox prend meme valeur"