begin process at 2010 02 10 00:24:28
  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 Utilisation de plusieurs applications excels [ par bricaud ] Bonjour à tous !c'est la première fois que je poste sur le forum, j'espère que vous allez pouvoir m'aider.Il me manque quelques bouts de code VBA, néc Erreur Excel à l'ouverture [ par astem ] Bonjour,J'ai écris une macro qui fait planter Excel au démarrage de mon application. Même en désactivant les macros je ne peux plus ouvrir mon classeu Appel de macro Excel depuis une autre application [ par chastada ] Bonjour,je suis confronté au problème suivant:J'ai une macro, Mamacro, dans un fichier Excel qui doit insérer des lignes dans une feuille.Si la macro Execution de macro sous Excel 2003 [ par killy99 ] Bonjour,j'ai un souci pour exécuter une macro. Sur mon poste tout ce passe bien que ça soit sur des fichier enregistré sur serveur, sur c: ou sur clé APPLICATION.FILESEARCH EXCEL2000 VS EXCEL 2003 [ par ludwig89 ] Bonjourj'ai créé une macro via excel ou j'utilise la fonction :application.filesearch.celle macro fonctionne très biens sous excel2000 mais pas sous e macro sauvegarde classeur excel [ par michel333 ] Bonjourma macro de sauvegarde(enregistrement du classeur avec le meme nom par un click sur un bouton) fonctionnait normalement sous excel 97 avant que [Déplacé VB6 --> VBA] Macro Excel devient lente [ par bambival ] Bonjour a tous, Depuis quelques temps je fais face aune difficulte a laquelle je ne trouve pas de solution. En effet j ai realise une macro pour le tr Execution macro excel [ par bambival ] Bonjour a tous, Depuis quelques temps je fais face aune difficulte a laquelle je ne trouve pas de solution. En effet j ai realise une macro pour le 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


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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,265 sec (3)

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