VBA - Erreur lors du collage d'un tableau

Bonjour à tous,

J'ai une macros qui copie un tableau dans un autre fichier et qui doit se coller en ajoutant le nombre de lignes du tableau afin d'ajuster sa grandeur pour ne pas coller les valeurs par-dessus les autres sections plus basse. Jusque là, tout va bien. Mon problème est que lorsque le tableau est copié, au lieu d'être copié à l'endroit que je sélectionne, il copie le tableau à l'infini à partir de la colonne A (Qui doit rester vide)

Je vais joindre une image du résultat.

why

Je ne comprends pas pourquoi cela se produit. J'ai essayé de trouver la source du problème, mais je ne trouve pas l'erreur.

Voici mon code:

Private Sub MAJ_CS_Mensuel_Click()
    Dim Mois As String
    Dim I As Integer ' Compteur
    Dim L As Integer ' Nombre de lignes
    Mois = Range("CS_Mois").Text

    ' 1 - Ouvrir le fichier des coûts de sous-traitance
    Workbooks.Open ("H:\DXA Production\1. GESTION DES SITES\3104 - VARENNES\SUIVI DES COÛTS DE LOCATION\2018\Suivi coûts de location_Varennes_2018.xlsx")

    ' 2 - Sélectionner le rapport mensuel et copier
    Workbooks("Suivi coûts de location_Varennes_2018.xlsx").Sheets(Mois).Activate
    Workbooks("Suivi coûts de location_Varennes_2018.xlsx").Sheets(Mois).Range("Tableau").Select

    Workbooks("Suivi coûts de location_Varennes_2018.xlsx").Sheets(Mois).Range("Tableau").Copy

    L = ActiveCell.Rows.Count    ' Compte le nombre de lignes dans la sélection

    ' 3 - Activer le tableau de bord et insérer le nombre de lignes à ajouter pour le tableau
    Workbooks("Tableau de bord Varennes_2018.xlsm").Activate
    Workbooks("Tableau de bord Varennes_2018.xlsm").Sheets("Tableau de bord").Range("CS_Mois").Offset(1, 0).Select

    For I = 0 To L
        Selection.EntireRow.Insert
    Next I

    ' 4 - Coller les valeurs copier
    Workbooks("Tableau de bord Varennes_2018.xlsm").Sheets("Tableau de bord").Range("CS_Mois").Offset(1, 0).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

End Sub

Merci d'avance à tous ceux qui prendront le temps de répondre à ce message!

Salut AlexandreR,

Alors à première vue ce code est source d'erreur,

L = ActiveCell.Rows.Count    ' Compte le nombre de lignes dans la sélection

Tu devrais spécifier ta colonne ou tu cherches la dernière ligne comme cela :

  With 'la feuille que tu souhaite analyser
        LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
 End With

    

Pour rappel les "activate"sont assez casse gueule à utiliser. Essaye de renommer le nom des feuilles dans des variables.

Exemple:

    Dim wb As Workbook
    Dim ws As Worksheet

    Set wb = ActiveWorkbook
    Set ws = wb.Sheets("name")
    

Bonne soirée.

Merci de m'avoir répondu.

J'ai essayé la méthode que tu m'as proposé et j'arrive sensiblement au même résultat... :/

why2

Salut,

Ok, est-ce que tu peux nous transmettre un exemple de ton fichier.

Pour voir en détails ce qui cloche.

Bonne journée.

Voilà j'ai recrée un exemple de ce que je veux faire.

Le problème ne semble pas survenir de la même façon que sur mon autre fichier, mais ça reste le même principe et il provient sûrement de la même erreur.

N'oublie pas de changer le chemin du fichier copier pour que ça marche!

J'ai trouvé la solution.

AU lieu de faire :

Selection.EntireRow.Insert

J'ai insérer mes lignes de cette façon:

Selection.Insert Shift:=xlDown

Bon, il semble que j'ai parlé trop vite...

J'obtiens maintenant l'erreur suivante lors de l'exécution de mon boutton:

capture

Le tableau est copié, mais pour une raison que je ne comprends pas, la première colonne du tableau est décalé d'une cellule vers le bas.

capture2

Problème résolu

Salut,

J'ai fait une macro sur les fichiers en exemple qui colle le tableau avec le nombre de ligne adapté.

Regarde et dis moi si cela convient.

Mea culpa j'avais pas vu que le problème était résolu.

Bonne journée.

14exemple-coller.xlsm (23.77 Ko)

Pas de problème. Merci pour ton aide!

Rechercher des sujets similaires à "vba erreur lors collage tableau"