Probleme macro excell - VB/VBA/VBS - Programmation
Marsh Posté le 15-07-2013 à 18:34:35
Bonjour,
pas sûr sur ce coup là mais si Range n'existe pas dans Access, il faudrait peut-être le qualifier sur Excel, non ?
.Application.Selection.AutoFill Destination:= .Application.Range("BQ2:DB2" ), Type:=xlFillDefault
Je me demande même si seul le point suffirait ou encore utiliser xlSheet à la place de xlApp dans la ligne With …
Marsh Posté le 15-07-2013 à 21:52:39
Merci pour ta réponse !
Effectivement le point seul a fonctionné ! Ce que je me demande c'est pourquoi ma mauvaise écriture marchait quand meme la premiere fois que j'éxécutais la macro...
J'ai pas mal de choses a modifier dans mon code de cette maniere, et apres je vais vois si ca marche vraiment
Marsh Posté le 16-07-2013 à 01:37:08
Parfois VBA arrive à combler les références manquantes, mais pas toujours …
Sinon la question essentielle à se poser est à quoi se rattache un objet et respecter la hiérarchie de l'application.
Hiérarchie d'Excel :
- Application
- Workbooks
- Worksheets, Sheets
- Cells, Columns, Range, Rows
- méthodes, propriétés
En la suivant, le code peut être simplifié :
Code :
|
Marsh Posté le 15-07-2013 à 17:57:48
Bonjour a tous,
Je suis un train de faire un petit outil access/excel avec des macros, mais je bloque sur une erreur depuis un bon bout de temps ! En gros a ce niveau je suis en train de formater un fichier excel depuis access
C'est la fameuse erreur : Error 1004. Method 'Range of object'_Global failed
J'ai fait pas mal de recherches sur le web a propos de cette erreur, mais elle a l'air assez vague parce qu'a chaque fois la solution était pas adaptée a mon problème.
Voici mon bout de code, et en rouge c'est la ligne qui provoque l'erreur:
Public Sub ModifyExportedExcelFileFormats3(sFile As String)
On Error GoTo Err_ModifyExportedExcelFileFormats3
Dim MyPath As String
Dim MyFilename As String
MyPath = fGetSpecialFolderLocation(CSIDL_DESKTOPDIRECTORY) & "\"
MyFilename = List119.value & "Sales.xls"
sFile = MyPath & MyFilename
sFile = Replace(sFile, Chr(42), "" )
sFile = Replace(sFile, Chr(47), "" )
Application.SetOption "Show Status Bar", True
vStatusBar = SysCmd(acSysCmdSetStatus, "Formatting export file... please wait." )
Dim xlApp As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application" )
Set xlSheet = xlApp.Workbooks.Open(sFile).Sheets(1)
With xlApp
'sum of 12 past months
.Application.Range("BQ2" ).Select
.Application.ActiveCell.FormulaR1C1 = "=SUM(RC[-66]:RC[-55])"
.Application.Range("BR2" ).Select
.Application.ActiveCell.FormulaR1C1 = "=SUM(RC[-66]:RC[-55])"
.Application.Range("BQ2:BR2" ).Select
.Application.Selection.AutoFill Destination:=Range("BQ2:DB2" ), Type:=xlFillDefault
...
Important : L'erreur apparait uniquement la 2eme fois que je lance la macro. Si je ferme access et que je le reouvre, l'erreur n'apparait plus.
Est-ce que vous avez une idee ?? Merci beaucoup par avance pour votre aide !