Microsoft 365 Excel vba

Boubie

XLDnaute Junior
Bonjour à tous,

Je m'initie tant bien que mal aux macros et je rencontre un problème de mémoire car mon code est trop simpliste!

Ma macro semble être très énergivore ce qui n'est pas étonnant car je lui demande de répéter la même action à de nombreuse reprise.

mais je ne connais le code pour comment alléger.

Je vous joins mon fichier Word avec le code; le fichier Excel étant trop long à ouvrir

L'idée est de reporter certaines colonnes issus de 2 feuilles différentes ("REALISE" et "BUDGET") et de reporter sur 2 autres feuilles à des endroits bien précis.

Quelqu'un peut il m'aider car mon fichier ne s'ouvre plus correctement et je sais plus quoi faire, svp

Merci d'avance
 

Pièces jointes

  • Code vba Réalisé et budget.docx
    15.3 KB · Affichages: 5

kingfadhel

XLDnaute Impliqué
Bonjour à tous,
@Boubie,
D'abord évite le select

Ce bout de code :
Code:
' 'Exercice comptable

Sheets("Sheet1").Select

Range("A2").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

Sheets("TabReal").Select

Range("A2").Select

Selection.PasteSpecialPaste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

à remplacer par celui là:

VB:
'---
Sheets("Sheet1").Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
Sheets("TabReal").Range("A2").PasteSpecial Paste:=xlPasteValues

à refaire avec la suite du code.
 

kingfadhel

XLDnaute Impliqué
Re,
Code:
Sub MGExportPGI()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''DONNEES REALISE
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Exercice comptable
Sheets("Sheet1").Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
Sheets("TabReal").Range("A2").PasteSpecial Paste:=xlPasteValues
 'Domaine d'activité
Sheets("Sheet1").Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Copy
Sheets("TabReal").Range("C2").PasteSpecial Paste:=xlPasteValues
 'Définition Projet
Sheets("Sheet1").Range("C2:C" & Cells(Rows.Count, "C").End(xlUp).Row).Copy
Sheets("TabReal").Range("D2").PasteSpecial Paste:=xlPasteValues
'Elément d'OTP
Sheets("Sheet1").Range("D2:D" & Cells(Rows.Count, "D").End(xlUp).Row).Copy
Sheets("TabReal").Range("G2").PasteSpecial Paste:=xlPasteValues
'Val/dev.état
Sheets("Sheet1").Range("E2:E" & Cells(Rows.Count, "E").End(xlUp).Row).Copy
Sheets("TabReal").Range("J2").PasteSpecial Paste:=xlPasteValues
'Nature comptable
Sheets("Sheet1").Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row).Copy
Sheets("TabReal").Range("P2").PasteSpecial Paste:=xlPasteValues
'Document d'achat
Sheets("Sheet1").Range("G2:G" & Cells(Rows.Count, "G").End(xlUp).Row).Copy
Sheets("TabReal").Range("R2").PasteSpecial Paste:=xlPasteValues
'Poste de Cde
Sheets("Sheet1").Range("H2:H" & Cells(Rows.Count, "H").End(xlUp).Row).Copy
Sheets("TabReal").Range("W2").PasteSpecial Paste:=xlPasteValues
'Type de Pièce
Sheets("Sheet1").Range("I2:I" & Cells(Rows.Count, "I").End(xlUp).Row).Copy
Sheets("TabReal").Range("X2").PasteSpecial Paste:=xlPasteValues
'Date comptable
Sheets("Sheet1").Range("J2:J" & Cells(Rows.Count, "J").End(xlUp).Row).Copy
Sheets("TabReal").Range("Y2").PasteSpecial Paste:=xlPasteValues

''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'DONNEES BUDGET
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   'Exercice comptable
Sheets("Sheet2").Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
Sheets("TabEng").Range("A2").PasteSpecial Paste:=xlPasteValues
'Domaine d'activité
Sheets("Sheet2").Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Copy
Sheets("TabEng").Range("C2").PasteSpecial Paste:=xlPasteValues
 'Dénition de projet
 Sheets("Sheet2").Range("C2:C" & Cells(Rows.Count, "C").End(xlUp).Row).Copy
Sheets("TabEng").Range("D2").PasteSpecial Paste:=xlPasteValues
'Elément d'OTP
Sheets("Sheet2").Range("D2:D" & Cells(Rows.Count, "D").End(xlUp).Row).Copy
Sheets("TabEng").Range("G2").PasteSpecial Paste:=xlPasteValues
 'Val/dev.état
Sheets("Sheet2").Range("E2:E" & Cells(Rows.Count, "E").End(xlUp).Row).Copy
Sheets("TabEng").Range("J2").PasteSpecial Paste:=xlPasteValues
'Catégorie de la pièce de référence
Sheets("Sheet2").Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row).Copy
Sheets("TabEng").Range("R2").PasteSpecial Paste:=xlPasteValues
'Nº pièce référence
Sheets("Sheet2").Range("G2:G" & Cells(Rows.Count, "G").End(xlUp).Row).Copy
Sheets("TabEng").Range("S2").PasteSpecial Paste:=xlPasteValues
'Poste de réf.
Sheets("Sheet2").Range("H2:H" & Cells(Rows.Count, "H").End(xlUp).Row).Copy
Sheets("TabEng").Range("T2").PasteSpecial Paste:=xlPasteValues
    'Désignation
Sheets("Sheet2").Range("I2:I" & Cells(Rows.Count, "I").End(xlUp).Row).Copy
Sheets("TabEng").Range("U2").PasteSpecial Paste:=xlPasteValues
    'Date de livraison
Sheets("Sheet2").Range("J2:J" & Cells(Rows.Count, "J").End(xlUp).Row).Copy
Sheets("TabEng").Range("V2").PasteSpecial Paste:=xlPasteValues
End Sub

Test pour une base de données de 350 lignes : 1 seconde.
 

Boubie

XLDnaute Junior
Re,
Code:
Sub MGExportPGI()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''DONNEES REALISE
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Exercice comptable
Sheets("Sheet1").Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
Sheets("TabReal").Range("A2").PasteSpecial Paste:=xlPasteValues
 'Domaine d'activité
Sheets("Sheet1").Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Copy
Sheets("TabReal").Range("C2").PasteSpecial Paste:=xlPasteValues
 'Définition Projet
Sheets("Sheet1").Range("C2:C" & Cells(Rows.Count, "C").End(xlUp).Row).Copy
Sheets("TabReal").Range("D2").PasteSpecial Paste:=xlPasteValues
'Elément d'OTP
Sheets("Sheet1").Range("D2:D" & Cells(Rows.Count, "D").End(xlUp).Row).Copy
Sheets("TabReal").Range("G2").PasteSpecial Paste:=xlPasteValues
'Val/dev.état
Sheets("Sheet1").Range("E2:E" & Cells(Rows.Count, "E").End(xlUp).Row).Copy
Sheets("TabReal").Range("J2").PasteSpecial Paste:=xlPasteValues
'Nature comptable
Sheets("Sheet1").Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row).Copy
Sheets("TabReal").Range("P2").PasteSpecial Paste:=xlPasteValues
'Document d'achat
Sheets("Sheet1").Range("G2:G" & Cells(Rows.Count, "G").End(xlUp).Row).Copy
Sheets("TabReal").Range("R2").PasteSpecial Paste:=xlPasteValues
'Poste de Cde
Sheets("Sheet1").Range("H2:H" & Cells(Rows.Count, "H").End(xlUp).Row).Copy
Sheets("TabReal").Range("W2").PasteSpecial Paste:=xlPasteValues
'Type de Pièce
Sheets("Sheet1").Range("I2:I" & Cells(Rows.Count, "I").End(xlUp).Row).Copy
Sheets("TabReal").Range("X2").PasteSpecial Paste:=xlPasteValues
'Date comptable
Sheets("Sheet1").Range("J2:J" & Cells(Rows.Count, "J").End(xlUp).Row).Copy
Sheets("TabReal").Range("Y2").PasteSpecial Paste:=xlPasteValues

''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'DONNEES BUDGET
''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'   'Exercice comptable
Sheets("Sheet2").Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row).Copy
Sheets("TabEng").Range("A2").PasteSpecial Paste:=xlPasteValues
'Domaine d'activité
Sheets("Sheet2").Range("B2:B" & Cells(Rows.Count, "B").End(xlUp).Row).Copy
Sheets("TabEng").Range("C2").PasteSpecial Paste:=xlPasteValues
 'Dénition de projet
 Sheets("Sheet2").Range("C2:C" & Cells(Rows.Count, "C").End(xlUp).Row).Copy
Sheets("TabEng").Range("D2").PasteSpecial Paste:=xlPasteValues
'Elément d'OTP
Sheets("Sheet2").Range("D2:D" & Cells(Rows.Count, "D").End(xlUp).Row).Copy
Sheets("TabEng").Range("G2").PasteSpecial Paste:=xlPasteValues
 'Val/dev.état
Sheets("Sheet2").Range("E2:E" & Cells(Rows.Count, "E").End(xlUp).Row).Copy
Sheets("TabEng").Range("J2").PasteSpecial Paste:=xlPasteValues
'Catégorie de la pièce de référence
Sheets("Sheet2").Range("F2:F" & Cells(Rows.Count, "F").End(xlUp).Row).Copy
Sheets("TabEng").Range("R2").PasteSpecial Paste:=xlPasteValues
'Nº pièce référence
Sheets("Sheet2").Range("G2:G" & Cells(Rows.Count, "G").End(xlUp).Row).Copy
Sheets("TabEng").Range("S2").PasteSpecial Paste:=xlPasteValues
'Poste de réf.
Sheets("Sheet2").Range("H2:H" & Cells(Rows.Count, "H").End(xlUp).Row).Copy
Sheets("TabEng").Range("T2").PasteSpecial Paste:=xlPasteValues
    'Désignation
Sheets("Sheet2").Range("I2:I" & Cells(Rows.Count, "I").End(xlUp).Row).Copy
Sheets("TabEng").Range("U2").PasteSpecial Paste:=xlPasteValues
    'Date de livraison
Sheets("Sheet2").Range("J2:J" & Cells(Rows.Count, "J").End(xlUp).Row).Copy
Sheets("TabEng").Range("V2").PasteSpecial Paste:=xlPasteValues
End Sub

Test pour une base de données de 350 lignes : 1 seconde.
Tu est trop top.... Merci :)
 

Statistiques des forums

Discussions
315 094
Messages
2 116 148
Membres
112 670
dernier inscrit
Flow87