Combobox variable?

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,
    Si tu montrais ce que tu a déjà fait ce serait plus facile de t'aider.
    A+
    1. 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. Contributeur
        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. 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+
      2. Contributeur
        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. 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+