problème lors de l execution macro automatique - VB/VBA/VBS - Programmation
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 ?? |
sujet déjà traité ici, pour la suppression de la matrice, va voir sur excel labo, tout le code est fourni...
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 ...
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)
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 ??
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 ?????
????
Marsh Posté le 21-07-2006 à 09:41:28
Peut-être devrais-tu positionner la cellule active en "A1" avant de faire le find.
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
Marsh Posté le 21-07-2006 à 09:48:06
ça fonctionne merci à tous les deux !!!
Mais maintenant c'est là que cela plante :
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets(VarFeuille).Range("D3" )
Je crois que tout ce que j'avais fait en mode enregistrement ne passe plus
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 ????
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>
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
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
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 . 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 édité par jagwar le 21-07-2006 à 09:29:02