begin process at 2012 02 14 13:11:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

execution d'une macro sous excel


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

execution d'une macro sous excel

mardi 26 décembre 2006 à 10:32:49 | execution d'une macro sous excel

arch enemy123456

bonjour,
bah j ai crée une application sous VBA elle marche bien et tout, mais j ai un petite souci
j ai crée une boutton dans une feuille qui ouvre l'application " UserForm1.show " sa marche
mais moi je veux s'avoire si il est possible de crée une Batch ou un truc paraeille qui va lancer
l'application sans passer sur l'ouverture d'excel et merci .
Ps: vraiment j ai bloqué là
mardi 26 décembre 2006 à 10:45:34 | Re : execution d'une macro sous excel

fiko81

Membre Club
Salut,
Ton problème ne peut être résolu avec VBA car tu ne pourras pas exécuter ton prog sans excel.
La limite de VBA c'est que tu ne peux pas générer des éxécutables.
--> Donc il faut passer sous VB.

 Fiko ;-)

La reponse vous convient pensez > Accepter <


mercredi 27 décembre 2006 à 09:23:10 | Re : execution d'une macro sous excel

cavo789

Ce que tu demandes est effectivement impossible : si ta macro se trouve dans Excel, comment veux-tu exécuter la macro si, au préalable, Excel n'est pas ouvert ?

Remarque : il t'est possible de lancer Excel en mode caché (propriété Visible sur False) toutefois je doute que cela réponde à ta question

Christophe
vendredi 29 décembre 2006 à 16:27:55 | Re : execution d'une macro sous excel

ljouvenaux

Une mini feinte (a developper si tu veux) :
-> je cache la fenetre (probleme  : il n'y a plus de bouton dans la barre de navigation)
> comme cela bloque la visibilite des autres Xcel, il faut une astuce, pour comprendre comment ca marche, j'ai donc utilise un Class Module qui se declenche a chaque ouverture de fichier : si le fichier ouvert est le mien, je le ferme et le rouvre ailleurs / sinon, je ferme l'autre et le rouvre ailleurs)

-> mais ce n'est pas parfait non plus (vous verrez dans les commentaires, il y a encore du travail!)

J'ai donc :

Dans le workbook directement :
Private Sub Workbook_Open()
    Call StartAutomatic
End Sub

Dans un module :
Private p_evtEvents As XlEvents
Public ThisOneIsTheGoodOne As Workbook
Sub StartAutomatic()
    Set ThisOneIsTheGoodOne = ThisWorkbook
    Set p_evtEvents = New XlEvents
    Application.Visible = False
    'The UserForm ShowModal Property Should be set to False
    UserForm1.Show
End Sub
Sub test()
    Application.Visible = True
    Debug.Print Application.Workbooks("PERSONAL.XLS").FullName
End Sub

Dans un class module nomme "XlEvents"
Private WithEvents XlApp As Excel.Application

Private Sub Class_Initialize()
    Set XlApp = Application
End Sub

Private Sub XlApp_WorkbookOpen(ByVal Wb As Workbook)
    'opening a Workbook put the app visible
    Application.Visible = False
   
    For Each mywbk In Application.Workbooks
        If Not Wb Is ThisOneIsTheGoodOne And Not Wb.Name = "PERSONAL.XLS" Then
            wbname = ThisOneIsTheGoodOne.FullName
            aa = Shell(Chr(34) & Application.Path & "\excel.exe" & Chr(34) _
                & " " & Chr(34) & wbname & Chr(34) _
                , vbMaximizedFocus _
                )
            ThisOneIsTheGoodOne.Close
            Exit Sub
        End If
    Next

    wbname =Wb.Name
    'This part could be greatly improved : in case we find another window
    'then instead of doing a simple shell (new window each time),
    'we could try to locate the other window and open it there !!!
        aa = Shell(Chr(34) & Application.Path & "\excel.exe" & Chr(34) _
                & " " & Chr(34) & wbname & Chr(34) _
                , vbMaximizedFocus _
              )
        Wb.Close savechanges:=False
End Sub

vendredi 29 décembre 2006 à 16:32:15 | Re : execution d'une macro sous excel

ljouvenaux

Une mini feinte (a developper si tu veux) :
-> je cache la fenetre (probleme  : il n'y a plus de bouton dans la barre de navigation)
> comme cela bloque la visibilite des autres Xcel, il faut une astuce, pour comprendre comment ca marche, j'ai donc utilise un Class Module qui se declenche a chaque ouverture de fichier : si le fichier ouvert est le mien, je le ferme et le rouvre ailleurs / sinon, je ferme l'autre et le rouvre ailleurs)

-> mais ce n'est pas parfait non plus (vous verrez dans les commentaires, il y a encore du travail!)

J'ai donc :

Dans le workbook directement :
Private Sub Workbook_Open()
    Call StartAutomatic
End Sub

Dans un module :
Private p_evtEvents As XlEvents
Public ThisOneIsTheGoodOne As Workbook
Sub StartAutomatic()
    Set ThisOneIsTheGoodOne = ThisWorkbook
    Set p_evtEvents = New XlEvents
    Application.Visible = False
    'The UserForm ShowModal Property Should be set to False
    UserForm1.Show
End Sub
Sub test()
    Application.Visible = True
    Debug.Print Application.Workbooks("PERSONAL.XLS").FullName
End Sub

Dans un class module nomme "XlEvents"
Private WithEvents XlApp As Excel.Application

Private Sub Class_Initialize()
    Set XlApp = Application
End Sub

Private Sub XlApp_WorkbookOpen(ByVal Wb As Workbook)
    'opening a Workbook put the app visible
    
    
    For Each mywbk In Application.Workbooks
        If Not Wb Is ThisOneIsTheGoodOne And Not Wb.Name = "PERSONAL.XLS" Then
            wbname = ThisOneIsTheGoodOne.FullName
            aa = Shell(Chr(34) & Application.Path & "\excel.exe" & Chr(34) _
                & " " & Chr(34) & wbname & Chr(34) _
                , vbMaximizedFocus _
                )
            ThisOneIsTheGoodOne.Close
            Exit Sub
        End If
    Next
   Application.Visible = False
    wbname =Wb.Name
    'This part could be greatly improved : in case we find another window
    'then instead of doing a simple shell (new window each time),
    'we could try to locate the other window and open it there !!!
        aa = Shell(Chr(34) & Application.Path & "\excel.exe" & Chr(34) _
                & " " & Chr(34) & wbname & Chr(34) _
                , vbMaximizedFocus _
              )
        Wb.Close savechanges:=False
End Sub



Cette discussion est classée dans : macro, application, excel, crée, execution


Répondre à ce message

Sujets en rapport avec ce message

error excel lors execution macro [ par andreolia ] bonjour, J'ai developpé une application sous excel qui utilise des macros (et forms). Mon application fonctionne correctement sur la plupart d création d'un setup [ par arch enemy123456 ] bonjour, en fait j'ai un petite souci la :( je veux crée un setup qui permet de coller un dossier dans un répértoire bien précis et crée un raccourci réactualisation liens DDE pendant execution macro Excel [ par delph54111 ] Bonjour je suis étudiante et je suis actuellement en stage dans une entreprise où je réalise des macros dans ExcelJe voudrai savoir s'il existe un moy fenetre Excel lors de l execution d une macro VBA [ par Vanjelis ] Quand je lance une macro VBA sous Excel, je ne peut plus atteindre (=activer), la fenetre Excel, a moins bien sur d arreter la macro. Coment on peut r Virus Outllook et Excel [ par PhilippeM ] Virus fait disparaitre les bouton d'execution de Macro sous les feuilles (worksheet) d'Excelse propage sur tout les fichiers *.xlsfait disparaitre les Help! Empecher execution macro excel... [ par caro999 ] Bonjour,Je souhaite ouvrir un classeur Excel par VB en désactivant les macros. Si quelqu'un a une suggestion, ça m'aiderait vraiment :)Merci! Fermer une macro excel ouverte à partir d'IE [ par nyckola ] J'ouvre via une page Web un ficher Excel contenant une macro.Pour quitter cette application, il existe une cellule Excel "Quitter" à laquelle j'ai aff Comment intégrer des Macro Excel sous VB [ par Caussenard ] Je débarque sous VB j'ai bien acheter VB pour les nuls mais il ne répond pas à mes attentes.Voici mon problème:J'ai crée des macros sous Excel qui tra Excel: application d'une macro sur chaque onglet d'un fichier [ par tomsawyer_911 ] Bonjour à Tous,Je vous fais parvenir le problème VBA sur lequel je bute depuis longtemps...Je cherche à appliquer une macro pour chaque feuille de mon execution macro Excel via VB [ par GroSam ] Salut! Voila j'aimerais executer une macro perso qui se trouve dans un fichier Excel à partir de VB.. j'essaye d'utiliser application.ExecuteExcel4Ma


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales