Simplifier un code

martinigi

XLDnaute Nouveau
Bonjour, en lisant quelque posts je me suis aperçu que la fonction .Select ne sert quasiment pas. Je me suis replongé dans mon code mais je souhaite simplifier mais je n'y arrive pas. Pouvez vous m'aider, je vous met le code en dessous :

Sub etape1()
' Etape 1
'Ouvre le tableau excel
ChDir "C:\Users\martinigi\Desktop\MG bordereau"
Workbooks.Open Filename:= _
"C:\Users\martinigi\Desktop\MG bordereau\EXport calcul par ligne ind 17.XLS"
Range("D9").Select

'Copie les zones
Windows("Bordereau interieur.xls").Activate
Sheets("Tableau de bord").Select
Range("C4").Select
Selection.Copy

Windows("EXport calcul par ligne ind 17.XLS").Activate
Range("B2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Windows("Bordereau interieur.xls").Activate
Range("C5").Select

If Range("C5") <> "" Then
Selection.Copy
Windows("EXport calcul par ligne ind 17.XLS").Activate
ActiveWindow.WindowState = xlMaximized
Range("B3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If

'Copie les données (action de la macro présente sur la feuille)
Windows("EXport calcul par ligne ind 17.XLS").Activate
Sheets("A").Select
Cells.Select
Selection.ClearContents
Windows("Bordereau interieur").Activate
Sheets("Export").Select
Cells.Select
Range("B21").Activate
Selection.Copy
Windows("EXport calcul par ligne ind 17.XLS").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("A").Select
Range("A1").Select
ActiveSheet.Paste
Sheets("Feuil2").Select
Range("C10").Select
Application.CutCopyMode = False
ActiveSheet.PivotTables("Tableau croisé dynamique2").RefreshTable

Windows("Bordereau interieur").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Tableau de bord").Select
End Sub
 

Calvus

XLDnaute Barbatruc
Bonjour,

Voici pour commencer.
Sans fichier sous les yeux, ce n'est pas évident..
VB:
Option Explicit

Sub etape1()
' Etape 1
'Ouvre le tableau excel
ChDir "C:\Users\martinigi\Desktop\MG bordereau"
Workbooks.Open Filename:= _
"C:\Users\martinigi\Desktop\MG bordereau\EXport calcul par ligne ind 17.XLS"
Range("D9").Select

'Copie les zones
Windows("Bordereau interieur.xls").Activate
Sheets("Tableau de bord").Feuil2.Range("C4").Copy


Windows("EXport calcul par ligne ind 17.XLS"). _
Range("B2").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Windows("Bordereau interieur.xls").Activate

If Sheets("Export").Range("C5") <> "" Then
Sheets("Export").Range("C5").Copy
Windows("EXport calcul par ligne ind 17.XLS").Activate
ActiveWindow.WindowState = xlMaximized
Range("B3").PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End If

'Copie les données (action de la macro présente sur la feuille)
Windows("EXport calcul par ligne ind 17.XLS").Activate
Sheets("A").Cells.ClearContents

Windows("Bordereau interieur").Activate
Sheets("Export").Range("B21").Copy

Windows("EXport calcul par ligne ind 17.XLS").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("A").Range("A1").Paste

Sheets("Feuil2").Range("C10").Select
Application.CutCopyMode = False
ActiveSheet.PivotTables("Tableau croisé dynamique2").RefreshTable

Windows("Bordereau interieur").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Tableau de bord").Select
End Sub

A+
 
Dernière édition:

Calvus

XLDnaute Barbatruc
Re,

On pourrait éalement améliorer la fin comme ceci :
Code:
With Sheets("Feuil2")
ActiveSheet.PivotTables("Tableau croisé dynamique2").RefreshTable
End With

Windows("Bordereau interieur").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Tableau de bord").Select

A+
 

Discussions similaires

Statistiques des forums

Discussions
311 737
Messages
2 082 036
Membres
101 878
dernier inscrit
1475214