pour faire suite au problème lié au pilotage du format
d'une feuille excel à partir d'un script vbs ,
voici le code demandé par Daniel M
avec un rappel du problème :
le code publié ci dessous fonctionne bien sous une macro
dans excel (à quelques détails prés) et si j'execute
ce meme code depuis un script vbs cela ne fonctionne pas :
**************** PARTIE AJOUTEE POUR LE SCRIPT VBS **************
Set ArgObj = WScript.Arguments
If ArgObj.Count <> 1 Then
'MsgBox ArgObj.Count
MsgBox "Nom de fichier incorrect !"
WScript.Quit (1)
End If
sFile = ArgObj(0)
'MsgBox sFile
Set objExcel = CreateObject("Excel.Application")
Set objWorkBook = objExcel.Workbooks.Open(sFile)
If Err <> 0 Then
MsgBox "Fichier Excel introuvable/impossible à ouvrir !"
Set objExcel = Nothing
WScript.Quit (1)
End If
***************Fin de la partie nécessaire pour le script vbs **************
' DEBUT DU FORMATAGE QUI NE FONCTIONNE PAS QUAND IL EST EXECUTE DEPUIS UN
VBS MAIS QUI FONCTIONNE TRES BIEN DEPUIS EXCEL
'***********************************************************
objWorkBook.Sheets("Feuil1").Select
End With
*********** Fin du formatage *************
objWorkBook.Save
objWorkBook.Close
Set objWorkBook = Nothing
Set objExcel = Nothing
****************
!!!! Je précise que le script vbs arrive quand meme a ouvrir le fichier a
l'enregistrer et a le fermer . De plus si j'inclus dans mon code une
suppression de colonne : columns(2).delete cela fonctionne.
Ca ne fonctionne plus des que je veux mettre en forme.
"thierry" a écrit dans le message de news:410748a1$0$12496$
Bonjour ,
pour faire suite au problème lié au pilotage du format d'une feuille excel à partir d'un script vbs , voici le code demandé par Daniel M avec un rappel du problème :
le code publié ci dessous fonctionne bien sous une macro dans excel (à quelques détails prés) et si j'execute ce meme code depuis un script vbs cela ne fonctionne pas :
**************** PARTIE AJOUTEE POUR LE SCRIPT VBS ************** Set ArgObj = WScript.Arguments If ArgObj.Count <> 1 Then 'MsgBox ArgObj.Count MsgBox "Nom de fichier incorrect !" WScript.Quit (1) End If sFile = ArgObj(0) 'MsgBox sFile Set objExcel = CreateObject("Excel.Application") Set objWorkBook = objExcel.Workbooks.Open(sFile) If Err <> 0 Then MsgBox "Fichier Excel introuvable/impossible à ouvrir !" Set objExcel = Nothing WScript.Quit (1) End If ***************Fin de la partie nécessaire pour le script vbs **************
' DEBUT DU FORMATAGE QUI NE FONCTIONNE PAS QUAND IL EST EXECUTE DEPUIS UN VBS MAIS QUI FONCTIONNE TRES BIEN DEPUIS EXCEL '*********************************************************** objWorkBook.Sheets("Feuil1").Select
End With *********** Fin du formatage ************* objWorkBook.Save objWorkBook.Close Set objWorkBook = Nothing Set objExcel = Nothing
****************
!!!! Je précise que le script vbs arrive quand meme a ouvrir le fichier a l'enregistrer et a le fermer . De plus si j'inclus dans mon code une suppression de colonne : columns(2).delete cela fonctionne. Ca ne fonctionne plus des que je veux mettre en forme.
merci d'avance srmt t
Bonjour
A vu de nez je dirais qu'il te faut utiliser une qualification complète pour
que cela fonctionne.
Exemple :
"thierry" <thierry@nospam.thierry.lo> a écrit dans le message de
news:410748a1$0$12496$626a14ce@news.free.fr...
Bonjour ,
pour faire suite au problème lié au pilotage du format
d'une feuille excel à partir d'un script vbs ,
voici le code demandé par Daniel M
avec un rappel du problème :
le code publié ci dessous fonctionne bien sous une macro
dans excel (à quelques détails prés) et si j'execute
ce meme code depuis un script vbs cela ne fonctionne pas :
**************** PARTIE AJOUTEE POUR LE SCRIPT VBS **************
Set ArgObj = WScript.Arguments
If ArgObj.Count <> 1 Then
'MsgBox ArgObj.Count
MsgBox "Nom de fichier incorrect !"
WScript.Quit (1)
End If
sFile = ArgObj(0)
'MsgBox sFile
Set objExcel = CreateObject("Excel.Application")
Set objWorkBook = objExcel.Workbooks.Open(sFile)
If Err <> 0 Then
MsgBox "Fichier Excel introuvable/impossible à ouvrir !"
Set objExcel = Nothing
WScript.Quit (1)
End If
***************Fin de la partie nécessaire pour le script vbs
**************
' DEBUT DU FORMATAGE QUI NE FONCTIONNE PAS QUAND IL EST EXECUTE DEPUIS UN
VBS MAIS QUI FONCTIONNE TRES BIEN DEPUIS EXCEL
'***********************************************************
objWorkBook.Sheets("Feuil1").Select
End With
*********** Fin du formatage *************
objWorkBook.Save
objWorkBook.Close
Set objWorkBook = Nothing
Set objExcel = Nothing
****************
!!!! Je précise que le script vbs arrive quand meme a ouvrir le fichier a
l'enregistrer et a le fermer . De plus si j'inclus dans mon code une
suppression de colonne : columns(2).delete cela fonctionne.
Ca ne fonctionne plus des que je veux mettre en forme.
"thierry" a écrit dans le message de news:410748a1$0$12496$
Bonjour ,
pour faire suite au problème lié au pilotage du format d'une feuille excel à partir d'un script vbs , voici le code demandé par Daniel M avec un rappel du problème :
le code publié ci dessous fonctionne bien sous une macro dans excel (à quelques détails prés) et si j'execute ce meme code depuis un script vbs cela ne fonctionne pas :
**************** PARTIE AJOUTEE POUR LE SCRIPT VBS ************** Set ArgObj = WScript.Arguments If ArgObj.Count <> 1 Then 'MsgBox ArgObj.Count MsgBox "Nom de fichier incorrect !" WScript.Quit (1) End If sFile = ArgObj(0) 'MsgBox sFile Set objExcel = CreateObject("Excel.Application") Set objWorkBook = objExcel.Workbooks.Open(sFile) If Err <> 0 Then MsgBox "Fichier Excel introuvable/impossible à ouvrir !" Set objExcel = Nothing WScript.Quit (1) End If ***************Fin de la partie nécessaire pour le script vbs **************
' DEBUT DU FORMATAGE QUI NE FONCTIONNE PAS QUAND IL EST EXECUTE DEPUIS UN VBS MAIS QUI FONCTIONNE TRES BIEN DEPUIS EXCEL '*********************************************************** objWorkBook.Sheets("Feuil1").Select
End With *********** Fin du formatage ************* objWorkBook.Save objWorkBook.Close Set objWorkBook = Nothing Set objExcel = Nothing
****************
!!!! Je précise que le script vbs arrive quand meme a ouvrir le fichier a l'enregistrer et a le fermer . De plus si j'inclus dans mon code une suppression de colonne : columns(2).delete cela fonctionne. Ca ne fonctionne plus des que je veux mettre en forme.
merci d'avance srmt t
Daniel.M
Thierry,
Même si l'enregistreur de macro SELECTionne avant de faire les opérations, tu devrais éviter de le faire dans ton code. Il faut écremer (tous les SELECT) le code de l'enregistreur.
Comme Papou te l'a dit, il faut qualifier complètement tes objets (utilise With).
.Columns("A:A").EntireColumn.Hidden = True ' <== remarque le Point au départ With .Columns("B:B") ' <== le point au départ (fait dépendre de la feuille) .HorizontalAlignment = xlLeft .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With With .ActiveSheet.PageSetup 'etc. End With
End With ' avec cette feuille
Salutations,
Daniel M.
Thierry,
Même si l'enregistreur de macro SELECTionne avant de faire les opérations, tu
devrais éviter de le faire dans ton code. Il faut écremer (tous les SELECT) le
code de l'enregistreur.
Comme Papou te l'a dit, il faut qualifier complètement tes objets (utilise
With).
.Columns("A:A").EntireColumn.Hidden = True ' <== remarque le Point au
départ
With .Columns("B:B") ' <== le point au départ (fait dépendre de la feuille)
.HorizontalAlignment = xlLeft
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With .ActiveSheet.PageSetup
'etc.
End With
Même si l'enregistreur de macro SELECTionne avant de faire les opérations, tu devrais éviter de le faire dans ton code. Il faut écremer (tous les SELECT) le code de l'enregistreur.
Comme Papou te l'a dit, il faut qualifier complètement tes objets (utilise With).
.Columns("A:A").EntireColumn.Hidden = True ' <== remarque le Point au départ With .Columns("B:B") ' <== le point au départ (fait dépendre de la feuille) .HorizontalAlignment = xlLeft .WrapText = False .Orientation = 0 .AddIndent = False .IndentLevel = 0 .ShrinkToFit = False .ReadingOrder = xlContext .MergeCells = False End With With .ActiveSheet.PageSetup 'etc. End With