Microsoft 365 Script VBA à corriger et optimiser

ebertail92

XLDnaute Nouveau
Dans un répertoire c:/testEB se trouve deux fichiers Excel : « Base_A et Base_B ».
Base_A contient un onglet data qui possède 23 colonnes et un nombre de lignes aléatoires.
Base_B doit récupérer via un script VBA les données de l’onglet data du fichier « Base_A » en ayant préalablement nettoyé le deuxième onglet Eric du fichier Base_B
Ensuite, l’onglet Eric sera la base pour des tableaux croisés et des graphs qui seront actualisés automatiquement.
Le script VBA est le suivant :
Sub actualisation()
Dim wbBase_B As Workbook, wksVBA As Worksheet, wksEric As Worksheet
Dim wbBase_A As Workbook, wksdata As Worksheet
'---------------------------------------
Application.EnableEvents = False
Application.AskToUpdateLinks = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'---------------------------------------
Set wbBase_B = ThisWorkbook
Set wksVBA = wbBase_B.Worksheets("VBA")
Set wksEric = wbBase_B.Worksheets("Eric")
Emplacement_Eric = Range("Emplacement_Eric").Value
If MsgBox("Etes vous sur de vouloir actualiser?", vbYesNo) = vbYes Then

DL1 = wksEric.Range("a1000").End(x1Up).Row
wksEric.Range("$A$1:$W$" & DL1).ClearContents

'Copie de Données
Set wbBase_A = Workbooks.Open(Emplacement_Données)
Set wksdata = wbBase_B.Worksheets("")
If wksdata.AutoFilterMode = False Then
Selection.AutoFilter
Else
wksdata.AutoFilterMode = False
End If
DL2 = wksdata.Range("a10000").End(xlUp).Row

wksdata.Range("$A$1:$W$" & DL2).Copy
wksEric.Range("A1").PasteSpecial xlPasteValues
wbBase_B.Close (False)
wksVBA.Select
MsgBox ("Le fichier a été mis à jour")
End If
'---------------------------------------
Application.EnableEvents = True
Application.AskToUpdateLinks = True
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
'---------------------------------------
End Sub

Je possède un onglet VBA avec un bouton pour exécuter la macro avec notamment le chemin indiquant ou se trouve le fichier "Base_A" sous le nom de cellule : Emplacement_Eric.
Je constate une erreur d’exécution '1004' définie par l'application ou l'objet à la ligne DL1= wksEric.Range ("a1000") .End (x1Up) .Row
Pouvez-vous m'aider à bien écrire mon script ? Merci par avance.
 

Pièces jointes

  • Base_B.xlsm
    99.3 KB · Affichages: 4

Discussions similaires

Réponses
5
Affichages
325

Membres actuellement en ligne

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki