Combobox variable?

NOno -  
 NOno -
Bonjour,

Je suis novice en VBA et je suis en train d'écrire un programme pour gérer l'usure de plusieurs outils:

Je m'explique, j'ai créer un userform dans lequel un opérateur rentre son nom, référence de l'outil, commentaire etc... Toutes les données vont faire la feuil 2 de mon classeur.Si l'opérateur clique sur le optionbutton "outil en derive" alors dans ma feuil 2 la ligne devient colorée.

Je souhaiterai réaliser un autre userform avec un combobox qui vient chercher toutes les référence d'outils coloré!

Est ce possible?

Merci d'avance R.

4 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Si tu montrais ce que tu a déjà fait ce serait plus facile de t'aider.
A+
1
NOno
 
Bonjour lermite222, et le forum

Voici ce que j'ai déjà fait!
Premier userform

Private Sub CommandButton1_Click()

Dim colone As Long
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("A6650").End(xlUp).Row + 1
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("B6650").End(xlUp).Row + 1
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("C6650").End(xlUp).Row + 1
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("D6650").End(xlUp).Row + 1

'insère les valeurs des textbox dans la ligne suivant la dernière ligne pleine
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("A" & colone).Value = UserForm1.TextBox1.Value
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("B" & colone).Value = UserForm1.TextBox2.Value
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("C" & colone).Value = UserForm1.TextBox3.Value
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("D" & colone).Value = UserForm1.TextBox4.Value

'Colorie la ligne de tableau insérée en rouge (outil nok)
If OptionButton3.Value = True Then
Worksheets("Donnée").Range("A" & colone).Interior.ColorIndex = 3
Worksheets("Donnée").Range("B" & colone).Interior.ColorIndex = 3
Worksheets("Donnée").Range("C" & colone).Interior.ColorIndex = 3
Worksheets("Donnée").Range("D" & colone).Interior.ColorIndex = 3
End If

'Colorie la ligne de tableau insérée en orange (outil en derive)
If OptionButton2.Value = True Then
Worksheets("Donnée").Range("A" & colone).Interior.ColorIndex = 45
Worksheets("Donnée").Range("B" & colone).Interior.ColorIndex = 45
Worksheets("Donnée").Range("C" & colone).Interior.ColorIndex = 45
Worksheets("Donnée").Range("D" & colone).Interior.ColorIndex = 45
End If

'remet à zéro les textbox
TextBox1.Value = ""
TextBox2.Value = ""
TextBox3.Value = ""
TextBox4.Value = ""

End Sub

je voudrais que le combobox du second userform reprenne les valeurs de la colone B entrée dans le premier userform

Est ce possible?

Merci d'avance
1
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Pp^^ff~~fuuiit
C'est quoi ce code ?
1°) Tu reprend la même variable à chaque fois.. réfléchit un peu !!
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("A6650").End(xlUp).Row + 1 
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("B6650").End(xlUp).Row + 1 
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("C6650").End(xlUp).Row + 1 
colone = Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("D6650").End(xlUp).Row + 1 

La variable colone aura toujours la dernière valeur !!

2°) Y a beaucoup plus simple que
'insère les valeurs des textbox dans la ligne suivant la dernière ligne pleine 
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("A" & colone).Value = UserForm1.TextBox1.Value 
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("B" & colone).Value = UserForm1.TextBox2.Value 
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("C" & colone).Value = UserForm1.TextBox3.Value 
Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée").Range("D" & colone).Value = UserForm1.TextBox4.Value 

A remplacer par..
    With Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée") 
        .Range("A" & colone).Value = TextBox1.Value 
        .Range("B" & colone).Value = TextBox2.Value 
        .Range("C" & colone).Value = TextBox3.Value 
        .Range("D" & colone).Value = TextBox4.Value 
        'Colorie la ligne de tableau insérée en rouge (outil nok) 
        If OptionButton3.Value = True Then 
            .Range(cells(colone, "A"), Cells(colone, "D")).Interior.ColorIndex = 3 
        'OU Colorie la ligne de tableau insérée en orange (outil en derive) 
        ElseIf OptionButton2.Value = True Then 
            .Range(cells(colone, "A"), Cells(colone, "D")).Interior.ColorIndex = 45 
        End If 
    End With

Et pour remplir le combo dans l'autre UF..
Sub RempliCombo() 
Dim Lig As Long 
    With Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée") 
        For Lig = 2 To .Range("65536").End(xlUp).Row 
            If .Cells(Lig, 1).Interior.ColorIndex = 3 Or .Cells(Lig, 1).Interior.ColorIndex = 45 Then 
                ComboBox1.AddItem .Cells(Lig, 1).Value 
            End If 
        Next Lig 
    End With 
End Sub

A+
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
1
NOno
 
Bonjour lermite222,
Merci pour ton commentaire j'ai corrigé certaines de mes erreurs et c'est vrai que le code est plus "léger", mais j'ai un petit problème avec cette partie du code:

With Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée")
.Range("A" & colone).Value = TextBox1.Value
.Range("B" & colone).Value = TextBox2.Value
.Range("C" & colone).Value = TextBox3.Value
.Range("D" & colone).Value = TextBox4.Value
'Colorie la ligne de tableau insérée en rouge (outil nok)
If OptionButton3.Value = True Then
.Range(cells(colone, "A"), Cells(colone, "D")).Interior.ColorIndex = 3
'OU Colorie la ligne de tableau insérée en orange (outil en derive)
ElseIf OptionButton2.Value = True Then
.Range(cells(colone, "A"), Cells(colone, "D")).Interior.ColorIndex = 45
End If
End With

lorsque que je l'écris, le code fonctionne bien mais une fois que je ferme mon dossier et que je l'ouvre à nouveau ça ne fonctionne plus et excel me marque: erreur d'éxecution "1004"
erreur défini par l'appliquation ou par l'objet
et si je l'efface et que je le retape et que j'enregistre ça fonctionne à nouveau!

Je sais pas si ça te parle, merci d'avance
a+
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
La macro est dans quel classeur ?
Erreur 1004 ça veux dire q'Excel ne trouve pas soit le classeur, soit la feuille ou les deux.
Ou encore, voir si colone ne serait pas à 0
Manquerait peut-être la ligne...
With Workbooks("SUIVI-OUTILLAGE.xls").Worksheets("Donnée")  
    colone = .Range("A6650").End(xlUp).Row + 1 


le classeur ("SUIVI-OUTILLAGE.xls") est ouvert ?
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Ça doit se passer sur le forum pour que tous puisse y participer ou en profiter.
1
NOno
 
je te copie le lien vers mon fichier excel pour que tu puisse mieux comprendre le problème.
Car je ne pense pas que je puisse répondre à tes questions ;)
J'ai une autre question pour toi aussi, j'ai tenté d'afficher le commentaire dans le textbox2 correspondant à la référence sélectionnée dans la combobox mais parfois ça n'affiche pas le bon commentaire!


https://www.sendbox.fr/index.php?/AZL1UGLSC125/SUIVI-OUTILLAGE.xls

Merci encore pour ton aide lermite!
A+
0