Macro en ouverture de dossier et macros "tournantes (?)"

crozatqu

XLDnaute Nouveau
Mesdames Messieurs, Bonsoir,

Je suis débutant en tout ce qui concerne excel.
J'ai pu en découvrir l'utilité et l'immense palette de possibilités qu'il y a avec ce dernier il y a quelques semaines.
Ayant découvert cela je me suis pris au jeu et je ne peux plus m'en passé.
Je m'en sert pour le professionnel et me suis donc mis en tête de monter un dossier pour mes responsables.
Passons sur ma vie ce n'est pas ce qui vous intéresse le plus je pense.

Mes problèmes sont les suivants :
- j'ai mis en place un code (que j'ai pu entre autre trouver sur ce forum) afin de délimiter le scroll.
Je me retrouve donc avec une macro comme celle-ci :
Code:
Private Sub Workbook_SheetActivate()
Sheets("Dossiers").ScrollArea = "a1:r34"
End Sub
Cela marche donc parfaitement bien sur toutes les pages à l'exception de la feuille qui s'ouvre en premier. Pour que le code soit actif il faut d'abord sélectionner une autre feuille puis revenir sur la première.
Ma question est donc : y'a t il moyen d'activer ce code sans faire ce changement de feuille ?

-le deuxième problème, que j'ai appelé macros "tournantes (?)" dans le titre, concerne des fichiers qui, chaque semaine, change de nom.
En effet certains fichiers (excels) pour lesquels j'ai mis en place des macros pour les ouvrir depuis mon propre ficher excel, changent de nom chaque semaine (S50, S51 etc...). Je me demandais si il était alors possible de dire à ma macro "si S50 n'existe pas, cherche S51 et ouvre le, si S51 n'existe pas cherche S52 et ouvre le" ?

Voilà je vous remercie d'avance pour votre aide.



EDIT : j'ai oublié de préciser que dans ma boîte il y a un réseau d'une 20ène de PC qui tournent sur excel 2003 et 2007, tous ne sont pas a la même version, pour ma part je travaille sur la 2010 (les versions je vous les dit de tête, excusez moi si c'est 2004 et 2008 j'avoue ne pas y avoir prété grande attention).

Cordialement

Crozatqu
Débutant
 
Dernière édition:

MichD

XLDnaute Impliqué
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Bonjour,

1-
Quand tu ouvres ton fichier ou que tu passes d'un fichier à un autre déjà ouvert,
lorsque tu reviens au fichier initial, cette procédure événementielle s'exécute
toujours. Ta question ne dit pas si c'est toujours la même feuille et la même
plage de cellules dont il est question...

Private Sub Workbook_Activate()
Sheets("Dossiers").ScrollArea = "a1:r34"
End Sub


2- Ta question n'est pas assez précise pour écrire un code.

A ) Est-ce que les fichiers à ouvrir sont tous dans le même répertoire?
Si oui, lequel?

B ) Est-ce que ce répertoire contient plusieurs fichiers?

C ) Est-ce que tu veux ouvrir un fichier particulier ou tous les fichiers du répertoire?

D ) Comment détermines-tu le numéro du fichier à ouvrir?

E ) Est-ce que tous les noms des fichiers sont composés de la même manière?
Tous des numéros?
 

crozatqu

XLDnaute Nouveau
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Bonsoir MichD, merci de ta réponse.

1 Pour préciser cette question : il s'agit en effet toujours de la même feuille, du même fichier. c'est à dire la première qui s'ouvre lorsque j'ouvre mon fichier Excel : appelons la MENU.
Lorsque j'ouvre mon fichier nous tombons donc sur la feuille MENU. Cette dernière a un ScrollArea défini dans le code.
Cependant lors de l'ouverture le code ne prend pas effet tout de suite et pour qu'il s'éxécute je dois obligatoirement changer de feuille et revenir sur MENU. Après cette manipulation le ScrollArea défini prend effet. J'aimerai donc que cela prenne effet dès l'ouverture du fichier et plus après le changement de feuille.

2- A) Oui, tous les fichiers se trouvent dans le même dossier, pour faire simple, appelons le planning.
B) ce répertoire contient en effet plusieurs fichier, un pour chaque mois, donc 12.
C) Je veux ouvrir un seul fichier, celui du mois en cours. Je pourrai changer chaque mois la macro mais pour plus d'efficacité j'aimerai que cela se fasse automatiquement.
D) Le numéro se déterminera donc par le numéro du mois, 1 pour janvier, 2 pour février etc (dans mon exemple du premier message il s'agissait des semaines de l'année.. Dans cette situation plusieurs fichiers dans le dossier, un seul qui m intéresse mais il change de nom chaque semaine)
E) ces fichiers comportent en effet des numéros mais aussi des lettres, exemple : planning-01 (comprenez 01 pour janvier.

J'espère avoir été assez clair...

Cordialement
Crozatqu
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Bonjour Crozatqu,

Voici un fichier test,

Alors posont :

Répertoire de stockage : c:\temp
Nom du planning mensuel :"Planning-12.xl..." , toutes les extensions Excel sont prise en compte pas uniquement xls
Nom du rapport hebdo : "Semaine-51.xl..."
Il faudra donc disposer d'un fichier planning et d'un fichier hebdo dans le répertoire de stockage.

Pour le limiteur de scroll, il est en workbook_open donc ATTENTION , macro ce lançant à l'ouverture du fichier
 

Pièces jointes

  • Objet789.xlsm
    20.5 KB · Affichages: 63

crozatqu

XLDnaute Nouveau
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Bonjour,

J'ai téléchargé ce que tu m'as fait, je vais tester tout ça dans la journée...

Pour le scroll sur ton fichier en effet ça marche du tonnerre, mais sur le miens avec la même macro au même endroit ça ne fonctionne toujours pas... j'ai même essayé de copier la tienne dans mon fichier mais non toujours pas peut être ai je fait une mauvaise manipulation avant qui aurait pu avoir pour effet de ne pas faire fonctionner la macro à l'ouverture ?
Quoi qu'il en soit merci je vous donnerai plus d'informations ce soir, je n'ai pas accès au net depuis mon bureau.

A ce soir !!
Cordialement

Crozatqu
 

Misange

XLDnaute Barbatruc
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Bonjour,
hello camarchepas et MichD (ça faisait un bail :) )
En complément des réponses de mes petits camarades :
il y a plusieurs types de macros :
certaines qui se déclenchent seulement quand on les appelle
d'autres, dites événementielles, qui se déclenchent en réponse à une action. Celle-ci peut être par exemple le fait d'ouvrir le classeur, de le fermer, de changer de feuille, de changer la cellule active ...
Dans ton exemple, tu as une macro qui se déclenche quand on active une feuille comme l'indique son nom : Workbook_SheetActivate.
Si tu veux que cette feuille soit obligatoirement la feuille qui soit au premier plan quand on ouvre ton classeur, tu peux mettre une macro dans le module thisWorkbook

Code:
Private Sub Workbook_Open()
sheets("menu").activate 
End Sub

quand le classeur s'ouvre, cette macro se déclenche, la feuille menu est activée ce qui à son tour déclenche ta macro qui limite le scroll. C'est une approche un peu différente de celle proposée par camarchepas, qui te montre l'enchainement des macros.


Je te propose un peu de lecture pour démarrer plus confortablement avec les macros :
Les macros Excel | www.excelabo.net. Mieux vaut en effet avoir le bon vocabulaire d'emblée, c'est plus facile pour expliquer son pb sur un forum :)
Tu y trouveras une page sur les événements qui s'activent dans une feuille et l'autre dans les classeurs.
 
Dernière édition:

crozatqu

XLDnaute Nouveau
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Bonjour misange,
Merci de ta réponse. C est une bonne idée je vais tenter ça.
En Pleine réflexion je me demandais, les macros d ouverture de planning de camarchepas sont à modifier chaque mois ou le changement s opère automatiquement ?

Cordialement
Crozatqu
 

Misange

XLDnaute Barbatruc
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Je te dirais bien ... :) teste ! (c'est comme ça qu'on apprend...)
Pas besoin de les changer chaque mois, c'est bien le but non ?

il faut que tu étudies ces macros pour voir ce qu'elles font. Si tu ne les lis pas tu passeras à côté de ceci :
'Le dossier devra être adapté à la configuration locale
Public Const Dossier As String = "C:\Temp\"

et ça ne risque pas de marcher :)
 

crozatqu

XLDnaute Nouveau
Re : Macro en ouverture de dossier et macros "tournantes (?)"

Bonsoir,
Bon, eh bien apparemment je ne suis pas encore très très doué, voire plutôt mauvais, pour comprendre les macro que camarchepas m'a fait.
Pour ce qui est de la macro "planning mensuel" j'ai rempli le champ indiquant l'emplacement du fichier. Je ne sais pas si je devais changé ou pas quelque chose dans le code MoisActu = Month(Date) j'ai essayé quand même mais au vu des résultats.. j'ai préféré remettre le code d'origine.. pour le "Retour" pareil, rien changé. J'ai pu comprendre qu'il y avait une correlation avec la "function"
Code:
Function OuvertureClasseur(Chemin As String, Nom As String) As Boolean
'Ouverture d'un classeur Nom, situé dans l'arborescence Chemin
'Retour de fonction OK et messagerie intégrée
'Vérification Existance chemin
 If Dir(Chemin, vbDirectory) = "" Then Exit Function
'Vérification Fichier
 If Dir(Chemin & "\" & Nom & ".xl*") = "" Then Exit Function
 Workbooks.Open Filename:=Chemin & "\" & Nom
 OuvertureClasseur = True
End Function
Ceci dit, je ne l'ai pas comprise et donc... Enfin bon, pour la macro des semaines, idem, rien pigé.
J'ai cependant réussi avec l'activeSheet que m'a donné Misange.
Bon voilà, merci de votre aide je vais continuer à plancher dessus.

Bonne soirée les gens !
 

Discussions similaires

Réponses
11
Affichages
224