Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 vba copie/colle

vinciHorus

XLDnaute Junior
bonjour

j'ai un code qui copie une ligne d'un tableau A et le colle dans un tableau B

Le probleme est que lorsque j'ajoute une nouvelle ligne dans A et que je veux la copie dans B, elle supprime l'ancienne sauvegarde or je voudrais qu'elle se copie à la suite

mon code

Sub rempli()



With Worksheets("Connexion ")

Worksheets("Saisie").Range("F" & ActiveCell.Row).Copy .Cells(.Rows.Count, "B").End(xlUp)
Worksheets("Saisie").Range("C" & ActiveCell.Row).Copy .Cells(.Rows.Count, "C").End(xlUp)
Worksheets("Saisie").Range("D" & ActiveCell.Row).Copy .Cells(.Rows.Count, "D").End(xlUp)


Worksheets("Saisie").Range("P" & ActiveCell.Row).Copy .Cells(.Rows.Count, "F").End(xlUp)
Worksheets("Saisie").Range("Q" & ActiveCell.Row).Copy .Cells(.Rows.Count, "G").End(xlUp)
Worksheets("Saisie").Range("R" & ActiveCell.Row).Copy .Cells(.Rows.Count, "H").End(xlUp)

Worksheets("Saisie").Range("M" & ActiveCell.Row).Copy .Cells(.Rows.Count, "I").End(xlUp)
Worksheets("Saisie").Range("N" & ActiveCell.Row).Copy .Cells(.Rows.Count, "J").End(xlUp)

End With


End Sub
 
Solution
ben tu a un peu oublié l'offset(1)
mais il faut le faire en 2 etape
déterminer le end(xlup).offset(1) et coller
VB:
dim nextrow&

With Worksheets("Connexion ")

nextrow= .Cells(.Rows.Count, "B").End(xlUp).offset(1).row

Worksheets("Saisie").Range("F" & ActiveCell.Row).Copy .Cells(nextrow, "B")

Worksheets("Saisie").Range("C" & ActiveCell.Row).Copy .Cells(nextrow, "C")

Worksheets("Saisie").Range("D" & ActiveCell.Row).Copy .Cells(nextrow, "D")





Worksheets("Saisie").Range("P" & ActiveCell.Row).Copy .Cells(nextrow, "F")

Worksheets("Saisie").Range("Q" & ActiveCell.Row).Copy .Cells(nextrow, "G")

Worksheets("Saisie").Range("R" & ActiveCell.Row).Copy .Cells(nextrow, "H"))



Worksheets("Saisie").Range("M" & ActiveCell.Row).Copy...

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @vinciHorus , le Forum

J'essaierais plutôt comme ceci ...

VB:
With Worksheets("Connexion")
Worksheets("Saisie").Range("F" & ActiveCell.Row).Copy .Range("B" & .Range("B5000").End(xlUp).Row + 1)
End With

Bonne journée
@+Thierry
 

jmfmarques

XLDnaute Accro
Bonjour
si ......).End(xlUp) est la dernière ligne remplie, quelle pourrait bien être la suivante, où écrire, donc ?
tu ne crois pas qu'elle serait (sait-on jamais ) celle décalée (offset) d'une ligne vers le bas ?
 

patricktoulon

XLDnaute Barbatruc
ben tu a un peu oublié l'offset(1)
mais il faut le faire en 2 etape
déterminer le end(xlup).offset(1) et coller
VB:
dim nextrow&

With Worksheets("Connexion ")

nextrow= .Cells(.Rows.Count, "B").End(xlUp).offset(1).row

Worksheets("Saisie").Range("F" & ActiveCell.Row).Copy .Cells(nextrow, "B")

Worksheets("Saisie").Range("C" & ActiveCell.Row).Copy .Cells(nextrow, "C")

Worksheets("Saisie").Range("D" & ActiveCell.Row).Copy .Cells(nextrow, "D")





Worksheets("Saisie").Range("P" & ActiveCell.Row).Copy .Cells(nextrow, "F")

Worksheets("Saisie").Range("Q" & ActiveCell.Row).Copy .Cells(nextrow, "G")

Worksheets("Saisie").Range("R" & ActiveCell.Row).Copy .Cells(nextrow, "H"))



Worksheets("Saisie").Range("M" & ActiveCell.Row).Copy .Cells(nextrow, "I")

Worksheets("Saisie").Range("N" & ActiveCell.Row).Copy .Cells(nextrow, "J")



End With
 

jmfmarques

XLDnaute Accro
est ce que je peux avoir un esquisse
Beaucoup mieux qu'une "esquisse" -->> carrément l'exposé de la méthode + 2 exemples --->> ouvre donc s'il te plait (elle est faite pour cela) ton aide interne VBA à la rubrique
Range.Offset, propriété
et reviens, si toujours en difficulté, en nous montrant le code au moins tenté après cette saine et indispensable lecture.
 

vinciHorus

XLDnaute Junior


si je demande de l'aide c'est que j'ai déjà regardé

merci
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…