Copie plage donnée

Bonjour à tous,

Je cherche à copier une plage de données qui peux aussi bien etre une seul ligne ou plusieurs. à date, j'ai reussi avec plus d'une ligne mais ca ne fonctionne pas si j'ai juste une ligne. J'ai utilisé cette ligne:

Sheets("EMPLACEMENT").Range("A100").End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues

Dans l'onglet "entree" en D6 j'inscris le nombre de ligne que j'aurai à copier. mais avec ma methode, je viens de me rendre compte que, si j'écris 1 ca ne fonctionne pas.

pourriez-vous me donner un petit coup de main svp.

Bonjour wilbur11

Il faut éviter les ".select" qui ne servent à rien dans un langage orienté objet

Voici ce que l'on peut faire

Sub COPIE_ENTREE_DE_DONNEE()
  Dim dLig As Long, nLig As Long
  ' Avec la feuille source
  With Sheets("ENTREE")
    ' Dernière ligne remplie
    dLig = .Range("F" & Rows.Count).End(xlUp).Row
    ' Copier la zone
    .Range("F7:K" & dLig).Copy
  End With
  ' Avec la feuille de destination
  With Sheets("EMPLACEMENT")
    nLig = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
    .Range("A" & nLig).PasteSpecial xlPasteValues
  End With
  ' Avec la feuille source
  With Sheets("entree")
    'Range("D5").ClearContents
    'Range("D6").ClearContents
    'Range("H7:K" & dlig).ClearContents
    .Range("D5").Select
  End With
End Sub

A+

Bonjour,

Autre proposition:

Sub COPIE_ENTREE_DE_DONNEE()
    Dim f1 As Worksheet, f2 As Worksheet
    Dim DerLig_f1 As Long, DerLig_f2 As Long
    Application.ScreenUpdating = False
    Set f1 = Sheets("ENTREE")
    Set f2 = Sheets("EMPLACEMENT")
    DerLig_f1 = f1.Range("D6").Value
    DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
    If DerLig_f1 >= 1 Then Range(f2.Cells(DerLig_f2 + 1, "A"), f2.Cells(DerLig_f2 + DerLig_f1 + 1, "F")).Value = Range(f1.Cells(7, "F"), f1.Cells(DerLig_f1 + 7, "K")).Value
    Set f1 = Nothing
    Set f2 = Nothing
End Sub

Cdlt

Wow! Merci beaucoup de votre aide.

Comme vous voyez, je suis assez débutant.

Merci encore!

Rechercher des sujets similaires à "copie plage donnee"