Précédent   Le Forum de Génération Nouvelles Technologies > Logiciels > Développements
S'inscrire Stats IRC FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus

Développements Tout ce qui touche au développement d'applications ou du Web

Réponse
 
LinkBack (5) Outils de la discussion Modes d'affichage
Vieux 25/04/2006, 17h52   5 links from elsewhere to this Post. Click to view. #1 (permalink)
Nikozozo
Novice
 
Date d'inscription: mars 2006
Messages: 22
Pouvoir de réputation: 0 Nikozozo est bien parti(e)
Par défaut

Bonjour,

Voial j'ai déclaré une macro vba en Sub auto_open() (execution automatique de la macro lors de son ouverture)dans un classeur xls.
Cette macro marche nickel, lorsque je lance manuellement mon fichier, en cliquant sur celui-ci moi même.

Par contre quand j'ouvre ce fichier à partir de mon script vbs ci-dessous,mon fichier s'ouvre, mais ma macro ne se lance pas en automatique.

Voila ce qui m'amène à vous poser la question suivante :

Que dois-je faire pour faire appel à ma macro à partir de mon vbs, pour que celle-ci s'execute en automatique à l'ouverture de mon fichier ?

Si vous aviez une autre idée, merci de m'en faire part.

Voici mon petit bout de code VBS :

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\Fichier.xls")
objExcel.Visible = TRUE

...

Merci d'avance pour vos réponses.

NikoZozo
Nikozozo est déconnecté   Réponse avec citation
Vieux 25/04/2006, 18h21   #2 (permalink)
pascaljb
Débutant
 
Date d'inscription: mars 2005
Messages: 706
Pouvoir de réputation: 57 pascaljb est bien parti(e)
Par défaut

Set objWorkbook = objExcel.Workbooks.Open("C:\Fichier.xls")
ActiveWorkbook.RunAutoMacros xlAutoOpen
objExcel.Visible = TRUE
pascaljb est déconnecté   Réponse avec citation
Vieux 25/04/2006, 20h51   #3 (permalink)
Nikozozo
Novice
 
Date d'inscription: mars 2006
Messages: 22
Pouvoir de réputation: 0 Nikozozo est bien parti(e)
Par défaut

Bonsoir Pascaljb,

Merci beaucoup pour ta réponse

J'essaye demain au boulot, je te tiens informé.

Merci encore
Nikozozo est déconnecté   Réponse avec citation
Vieux 26/04/2006, 11h05   #4 (permalink)
Nikozozo
Novice
 
Date d'inscription: mars 2006
Messages: 22
Pouvoir de réputation: 0 Nikozozo est bien parti(e)
Par défaut

Bonjour Pascal,

Bon alors voila les resultats :

Hier j'ai testé chez moi sur un poste avec Windows XP Pro et service pack 2, J'ai donc copié tes 3 lignes en lancant un fichier excel de test (sans macro auto-open), je n'ai eu aucun message d'erreur sur mon script vbs.

La étant au boulot sur un poste windows 2000 équipé du services Pack 4 avec mon bon fichier excel et ma bonne macro auto-open qui va bien .
Je viens de tester avec toujours ces 3 lignes, j'obtiens le message d'erreur suivant :

Ligne 1
Caract 1
Erreur : Objet requis 'objExcel'
Code 800A01A8
Source : Erreur d'execution Microsoft VBSscript

J'ai donc modifier ce bout de code de la sorte :

Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\MonFichier.xls")
ActiveWorkbook.RunAutoMacros xlAutoOpen
objExcel.Visible = TRUE

Et voici la description du nouveau message d'erreur :

Ligne : 3
Caract. : 1
Erreur : Objet requis: 'ActiveWorkbook'
Code 800A01A8

Pourrais- tu me dire ce qui cloche stp ?

en Complément d'info, si cela peut avoir de l'importance :

environnement office 2000
Voici le début de ma macro Excel :

Sub Macro1()

Sub auto_open()

Merci beaucoup.
Nikozozo est déconnecté   Réponse avec citation
Vieux 26/04/2006, 14h13   #5 (permalink)
pascaljb
Débutant
 
Date d'inscription: mars 2005
Messages: 706
Pouvoir de réputation: 57 pascaljb est bien parti(e)
Par défaut

Contenu du vbs :
Dim objExcel
Dim objWorkbook
Set objExcel = CreateObject("excel.application")
Set objWorkbook = objExcel.Workbooks.Open("c:\Scripts\MonFichier.xls ")
objWorkbook.RunAutoMacros 1 'xlautoopen
objExcel.Run ("Macro1")
objExcel.Visible = True

Contenu de la macro :
Sub Macro1()
ActiveCell.FormulaR1C1 = "1"
Range("A2").Select
ActiveCell.FormulaR1C1 = "2"
Range("A1:A2").Select
Selection.AutoFill Destination:=Range("A1:A20"), Type:=xlFillDefault
Range("A1:A20").Select
Range("A1").Select
End Sub
pascaljb est déconnecté   Réponse avec citation
Vieux 26/04/2006, 15h01   #6 (permalink)
Nikozozo
Novice
 
Date d'inscription: mars 2006
Messages: 22
Pouvoir de réputation: 0 Nikozozo est bien parti(e)
Par défaut

MERCI INFINIMENT pascaljb !

Ca marche du tonerre
Nikozozo est déconnecté   Réponse avec citation
Réponse


LinkBacks (?)
LinkBack to this Thread: http://forum.generation-nt.com/developpements/resolu-appel-d-une-macro-excel-via-script-vbs-163449/
Envoyé par For Type Date
macro autoopen excel - Recherche Google This thread Refback 29/09/2006 15h48
macro open excel - Recherche Google This thread Refback 29/09/2006 15h28
executer macro excel automatiquement ouverture - Recherche Google This thread Refback 29/09/2006 10h30
sub auto_open() - Recherche Google This thread Refback 29/09/2006 00h08
macro qui appelle une autre macro sur excel - Recherche Google This thread Refback 28/09/2006 20h25

Utilisateurs regardant la discussion actuelle : 1 (0 membre(s) et 1 invité(s))
 

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are non
Outils de la discussion
Modes d'affichage



Fuseau horaire GMT +2. Il est actuellement 14h38.

S'inscrire Charte Stats IRC FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus

Hit-Parade NewsNow