Exécuter plusieurs macros à l'ouverture

gacr0

XLDnaute Nouveau
Bonjour,

Je suis une grande débutante dans excel mais j'ai vraiment besoin d'aide pour le boulot. J'ai un classeur excel avec plusieurs feuilles lesquelles contiennent des macros différentes. Ces feuilles sont liées à une feuille de données source, laquelle est également dans mon classeur.

Mon problème est que je voudrais pouvoir exécuter toutes mes macros à l'ouverture de mon fichier excel. La seule façon dont j'ai réussi est en créant une méga macro qui fait tout ce que mes autres petites macros font. Cependant, je ne sais pas pourquoi, cela altère les données de ma feuille source aussi.

Pourriez-vous m'aider ?
 

Staple1600

XLDnaute Barbatruc
Re : Exécuter plusieurs macros à l'ouverture

Bonjour à tous, salut Paf ;)

gacr0
Voici ma façon de faire: regrouper les macros en une seule ;) [test OK sur mon PC pour les filtres]
Mais comme tu vas voguer sous d'autres cieux, je ne suis pas allé plus loin dans la résolution...:rolleyes:
Je poste néanmoins ce que j'ai pondu, cela servira peut être à d'autres membres du forum, un chouia moins susceptible ;)
Code:
Sub AllinOne()
Dim tWS, tFld, i, rNg As Range
tWS = Array("Suivi des appels", "Suivi 5 jours", "Suivi 15 jours")
tFld = Array(Array(6, "VIDE"), Array(6, "en attente"), Array(6, "en attente"))
For i = LBound(tWS) To UBound(tWS)
With Sheets(tWS(i))
    Set rNg = Range(.Cells(3, 1), .Cells(Rows.Count, 1).End(3)).Resize(, 6)
    rNg.AutoFilter tFld(i)(0), tFld(i)(1)
End With
Next
End Sub
 

gacr0

XLDnaute Nouveau
Re : Exécuter plusieurs macros à l'ouverture

Bonjour Staple1600

Je viens d'essayer votre commande mais j'obtiens une erreur sur la ligne de code suivante : Set rNg = Range(.Cells(3, 1), .Cells(Rows.Count, 1).End(3)).Resize(, 6)

Pouvez-vous m'aider ?

Merci
 

Staple1600

XLDnaute Barbatruc
Re : Exécuter plusieurs macros à l'ouverture

Re

Comme dit précédemment...:rolleyes:
[test OK sur mon PC pour les filtres]
C'est à dire que cela fonctionne avec ton fichier exemple sur mon PC.
Tu as testé sur quel fichier ?
Tu as testé la macro directement à partir de VBA ? (sans passer par WorkBook_Open())
C'est ce que j'ai fais et ici pas de message d'erreur.
Ci-dessous, j'ai ajouté les tris, testes sans passer par Workbook_Open puisque tu nous disais précédemment
NB: J'ai finalement choisi d'exécuter ces macros à l'aide d'un bouton de commande.
Code VB:
Sub AllinOneBis()
' j'ai ajouté un . au cas où, je laisse trouver à quel endroit ;-)
Dim tWS, tFld, i, rNg As Range
tWS = Array("Suivi des appels", "Suivi 5 jours", "Suivi 15 jours")
tFld = Array(Array(6, "VIDE"), Array(6, "en attente"), Array(6, "en attente"))
For i = LBound(tWS) To UBound(tWS)
With Sheets(tWS(i))
Set rNg = .Range(.Cells(3, 1), .Cells(Rows.Count, 1).End(3)).Resize(, 6)
rNg.AutoFilter tFld(i)(0), tFld(i)(1)
With .AutoFilter.Sort
.SortFields.Clear: .SortFields.Add Key:=rNg.Columns(5), SortOn:=0, Order:=2, DataOption:=0
End With
End With
Next
End Sub




PS: Elle en est où ta question sur l'autre forum ?
(Histoire que je cogite pas en vain une solution qui serait déjà présente là-bas ;) )



 
Dernière édition:

gacr0

XLDnaute Nouveau
Re : Exécuter plusieurs macros à l'ouverture

En fait, j'ai créer un bouton de commande avec le développeur qui exécute une macro qui appelles toutes mes macros.

Donc dans VBA, j'ai remplacé mon appel
Code:
Private Sub CommandButton1_Click()
appels
jours5
jours15
hubert
aristide
judicael
End Sub

Par ton code

Code:
Private Sub CommandButton1_Click()
Dim tWS, tFld, i, rNg As Range
tWS = Array("Suivi des appels", "Suivi 5 jours", "Suivi 15 jours")
tFld = Array(Array(6, "VIDE"), Array(6, "en attente"), Array(6, "en attente"))
For i = LBound(tWS) To UBound(tWS)
With Sheets(tWS(i))
    Set rNg = Range(.Cells(3, 1), .Cells(Rows.Count, 1).End(3)).Resize(, 6)
    rNg.AutoFilter tFld(i)(0), tFld(i)(1)
End With
Next
End Sub

N'est-ce pas adéquat ?
 

Staple1600

XLDnaute Barbatruc
Re : Exécuter plusieurs macros à l'ouverture

Re

Une question d'abord:
•Pourquoi avoir créer un fil doublon :confused::rolleyes:
Une seconde ensuite:
• Pourquoi n'as-tu pas tester AllInOneBis? (voir mon précédent message, cf post #19)
puis reporter ici le résultat de son test ici ?
...A quoi bon proposer du code VBA (et des modifs), si tu ne daignes pas les tester...:rolleyes:

Ensuite, adéquat ou pas, cela fonctionne ou pas ?
Si non essaie comme ceci avec ton CommandButton
Code:
Private Sub CommandButton1_Click()
Call AllInOne
End Sub

Code VB:
Sub AllInOne()
'A METTRE dans un module standard
Dim tWS, tFld, i, rNg As Range
tWS = Array("Suivi des appels", "Suivi 5 jours", "Suivi 15 jours")
tFld = Array(Array(6, "VIDE"), Array(6, "en attente"), Array(6, "en attente"))
For i = LBound(tWS) To UBound(tWS)
With Sheets(tWS(i))
Set rNg = Range(.Cells(3, 1), .Cells(Rows.Count, 1).End(3)).Resize(, 6)
rNg.AutoFilter tFld(i)(0), tFld(i)(1)
End With
Next
End Sub
 
Dernière édition:

gacr0

XLDnaute Nouveau
Re : Exécuter plusieurs macros à l'ouverture

Réponse 1, je n'ai pas créé un doublon. Ce fil est pour avoir des macros à l'ouverture. Mon nouveau fil était pour avoir de l'aide car une fois que j'ai créé mes macros, je perds des éléments de celles-ci.

Maintenant j'ai essayé ton code... justement... sous mon bouton de click. Sinon faudrait que tu précises où tu veux que je l'essaies. Je suis débutante et ne comprend pas tout dans VBA.

Je viens de réessayer avec les deux codes proposés et au lieu de fonctionner, cela efface toutes mes données des feuilles suivis des appels, suivi 5 jours, suivis 15 jours. Je vous joins donc le fichier test.

À noter j'ai également des macros sur les onglets hubert, aristide et judicael qui doivent s'effectuer.

merci encore !
 

Pièces jointes

  • test4.zip
    34.3 KB · Affichages: 24
  • test4.zip
    34.3 KB · Affichages: 22
  • test4.zip
    34.3 KB · Affichages: 23

Staple1600

XLDnaute Barbatruc
Re : Exécuter plusieurs macros à l'ouverture

Re

Maintenant j'ai essayé ton code... justement... sous mon bouton de click. Sinon faudrait que tu précises où tu veux que je l'essaies. Je suis débutante et ne comprend pas tout dans VBA.
J'ai indiqué dans mon précédent message où il faut mettre le code VBA, non ?
[taquinerie amicale]
Débuter en VBA n’empêche nullement de lire attentivement les réponses dans ton fil ;)
[/taquinerie amicale]

PS: Je persiste et signe ton second fil est le même que celui-ci ;)
(ce sont les mêmes macros , non ?
Et il aurait été simple de mettre un lien dans ton second fil en indiquant que c'était la suite du premier ;)

Mais bon, tout cela c'est pas gravissime, je m'en remettrai ;) en allant me sustenter daredare.
Bon appétit à tous ;)
 
Dernière édition:

gacr0

XLDnaute Nouveau
Re : Exécuter plusieurs macros à l'ouverture

Non tu ne m'as pas dit.

Tel que dans mon fichier exemple, le code soumis ne fonctionne pas et fait tout disparaitre au contraire. Pouvez-vous m'envoyer ce que cela vous donner sur mon fichier car je suis perdue !

J'ai ajouté sub allinone sous mes autres macros dans le module2.
 

Staple1600

XLDnaute Barbatruc
Re : Exécuter plusieurs macros à l'ouverture

Re

Si, si je t'ai dit..:rolleyes:
On pouvait lire ceci dans le message #21
'A METTRE dans un module standard

Ton fichier zip semble avoir un problème, je n'arrive pas à l'ouvrir.

PS: Je viens de tester avec un CommandButton1 avec ta première pièce jointe
(et comme indiqué dans le message 21) avec Call AllInOne
Cela fonctionne sur mon PC.

Petit rappel

La macro AllInOne doit être dans un module standard (mais cela tu le sais déjà ;)
Le code du CommandButton est qaund à lui dans le code de la feuille ou est situé ce contrôle
(Clic-droit sur l'onglet contenant le CommandButton -> Visualiser le code
C'est là que sera CommandButton1_Click()
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Exécuter plusieurs macros à l'ouverture

Re

Oui, c'est cela. Dans le module 1, on doit trouvé la macro AllInOne
Relis l'EDITION de mon précédent message, j'ai ajouté des explications ;)
(et il faudrait que tu remplaces ton fichier zip qui est invalide)

•PS1: On est bien d'accord, je t'avais effectivement indiqué où mettre le code ?!
C'est simplement tes lunettes qui étaient défectueuses :rolleyes: (lol)
•PS2: Comme je viens de le dire, j'ai testé sur ton premier fichier avec un CommandButton et cela fonctionne*.
Donc il n'y a pas de raison que cela ne fonctionne pas sur ton PC

*: ce qui fonctionne c'est l'application des filtres, car comme dit au message #17, ma macro ne fait qu'appliquer les filtres automatiques .
(en tout cas, la 1ère version de AllInOne)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia