Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2190 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme macro excell

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme macro excell

n°2197586
bjoorn
Posté le 15-07-2013 à 17:57:48  profilanswer
 

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:
 
 

Citation :


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 ! :)

mood
Publicité
Posté le 15-07-2013 à 17:57:48  profilanswer
 

n°2197595
Marc L
Posté le 15-07-2013 à 18:34:35  profilanswer
 

 
           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


Message édité par Marc L le 15-07-2013 à 18:37:01
n°2197632
bjoorn
Posté le 15-07-2013 à 21:52:39  profilanswer
 

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 :)

n°2197652
bjoorn
Posté le 16-07-2013 à 00:38:59  profilanswer
 

Bon ben tout marche nickel, merci ;)

n°2197658
Marc L
Posté le 16-07-2013 à 01:37:08  profilanswer
 

 
           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 :
  1.     With xlSheet
  2.            
  3.      'sum of 12 past months
  4.     .Range("BQ2" ).FormulaR1C1 = "=SUM(RC[-66]:RC[-55])"
  5.     .Range("BR2" ).FormulaR1C1 = "=SUM(RC[-66]:RC[-55])"
  6.     .Range("BQ2:BR2" ).AutoFill Destination:=.Range("BQ2:DB2" ), Type:=xlFillDefault


Message édité par Marc L le 16-07-2013 à 01:54:21

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme macro excell

 

Sujets relatifs
Lancement automatique d'une macro - tous les jours, sans interventionProbléme GMP
Problème signature ds windows live mailProbléme avec les socket en C
[RESOLU] PROBLEME AVEC FORMULAIREProblème de comparaison textbox et cellule active
probléme application WINDEVmacro pour catiaV5 dans un drawing avec "selectelement2"
macro VBA sous excell 2000 probleme avec excell 2007Problème avec une vielle macro Excell
Plus de sujets relatifs à : Probleme macro excell


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR