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 !