Copie de données

bonjour

Pourriez vous m'apporter une correction au bout de code suivant qui me permet de deplacer des données dans des cellules de la feuille

1 à la feuille 2 de mon classeur , le petit soucis et que j'aimerai que mon code debute l'ecriture en ligne D9

( les données à deplacer sont les cellules E11 à E15 de la feuille 1)

With Sheets("Feuil1")
   .Range("E11:E15").Copy
    Sheets("Feuil2").Range("D" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
End With
Application.CutCopyMode = False

parce que comme telle, l'ecriture se fait sur la feuille 2 en commencant à la ligne 2

Merci pour votre aide

Bonjour rocket4

parce que comme telle, l'ecriture se fait sur la feuille 2 en commencant à la ligne 2

Normal, c'est ce qui est inscrit dans ton code avec l'instruction

.Range("D" & Rows.Count).End(xlUp).Offset(1, 0)

Cette instruction dis à Excel, à partir de la dernière cellule de la colonne 'D'

.Range("D" & Rows.Count)

, recherche la prochaine cellule remplie en remontant

.End(xlUp).

et décale d'une ligne vers le bas

.Offset(1, 0)

Pour débuter sur la ligne D9, il te faut une variable à tester

  Dim DLig As Long
  Sheets("Feuil1").Range("E11:E15").Copy
  With Sheets("Feuil2")
    DLig = .Range("D" & Rows.Count).End(xlUp).Row
    ' Si la dernière ligne remplie est inférieure à 8, alors la dernière ligne est 8
    If DLig < 8 Then DLig = 8
    '
    .Range("D" & DLig+1).PasteSpecial _
        Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
  End With
  Application.CutCopyMode = False

A+

merci , j'avoue que je n'aurais jamais trouvé pareille astuce !!

juste un petit soucis de fonctionnement pour la correction que tu m'a proposé , si j'execute ma macro plusieurs fois

pour obtenir la meme ecriture à la ligne 9,10, 11 etc...... j'ai le message d'erreur suivant " incomptabilité de type"

à la ligne

DLig = .Range("D" & Rows.Count).End(xlUp)

Oups désolé , j'ai oublié le ".row" à la fin de l'instruction

DLig = .Range("D" & Rows.Count).End(xlUp).Row

A+

Merci beaucoup BrunoM45 pour l'aide que tu m'a apporté , te souhaitant une bonne fin de journée

Rechercher des sujets similaires à "copie donnees"