Bonjour à tous , je viens ici chercher de l'aide pour corriger une erreur dans le code suivant , je m,explique:
J'essaye (en vain) d' utiliser une cette macro qui se déclenche en cliquant sur un bouton nommé "Ajouter" et à travers la valeur rentrée dans un champs de formulaire ,cette derniere doit me chercher dans la premiere colonne d'une table feuille X (feuille
source) la valeur correspondante à la valeur cherchée via le forrmulaire pour copier par la suite toutes les valeurs se trouvant dans la meme ligne jusqu à la colonne 48, et les coller par la suite , dans une autre table d une autre feuille XX (feuille
déstination), la copie doit se faire aprés la derniere ligne renseignée, et d'autres valeurs viendront s'ajouter dans cette meme ligne sur les colonnes suivantes suivant les valeurs rentrées manuellement dans la suite du formulaire .
La macro fait bien la copie ,toutefois ne se fait pas sur la premiere cellule vide , mais plutot sur la derniere cellule non vide , ce qui vient effacer ou erroner les valeurs existantes.
Private Sub BtnAjouter_Click()
'Procedure pour rentrer les donneés du formulaire **********************************************************
'********************************************************************************************************************************
Dim C As Range, Plage As Range, X As Range, Ligne As Long, Sh As Worksheet
Set Sh = Sheets("feuille source")
With Sheets("Nouveaux articles")
Set Plage = .Range("A4", .Cells(.Rows.Count, 1).End(xlUp))
End With
With Sheets("feuille destination")
Ligne = .Cells(.Rows.Count, 1).End(xlUp).Row
Set X = Sh.Range("A:A").Find(ComboBox5Articleaajouter.Value, , , xlWhole, xlByRows, xlPrevious)
If X Is Nothing Then
Else
Ligne = Ligne + 1
X.Resize(, 48).Copy .Cells(Ligne, 1)
End If
End With
Sheets("feuille destination").Activate
Cells(Rows.Count, 1).End(xlUp)(1).Select
ActiveCell = ComboBox5Articleaajouter.Value
ActiveCell.Offset(0, 72).Value = ComboBox1
ActiveCell.Offset(0, 73).Value = ComboBox3
ActiveCell.Offset(0, 74).Value = ComboBox4
ActiveCell.Offset(0, 62).Value = TextCadenceL1
ActiveCell.Offset(0, 64).Value = TextCadenceL3
ActiveCell.Offset(0, 66).Value = TextCadenceL4
ActiveCell.Offset(0, 68).Value = TextEmpreintes1
ActiveCell.Offset(0, 69).Value = TextEmpreintes3
ActiveCell.Offset(0, 70).Value = TextEmpreintes4
End Sub
Cordialement