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

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Si tu montrais ce que tu a déjà fait ce serait plus facile de t'aider.
    A+
    1
  2. 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
  3. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
    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