Copier colle et decaler

Bonjour tous le monde,

s'il vous plait, j'ai besoin d'aide pour complété une programmation vba, j'ai plusieurs feuilles dans le même classeur, contenant des tableaux que je veux copier et les colle dans une feuille que j'ai nommé (consolidation), mon bout de code marche très bien, sauf que je voudrais que le collé soit partir de la troisième colonne, et que la colonne A et B soit vide, pour mettre ensuite des information.

voici mon bout de code :

' consolidation des feuilles du classeur

Sub Consolider()

Application.ScreenUpdating = False

EffacerDonnees

' boucle pour lire les feuilles a consolider

Worksheets("Q15").Range("A3:G3").Copy

Worksheets("consolidation").Paste

For j = 16 To 17 ' parcourir les feuilles de q15 a la fin

Sheets(j).Select

DerniereLigne = Range("A10000").End(xlUp).Row

For i = 4 To DerniereLigne ' parcourir les lignes de chaque feuille

Sheets(j).Select

Rows(i).Select

Selection.Copy

Sheets("consolidation").Select

derniereligneconsolidation = Range("A10000").End(xlUp).Row + 1

Cells(derniereligneconsolidation, 1).Select

ActiveSheet.Paste

Application.CutCopyMode = xlCopy

Next i

Next j

Application.ScreenUpdating = True

MsgBox " La Consolidation est terminee ... ", vbOKOnly + vbInformation, "Information"

End Sub

Merci par avance pour votre aide.

Bonsoir khalti, bonsoir le forum,

Essaie comme ça :

Sub Consolider()
Dim Q As Worksheet 'déclare la variable Q (onglet Q15)
Dim C As Worksheet 'déclare la variable C (onglet Consolidation)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set Q = Worksheets("Q15") 'définit l'onglet Q
Set C = Worksheets("consolidation") 'définit l'onglet C
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran

EffacerDonnees '?
Q.Range("A3:G3").Copy
C.Paste 'copie où ? normalement ça devrait être : C.Range("ta_cellule").Paste

' boucle pour lire les feuilles a consolider
For j = 16 To Sheets.Count ' parcourir les feuilles de q15 a la fin (j'ai remplacer 17 par le numéro du dernier onglet ?)
    'définit la dernière ligne éditée DL de la colonne A de l'onglet de la boucle
    DL = Sheets(j).Range("A" & Application.Rows.Count).End(xlUp).Row
    Set PL = Sheets(j).Rows(4 & ":" & DL) 'Définit la plage PL des lignes 4 à DL (pas besoin d'une boucle)
    Set PL = PL.Resize(PL.Rows.Count, PL.Columns.Count - 2) 'redéfinit la plage PL (moins deux colonnes)
    'définit la cellule de destination DEST (C1 si C1 est vide, sinon la première ligne vide de la colonne C)
    Set DEST = IIf(C.Range("C1").Value = "", C.Range("C1"), C.Range("C" & Application.Rows.Count).End(xlUp).Offset(1, 0))
    PL.Copy DEST 'copie la plage PL dans DEST
Next j 'prochain onglet de la boucle
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
MsgBox " La Consolidation est terminee ... ", vbOKOnly + vbInformation, "Information"
End Sub

Bonjour,

Merci beaucoup ThauThème pour votre aide, ca marche nickel, merci encore.

j'aurai des question plus tard, pour enrichir le bout de code , merci par avance.

Rechercher des sujets similaires à "copier colle decaler"