Combobox variable?
NOno
-
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.
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
-
Bonjour,
Si tu montrais ce que tu a déjà fait ce serait plus facile de t'aider.
A+ -
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 -
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.-
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+
-
-
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.-
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+
-