[Excel - VBA] Sélection de plage récalcitrante
Bonjour,
J'ai un petit problème que je n'arrive pas à solutionner.
D'abord le contexte : J'ai environ 500 classeurs excell. Dans chacun d'eux, la première page ("sheet1") contient des informations dans les cellules A18 à Q45 que je souhaite récupérer dans un seul fichier.
J'essaie donc de récupérer ces infos avec les trois petites procédures suivantes (je débute en VBA, il y a sûrement moyen d'améliorer).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Public monFichier As String, cellCour As String, PosCour As Integer
Sub TestCopie()
'
' CopiePlage
' 14/05/2008
'
Application.DisplayAlerts = False
monFichier = ActiveWorkbook.Name
monPath = "F:\Facturen 2007\"
workfile = Dir(monPath & "*.xls")
PosCour = 1
cpt = 5
fichouv = 0
Do While workfile <> "" And fichouv <> cpt
Application.StatusBar = "Traitement de " & workfile
Workbooks.Open Filename:=monPath & workfile
CopiePlage
Descend
Windows(workfile).Activate
Windows(workfile).Close savechanges:=False
fichouv = fichouv + 1
Windows(monFichier).Activate
workfile = Dir()
Loop
End Sub
Sub CopiePlage()
'
' CopiePlage
' 14/05/2008
'
'
Dim maFeuille As Worksheet
Set maFeuille = ThisWorkbook.Worksheets("Sheet1")
maFeuille.Range(maFeuille.Cells(18, 1), maFeuille.Cells(45, 17)).Select
' Range("A18:Q45").select
Selection.Copy
Windows(monFichier).Activate
ActiveSheet.Paste
End Sub
Sub Descend()
'
' Descend
' 14/05/2008
'
'
PosCour = PosCour + 27
cellCour = "A" & PosCour
Range(cellCour).Select
End Sub |
L'instruction qui me pose problème est celle en gras dans le code. D'après le tutorial formation excell - VBA débutant * page 116 * Paragraphe référence implicite * ce devrait être la forme à utiliser pour que cela fonctionne. Mais l'éxécution me renvoit un code d'erreur 1004.
Quelqu'un pourrait-il éclairer ma lanterne et m'aider à corriger ce soucis, svp ?
Merci d'avance.