Ajouter des données sous condition de positionnement

Fermé
IT_FS Messages postés 1 Date d'inscription jeudi 6 août 2020 Statut Membre Dernière intervention 6 août 2020 - 6 août 2020 à 13:06
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 - 6 août 2020 à 16:24
Bonjour,
j'ai la liste suivante:




Je veux ajouter des éléments dans les colonnes C, E, G, … jusqu'à la dernière colonne.
l'idée est de chercher le numéro qui dans la ligne 1 dans les colonnes C, E, G, comparer sa valeur avec une valeur chois a partir d'une comobobox ( Combobox_Num) si le numéro a été trouvée on le rajoute dans la bonne colonne.
Par exemple si je choisi 002 a partir de ma combobox, donc la donnée se rajoute dans la colonne E ligne 7, sans oublier que il faut que rajoute la date dans la colonne de coté (colonne F pour cette exemple)
j'ai rédigé ce code mais j'ai aucune données qui se rajoute :/ quelqu'un peut identifier mon erreur merci;

Private Sub CommandButton1_Click()
If Me.ComboBox_Lame.Value = "" Then
MsgBox ("Veuillez choisir une lame")
Else
'Nom_Lame = Me.ComboBox_Lame.Value
Num_Lame = Me.ComboBox_Num.Value

Dim ws_verifM1 As Worksheet
Set ws_verifM1 = ActiveWorkbook.Worksheets("Verif_M1")
fin_liste = ws_verifM1.Range("A" & Rows.Count).End(xlUp).Row
'fin_col = ws_verifM1.Cells(1, Columns.Count).End(xlToLeft).Column

Dim Plage As Range
Set Plage = ws_verifM1.Rows(1)

Set Trouve = Plage.Cells.Find(what:=Num_Lame)
If Trouve Is Nothing Then
Else
ws_verifM1.Cells(1, Trouve.Column).Value = Num_Lame

ws_verifM1.Cells(Trouve.Rows, 3) = Me.ComboBox_Lame.Value & Me.ComboBox_Operation.Value
ws_verifM1.Cells(Trouve.Rows, 4) = Me.TextBox_Date.Value
End If
End If
Unload Me
End Sub


Configuration: Windows / Chrome 84.0.4147.105
A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
6 août 2020 à 16:24
Bonjour,

Avec votre fichier, aurait ete plus simple.
Ce qu'il faut, c'est cherche la premiere cellule vide de la colonne du numero cherche

A tester car dans votre code vous ecrivez dans trois cellules pas deux

Private Sub CommandButton1_Click()
    Dim ws_verifM1 As Worksheet
    Dim Plage As Range
    
    If Me.ComboBox_Lame.Value <> "" Then
        'Nom_Lame = Me.ComboBox_Lame.Value
        Num_Lame = Me.ComboBox_Num.Value
        Set ws_verifM1 = ActiveWorkbook.Worksheets("Verif_M1")
        With ws_verifM1
            fin_liste = .Range("A" & Rows.Count).End(xlUp).Row
            'fin_col = ws_verifM1.Cells(1, Columns.Count).End(xlToLeft).Column
            Set Plage = .Rows(1)
            Set Trouve = Plage.Cells.Find(what:=Num_Lame)
            If Not Trouve Is Nothing Then
                Col = Trouve.Column
                LDCol = Split(Trouve.Address, "$")(1)
                LSuiv = .Range(LDCol & Rows.Count).End(xlUp).Row + 1
                .Cells(LSuiv, Col).Value = Num_Lame
                '?????.Cells(LSuiv, Col+1) = Me.ComboBox_Lame.Value & Me.ComboBox_Operation.Value
                .Cells(LSuiv, Col + 1) = Me.TextBox_Date.Value
            End If
        End With
    Else
        MsgBox ("Veuillez choisir une lame")
    End If
    Unload Me
End Sub
0