Bonjour !

J'ai écris une macro qui importe des données dans un tableau à partir de plusieurs autres classeurs. Ces classeurs source sont mis à jour sur une base régulière.

Je voudrais ajouter une ligne pour qu'au lancement, la macro efface les données contenues dans le tableau avant de s’exécuter normalement.

La macro en question va chercher les nouvelles données et remplace les anciennes. Mais cela me pose problème car si il manque une donnée dans la mise à jour, la macro va laisser l'ancienne donnée au lieu de ne rien mettre ; je ne peux donc pas voir les données qui manquent dans la mise à jour car je n'ai aucun "trou".

J'ai écris ce code qui est sensé trouver la dernière ligne et la dernière colonne de mon tableau (il peut évoluer).
Mon tableau à l'heure actuelle = "E5:AP43" ; DerCol renvoi bien 42 et DerLig renvoi bien 43.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub test()
 
With Sheets(1)
SH2 = .Range("D2").Value
 
DerCol = Sheets(SH2).Range("XFD3").End(xlToLeft).Column
DerLig = Sheets(SH2).Range("A1048576").End(xlUp).Row
 
Sheets(SH2).Range("E5:" & DerCol & DerLig).ClearContents
 
End With
 
End Sub
Je pense que la syntaxe n'est pas correcte car cela ne fonctionne pas.