Copier Coller une ligne dans une nouvelle feuille quand la case est cochée
Bonjour à tous,
Je suis débutant en VBA et j'aurai grandement besoin de votre aide
Vous trouverez ci-joint le fichier, simplifié au maximum :
Je souhaiterai pouvoir copier coller les données d'une ligne dans une nouvelle feuille grâce à un bouton.
Ce sont les informations situées dans le 2ème tableau de la feuille 1 que je souhaite coller dans la feuille bon de commande.
J'ai créé le bouton (oui c'est simple), mais je souhaiterai que ce bouton me permette de copier/coller uniquement les informations de la ligne sélectionnée par une case d'option par exemple. Hors je ne sais pas comment associer les 2.
De plus il faudrait également que les informations en questions soient collées à des endroits différents. (J'ai mis un code couleur correspondant aux informations et à l'endroit où il faut qu'elles soient situées.)
Cela ne me dérange pas que les informations soient effacées à chaque utilisation du bouton.
Je ne sais pas si je me suis bien fais comprendre
Quelqu'un pourrait m'aider ou me donner des conseils afin d'avancer
Merci beaucoup !
Cordialement
Bonjour Stoche et bienvenue,
à tester,
Sub Transfert()
Set sh1 = Sheets("Bon de commande")
Set sh2 = Sheets("Feuil1")
col = Array("C", "E", "F", "G", "H")
For i = 22 To 27
If sh1.Cells(i, "C") <> "" Then
rw = sh2.Cells(Rows.Count, "C").End(xlUp).Row + 1
For j = LBound(col) To UBound(col)
If col(j) = "H" Then
sh2.Cells(rw, "H") = sh1.Cells(i, col(j)).Value
Else
sh2.Cells(rw, j + 3) = sh1.Cells(i, col(j)).Value
End If
Next j
sh2.Cells(rw, "B") = sh1.Range("G7").Value
End If
Next i
End SubBonjour i20100,
Merci pour ta réponse !
Entre temps j'ai procédé d'une façon différente.
Je remet le fichier excel en PJ.
J'ai créé un formulaire afin de pouvoir sélectionner le numéro du PO dont on souhaite coller les données dans la feuille "bon de commande"
J'ai aussi créé une macro permettant d'afficher ce formulaire sur la feuille "commande fournisseur".
Grâce à ce formulaire je veux qu'excel ne sélectionne que les données correspondant au numéro de PO choisit (les infos sont situés dans la feuille "commande fournisseur") par exemple, pour les coller dans le bon de commande. Malheureusement j'ai l'impression que ma formule n'est pas exacte.
Est-ce que vous pourriez m'aider et me dire ce qui ne va pas dans mon code s'il vous plaît ?
Merci beaucoup !
re,
à tester,
Private Sub Bondecommande_Click()
Set sh1 = Sheets("Bon de commande")
Set sh2 = Sheets("Commandes Fournisseurs")
no = Val(Me.NumeroPO.Value)
rw = Application.CountA(sh1.Range("C23:C27")) + 23
If rw > 27 Then Exit Sub
lig = Application.Match(no, sh2.Range("A:A"), 0)
sh1.Cells(rw, "C") = sh2.Cells(lig, "C").Value
sh1.Cells(rw, "E") = sh2.Cells(lig, "D").Value
sh1.Cells(rw, "F") = sh2.Cells(lig, "E").Value
sh1.Cells(rw, "G") = sh2.Cells(lig, "F").Value
sh1.Cells(rw, "H") = sh2.Cells(lig, "G").Value
End Sub