problème lors de l execution macro automatique

problème lors de l execution macro automatique - VB/VBA/VBS - Programmation

Marsh Posté le 20-07-2006 à 16:58:03    

Je voudrais savoir comment faire pour que ma macro s'exécute automatiquement à l'ouverture du fichier excel qui la contient ??
J'ai lu sur le net qu'il fallait mettre le code dans ThisWorkbook ... mais pour moi cela ne fontionne pas (à l'origine elle s'active par un bouton dans la feuille excel).
 
Autrement : A mon avis c'est pas possible :whistle:. J'aurais voulu que la macro se supprime après son exécution.
(Je vais essayer de le faire faire par un prog externe).

Message cité 1 fois
Message édité par jagwar le 21-07-2006 à 09:29:02
Reply

Marsh Posté le 20-07-2006 à 16:58:03   

Reply

Marsh Posté le 20-07-2006 à 17:07:37    

jagwar a écrit :

Je voudrais savoir comment faire pour que ma macro s'exécute automatiquement à l'ouverture du fichier excel qui la contient ??
J'ai lu sur le net qu'il fallait mettre le code dans ThisWorkbook ... mais pour moi cela ne fontionne pas (à l'origine elle s'active par un bouton dans la feuille excel).
 
Autrement : A mon avis c'est pas possible :whistle:. J'aurais voulu que la macro se supprime après son exécution.
(Je vais essayer de le faire faire par un prog externe).


sujet déjà traité ici, pour la suppression de la matrice, va voir sur excel labo, tout le code est fourni...

Reply

Marsh Posté le 20-07-2006 à 17:26:51    

j'arrive po à trouver sur le forum ... sniff  :(  
C'est la fin de journée, les yeux sont fatigués ... :sleep:  
J'ai essayé recherche (sur le forum) : - execution macro automatique
                                                  - lancer macro ouverture
 
Sinon j'ai trouver sur excel labo :
Workbook_open et auto_open
Mais je n'arrive pas  les faire fonctionner (en plus je comprends pas vraiment la différence entre les 2)


Message édité par jagwar le 20-07-2006 à 17:35:14
Reply

Marsh Posté le 20-07-2006 à 17:33:22    

Reply

Marsh Posté le 20-07-2006 à 17:36:49    

ça a pas l'air de fonctionner ... Warning SQL ... jcrois que sa BDD a laché ou le lien est obsolète ??


Message édité par jagwar le 20-07-2006 à 17:40:32
Reply

Marsh Posté le 20-07-2006 à 18:56:54    

ça remarche...

Reply

Marsh Posté le 21-07-2006 à 09:12:35    

OK merci.  
Mais j'ai un soucis, ma macro s'exécutait bien avant que je passe en ouverture auto. Maintenant elle plante là :  
'Erreur d'exécution '91' : Variable ou objet de bloc With non défini
 
ActiveSheet.Find(What:="Q5", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate
 
(à cette ligne je recherche la cellule contenant Q5)
la ligne avant est : Workbooks.OpenText Filename:=.FoundFiles(Ctr), Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:= _
        False, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array( _
        1, 1), Array(2, 1))
 
J'ai aussi essayé :  
VarFeuille = ActiveSheet.Name
        Sheets(VarFeuille).Cells.Find(What:="Q5", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False).Activate
 
Ce qui est bizarre aussi, c'est que si j'appuie sur le bouton contenant le même code, cela fonctionne ????? :??:  
????


Message édité par jagwar le 21-07-2006 à 09:34:59
Reply

Marsh Posté le 21-07-2006 à 09:41:28    

Peut-être devrais-tu positionner la cellule active en "A1" avant de faire le find.


Message édité par Paul Hood le 21-07-2006 à 09:41:42
Reply

Marsh Posté le 21-07-2006 à 09:45:48    

comme ca ca devrait marcher :
 
Cells.Find(What:="Q5", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate


Message édité par DamienCYS le 21-07-2006 à 09:46:17
Reply

Marsh Posté le 21-07-2006 à 09:48:06    

ça fonctionne merci à tous les deux !!! :bounce:
 
Mais maintenant c'est là que cela plante :    
Charts.Add  
ActiveChart.ChartType = xlXYScatter
    ActiveChart.SetSourceData Source:=Sheets(VarFeuille).Range("D3" )
 
 :pfff: Je crois que tout ce que j'avais fait en mode enregistrement ne passe plus  :pfff:
Ou alors c'est parce que maintenant mon code est dans ThisWorkbook ... autrement je pourrai simuler un clique sur mon bouton (là normalement ça fonctionne)
 
 
J'en suis presque sur maintenant. A l'origine mon code était dans feuill1 et lanc par un bouton, et quand je le déplace dans ThisWorkbook cela noe fonctionne plus...
Il faut que je trouve une autre façon de laner ma macro ... quelqu'un aurait une idée SVP ???
Autrement puis-je faire un exe avec ma macro ????


Message édité par jagwar le 21-07-2006 à 10:51:03
Reply

Marsh Posté le 21-07-2006 à 09:48:06   

Reply

Marsh Posté le 21-07-2006 à 11:05:53    

si ca fonctionne en mettant le code dans la feuille remets tout ton code dans la feuille et dans l'evt open de ThisWorkbook tu mets simplement <nom de la feuille>.<nom de le macro>

Reply

Marsh Posté le 21-07-2006 à 11:19:54    

Arf ton idée est pas mal ... mais j'arrive pas à la mettre en application ...
Voici mon code dans ThisWorkbook :
 
Private Sub Workbook_Open()
Feuil1.CommandButton1_Click()
End Sub
 
Il me dit erreur de compilation : erreur de syntaxe ??
 
sachant que ma macro dans Feuil1 ressemble à :
Private Sub CommandButton1_Click()
'tout le code de ma macro  
End Sub

Reply

Marsh Posté le 21-07-2006 à 11:39:26    

ca ne marche pas avec des private et il ne faut pas mettre de parenthèse a l'appel de la fonction ce qui donne :
 
Private Sub Workbook_Open()  
  Feuil1.CommandButton1_Click
End Sub  
 
Public Sub CommandButton1_Click()  
'tout le code de ma macro  
End Sub  

Reply

Marsh Posté le 21-07-2006 à 11:53:11    

:hello: Merci beaucoup ça fonctionne nickel  :hello:  :wahoo:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed