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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Erreur d'exécution 1004 ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Erreur d'exécution 1004 ...

n°1669201
bergeli
Posté le 10-01-2008 à 17:15:03  profilanswer
 

Bonjour a tous,
 
Tout d'abord merci de me lire ...
 
Voici mon pb.
 
Je veux transférer le contenu d'un recordset d'access vers Excel en utilisant une mise en forme automatique.
Je l'exécute une première fois et tout se passe à la perfection.
 
Par contre lorsque je ré-exécute la macro, j'obtiens l'erreur "La méthode range de l'objet global a échoué. Erreur d'exécution 1004. voir ligne 'Range("A3:W3" ).Select'
 
Je joins une partie du code ...
 
 
[cpp]Dim wbk As Excel.Workbook
Dim db As DAO.Database
Dim rst As DAO.Recordset
Dim fld As DAO.Field
Dim intcolonne, intligne As Integer
Dim xl As Excel.Application
 
Set db = CurrentDb()
Set rst = db.OpenRecordset("Sales Detail Clothing By Style" )
 
Set xl = New Excel.Application
xl.Visible = True
   
With xl
    Set wbk = .Workbooks.Add
     
    wbk.Sheets("feuil1" ).Name = "Detail Clothing By Style"
     
    With wbk.Sheets("Detail Clothing By Style" )
         .Range("A3" ).Value = "PH"
         .Range("B3" ).Value = "Style"
         .Range("C3" ).Value = "Desc"
         .Range("D3" ).Value = "Planner"
         .Range("E3" ).Value = "ST"
         .Range("F3" ).Value = "SUB"
         .Range("G3" ).Value = "PA"
         .Range("H3" ).Value = "AN"
         .Range("I3" ).Value = "COST"
         .Range("J3" ).Value = "IO Ord QTY"
         .Range("K3" ).Value = "IO SHIP QTY"
         .Range("L3" ).Value = "IO LINES ORD"
         .Range("M3" ).Value = "IO LINES SHIP"
         .Range("N3" ).Value = "REP Ord QTY"
         .Range("O3" ).Value = "REP SHIP QTY"
         .Range("P3" ).Value = "REP LINES ORD"
         .Range("Q3" ).Value = "REP LINES SHIP"
         .Range("R3" ).Value = "INVENTORY"
         .Range("S3" ).Value = "ON ORDER"
         .Range("T3" ).Value = "TOT ON HAND"
         .Range("U3" ).Value = "Sales Forecast"
         .Range("V3" ).Value = "Projected Sales"
         .Range("W3" ).Value = "% of sales entered vs forecast"
         
         .Range("A4" ).CopyFromRecordset rst
      End With
       
      Range("A3:W3" ).Select  '---------  ici est l'erreur d'exécution'
    With Selection.Font
               .Name = "Arial"
        .Size = 8
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = 1
    End With
    Selection.Font.Bold = True
    Range("J3" ).Select
    ActiveCell.FormulaR1C1 = "IO ORDER " & Chr(10) & "QTY"
    With ActiveCell.Characters(Start:=1, Length:=13).Font
etc...
 
Gros Gros merci

mood
Publicité
Posté le 10-01-2008 à 17:15:03  profilanswer
 

n°1669293
Thierry_94
Posté le 10-01-2008 à 19:23:08  profilanswer
 

Bonjour,
Essayez de mettre le range fautif à l'intérieur du 1er With ...
A+

Message cité 1 fois
Message édité par Thierry_94 le 10-01-2008 à 19:23:38
n°1669297
bergeli
Posté le 10-01-2008 à 19:47:37  profilanswer
 

Thierry_94 a écrit :

Bonjour,
Essayez de mettre le range fautif à l'intérieur du 1er With ...
A+


 
 
Désolé je ne comprends pas ce que vous voulez dire. Je ne suis pas très familière avec ce procéder. J'en suis même à ma première tentative.
Serait-ce possible de me détailler un peu plus.
 
Encore merci

n°1669298
bergeli
Posté le 10-01-2008 à 19:48:17  profilanswer
 

Désolé je ne comprends pas ce que vous voulez dire. Je ne suis pas très familière avec ce procéder. J'en suis même à ma première tentative.  
Serait-ce possible de me détailler un peu plus.
 
Encore merci

n°1669367
juju2k
Posté le 10-01-2008 à 22:53:28  profilanswer
 

Bonjour,
il veut dire que vous devriez déplacer

Range("A3:W3" ).Select


dans le bloc

With wbk.Sheets("Detail Clothing By Style" )
End With


À savoir :

With wbk.Sheets("Detail Clothing By Style" )
         .Range("A3" ).Value = "PH"
         .Range("B3" ).Value = "Style"
         .Range("C3" ).Value = "Desc"
         .Range("D3" ).Value = "Planner"
         .Range("E3" ).Value = "ST"
         .Range("F3" ).Value = "SUB"
         .Range("G3" ).Value = "PA"
         .Range("H3" ).Value = "AN"
         .Range("I3" ).Value = "COST"
         .Range("J3" ).Value = "IO Ord QTY"
         .Range("K3" ).Value = "IO SHIP QTY"
         .Range("L3" ).Value = "IO LINES ORD"
         .Range("M3" ).Value = "IO LINES SHIP"
         .Range("N3" ).Value = "REP Ord QTY"
         .Range("O3" ).Value = "REP SHIP QTY"
         .Range("P3" ).Value = "REP LINES ORD"
         .Range("Q3" ).Value = "REP LINES SHIP"
         .Range("R3" ).Value = "INVENTORY"
         .Range("S3" ).Value = "ON ORDER"
         .Range("T3" ).Value = "TOT ON HAND"
         .Range("U3" ).Value = "Sales Forecast"
         .Range("V3" ).Value = "Projected Sales"
         .Range("W3" ).Value = "% of sales entered vs forecast"
         
         .Range("A4" ).CopyFromRecordset rst
 
         .Range("A3:W3" ).Select
      End With


Ne pas oublier le point !


Message édité par juju2k le 10-01-2008 à 22:53:48
n°1669409
dreameddea​th
Posté le 11-01-2008 à 02:09:38  profilanswer
 

Bonjour,
 
le problème ne va pas se poser que là, mais aussi pour

Code :
  1. Range("J3" ).Select


 
Pour comprendre l'erreur, il faut savoir que l'objet Range n'existe pas, donc VBA essaye de l'interpréter comme la méthode/attribut de l'objet global qui est Application (je crois). Or il n'y a pas de méthode/attribut Range pour l'objet Application d'où le message d'erreur.
 
En fait l'attribut Range n'existe que pour les objets Worksheet et c'est ce que fait le  

Code :
  1. With wbk.Sheets("Detail Clothing By Style" )


qui fait que l'objet par "défaut" devient la feuille "Detail Clothing By Style", ce qui permet d'utiliser la syntaxe .Range.
 
Par contre je ne peux que conseiller de faire un effort d'apprentissage (via un petit tutoriel par exemple) pour apprendre les bases avant de continuer...
 
Cordialement


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

  Erreur d'exécution 1004 ...

 

Sujets relatifs
Erreur de paramètres?Erreur Mysql sur </html>
erreur non connu, désire changer la couleur d'un panel via les menu[C++] Erreur déclaration tableau dans classe
erreur : Warning: session_start() [function.session-start]: Cannot senErreur php bizzare...
[PHP] Erreur incompréhensibleErreur 340 non universel ??
Exécution commande, pas de retour [Résolu][PHP] Erreur: Cannot use a scalar value as an array
Plus de sujets relatifs à : Erreur d'exécution 1004 ...


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