[VBA-E]copie spéciale d'un tableau vers un autre
Bonjour,
J'ai un petit soucis en VBA avec Excel.
En fait mon but est le suivant:
faire le copiage d'un tableau excel de plusieurs fichiers dans un seul.
Il s'agit d'une copie ajout. J'ajoute les tableaux les uns derrière les autres dans le tableau de mon fichier ouvert.
Exemple: J'ai x fichiers .xls contenant un tableau A
et je veux tous les ajouter dans le tableau A du fichier toto.xls.
facile me direz vous?
1) Sans ouvrir les x fichier .xls?
C'est un premier point que je ne sais pas faire.
si je fais ça
Code:
1 2 3 4
| Workbooks.Open pathWorkbook & "/" & nomDuFichier
Sheets("Training").UsedRange.Rows("2:" & Sheets("Training").UsedRange.Rows.Count).AutoFill _
Destination:=ActiveWorkbook.Sheets("Training").Range.Rows(ActiveSheet.UsedRange.Rows.Count + 1), Type:=xlGrowthTrend
Workbooks.Close |
non seulement ça ouvre le fichier xls... mais en plus ça ne copie rien du tout.
Le deuxième problème est que mon tableau A du fichier toto.xls contient des formules, des liens (URL) , des dates, ...
2) Je veux créer un backup du tableau A dans un autre onglet en gardant tous les attributs, formules comprises
en faisant ça:
Code:
1 2 3 4 5 6 7 8
|
Dim Ligne As Integer
Sheets("Training_old").Range("A1").CurrentRegion.ClearContents
Sheets("Training").UsedRange
Ligne = Sheets("Training").Range("a1").SpecialCells(xlCellTypeLastCell).Row
Sheets("Training_old").Rows("1:" & Ligne).EntireRow.Insert shift:=xlDown
Sheets("Training").UsedRange.Copy Destination:=Sheets("Training_old").Range("a1")
Application.CutCopyMode = False |
je ne copie pas les formules :'(
3) ensuite je veux tout effacer, sauf les formules dasn mon premier tableau backupé.
en faisant le code trouvé sur la FAQ:
Code:
Sheets("Training").Range("2:" & Sheets("Training").UsedRange.Rows.Count).SpecialCells(xlCellTypeConstants, xlNumbers).ClearContents
je n'efface pas les formules... mais je n'efface pas non plus les URL, les dates, ...
Est-ce que ça vous parle ce genre d'exercice?
Merci d'avance pour votre aide, je continue à chercher.
Amicalement
Gojira