Erreur d'exécution 1004 ... - VB/VBA/VBS - Programmation
Marsh Posté le 10-01-2008 à 19:23:08
Bonjour,
Essayez de mettre le range fautif à l'intérieur du 1er With ...
A+
Marsh Posté le 10-01-2008 à 19:47:37
Thierry_94 a écrit : Bonjour, |
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
Marsh Posté le 10-01-2008 à 19:48:17
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
Marsh Posté le 10-01-2008 à 22:53:28
Bonjour,
il veut dire que vous devriez déplacer
Range("A3:W3" ).Select |
dans le bloc
With wbk.Sheets("Detail Clothing By Style" ) |
À savoir :
With wbk.Sheets("Detail Clothing By Style" ) |
Ne pas oublier le point !
Marsh Posté le 11-01-2008 à 02:09:38
Bonjour,
le problème ne va pas se poser que là, mais aussi pour
Code :
|
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 :
|
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
Marsh Posté le 10-01-2008 à 17:15:03
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