OVH Cloud OVH Cloud

Mettre à jour une macro en fonction du nom du classeur

14 réponses
Avatar
Florent de St Victor
Bonjours et bonne année,
Je veux, à partir d'un classeur type, créer des classeurs spéfique à telle
ou telle personne, avec le nom de la personne concernée. J'arrive à copier
mon classeur type, et à le renomer, seulement je n'arrive pas à faire en
sorte que les macros s'addaptent aux nouveaux noms de mes classeurs. Y a-t-il
un moyen de mettre à jours les macro automatiquement ?
Merci d'avance...
--
Flo Charo

4 réponses

1 2
Avatar
Mousnynao
re:

j'essai de comprendre !

je crois que c'est ce que tu cherche à faire dans la macro !


Application.DisplayAlerts = False
Application.ScreenUpDating = False

Workbooks.Open ("C:Bandetype.xls")
Workbooks("Bandetype.xls").Saveas ("C:BandeNouvelle Bande.xls")
Sheets("Création").Select

Application.ScreenUpDating = True
Application.DisplayAlerts = True

Ça c'est ce que tu veux faire !

Le transfert de code VBA est implicite et inviolé ici car le tranfert se
produit à
la création du nouveau classeur [SaveAs] au lieu de [SaveCopieAs] qui
maintient
le classeur source vivant et portant les mêmes macros.

mousnynao



Bonjours,
tout d'abord merci pour ta réponse.... Mais il y a un ptit pb: je suis
débutant en VBA, et mes connaissances sont très limités. En résumé je ne
comprend pas grand chose à ce que tu m'a écris.
Du coup je vais reformuler le pb: Le principe, c'est que j'ai une macro
rataché à une zone de texte.
Voici cette macro:

Workbooks.Open ("C:Bandetype.xls")
ActiveWindow.WindowState = xlMaximized
ActiveWorkbook.SaveCopyAs ("C:BandeNouvelle Bande.xls")
Workbooks.Open ("C:BandeNouvelle bande.xls")
Application.WindowState = xlMaximized
Windows("Bandetype.xls").Close
Application.DisplayAlerts = False
Sheets("Création").Select

End Sub


Mon pb, c'est qu'une fois ma "nouvelle bande" créée, les macros affectées à
"bande type" ne fonctionnent plus. Serait-il possible, en quelques lignes, de
faire en sorte que les "bandes types" de mes macros se transforment en
"nouvelle bande" dans le nouveau classeur?
Merci d'avance...
--
Flo Charo



Slt,

Voilà ce que ça donne sur des boutons, les macros affectent le classeur actif.
Ce module est enregistrer dans un classeur nommer en xla "Astuces.xla".
Tel que préciser, les fonctions de création et de supression de la barre
d'outils
sont appellées par les évènements d'ouverture/fermeture du classeur.

Option Explicit

Sub TestXLA()
If Not (ActiveWorkbook Is Nothing) Then
ActiveWorkbook.Sheets("Feuil1").Select
MsgBox ActiveWorkbook.Sheets("Feuil2").Range("D4").Value
MsgBox ActiveWorkbook.Sheets("Feuil1").Range("D4").Value
MsgBox ActiveWorkbook.Sheets("Feuil3").Range("D4").Value
ActiveWorkbook.Sheets("Feuil1").Select
Else
MsgBox "Aucun classeur d'actif !"
End If
End Sub
'

Sub Test()
If Not (ActiveWorkbook Is Nothing) Then
DoEvents
MsgBox "En cours !"
DoEvents
Else
MsgBox "Aucun classeur d'actif !"
End If
End Sub
'

Function AjoutMaBarre() As Boolean
'
Dim Texte As String
Dim I As Integer
Dim Flag As Boolean
Dim BarreMenu, Btn1, Btn2 As Object

On Error GoTo Err_Barre

Flag = SupprimeMaBarre
Flag = False

On Error Resume Next
Set BarreMenu = Application.CommandBars.Add("MaBarre")
With BarreMenu
Set Btn1 = .Controls.Add(msoControlButton)
With Btn1
.Caption = "Test déplacement de feuille par XLA"
.OnAction = "Module1.TestXLA"
.FaceId = 70
'.Style = msoButtonCaption 'Si en rem FaceID assume
'passage paramètre dans une variable
'Chainnecommande = "'UnePourDeux """ & Btn1.Caption & """'"
.OnAction = "Module1.TestXLA" 'ChaineCommande
.TooltipText = "Test déplacement de feuille par XLA"
End With

Set Btn2 = .Controls.Add(msoControlButton)
With Btn2
.Caption = "Second bouton"
.FaceId = 71
.Style = msoButtonCaption 'Si en rem FaceID assume
.OnAction = "Module1.Test"
End With
.Position = msoBarTop
.Visible = True
End With
AjoutMaBarre = True

Exit_Barre:
Exit Function

Err_Barre:
AjoutMaBarre = False
Texte = "Erreur dans la routine AjoutMaBarre"
Texte = Texte & Chr(13) & Err.Number
Texte = Texte & Chr(13) & Err.Description
MsgBox Texte
Resume Next

End Function
'

Function SupprimeMaBarre() As Boolean

Dim MsgTexte As String

On Error Resume Next
Application.CommandBars("MaBarre").Delete
SupprimeMaBarre = True

Exit_Close:
Exit Function

Err_Close:
SupprimeMaBarre = False
MsgTexte = "Erreur dans la routine SupprimeMaBarre du classeur
Astuces.xla!"
MsgTexte = MsgTexte & " et le classeur actif est :" & ActiveWorkbook.Name
MsgBox MsgTexte & vbCrLf & Err.Number & " - " & Err.Description

End Function
'




bonjours,
Les macros sont accrochés sur des [bouton]
--
Flo Charo



re:

Les macros sont accrochés sur quel type d'objet !

menu][feuille] ?

Spécifie l'objet et je pourrai t'aider pour la syntaxe !

mousnynao


Merci, je vais essayer
--
Flo Charo



Bonjour,

Suggestion :

Gestion dynamique des liens !

Exemple de menu dynamique :

Les fonctions AjoutMonMenu et SupprimeMonMenu
sont appellés par
[ ThisWorkBook.Workbook_Open() & ThisWorkBook.Workbook_BeforeClose(Cancel As
Boolean) ]

Sub TestXLA()
ActiveWorkbook.Sheets("Feuil1").Select
MsgBox ActiveWorkbook.Sheets("Feuil2").Range("D4").Value
MsgBox ActiveWorkbook.Sheets("Feuil3").Range("D4").Value
ActiveWorkbook.Sheets("Feuil3").Select
End Sub
'

Sub Test()
DoEvents
MsgBox "En cours !"
DoEvents
End Sub
'

Function AjoutMonMenu() As Boolean
'
Dim Texte As String
Dim I As Integer
Dim Flag As Boolean
Dim BarreMenu, MaBarre, MonItem As Object

On Error GoTo Err_Barre

Flag = SupprimeMonMenu
Flag = False

'Création de la barre de menu
Set BarreMenu = Application.CommandBars.ActiveMenuBar
Set MaBarre = BarreMenu.Controls.Add(Type:=msoControlPopup,
temporary:=True)

MaBarre.Caption = "Astuces"

'Insère menu
Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton)
With MonItem
.Caption = "Test déplacement de feuille par XLA"
.OnAction = "Module1.TestXLA"
.FaceId = 2579
End With


Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton)
With MonItem
.Caption = "Nouveau"
.OnAction = "Test"
.FaceId = 222
End With

AjoutMonMenu = True

Exit_Barre:
Exit Function

Err_Barre:
AjoutMonMenu = False
Texte = "Erreur dans la routine AjoutBarreMenu"
Texte = Texte & Chr(13) & Err.Number
Texte = Texte & Chr(13) & Err.Description
MsgBox Texte
Resume Next

End Function
'

Function SupprimeMonMenu() ' As Boolean

Dim Cmpt, Nombre As Integer
Dim Barre As CommandBarControl

Nombre = Application.CommandBars.ActiveMenuBar.Controls.Count
For Cmpt = 1 To Nombre
If
(Application.CommandBars.ActiveMenuBar.Controls.Item(Cmpt).Caption =
"Automatisme") Then
Application.CommandBars("Worksheet Menu
Bar").Controls("Automatisme").Delete
End If
Next Cmpt
SupprimeMonMenu = True

Exit_Close:
Exit Function

Err_Close:
SupprimeMonMenu = False
MsgBox "Erreur dans la routine SupprimeMenu du classeur MenuPerso!"
MsgBox Err.Number & " - " & Err.Description

End Function

mousnynao



Bonjours et bonne année,
Je veux, à partir d'un classeur type, créer des classeurs spéfique à telle
ou telle personne, avec le nom de la personne concernée. J'arrive à copier
mon classeur type, et à le renomer, seulement je n'arrive pas à faire en
sorte que les macros s'addaptent aux nouveaux noms de mes classeurs. Y a-t-il
un moyen de mettre à jours les macro automatiquement ?
Merci d'avance...
--
Flo Charo














Avatar
Florent de St Victor
Tout d'abord merci de ta patience et de ton aide....
Voilà je vais essayer de répondre à tes questions le plus clairement possible.

En fait, tu as d'autres macros qui se trouvent dans le classeur
"BandeType.xls" ?
Oui, j'ai effectivement d'autres macro dans ce classeur. De plus elles font

appelle au classeur "bande type", car elles me servent à voyager entre le
classeur "menu" et le classeur "bande type".

Le problème c'est qu'une fois mon classeur renommé "nouvelle bande", ces
macros ne fonctionnent plus. Ce que je voudrais, c'est que dans toutes les
macros de ce nouveau classeur "nouvelle bande", à chaque fois que la
référence "bande type" apparait, elle se transforme en "nouvelle bande".


Et la ligne [Windows("Bandetype.xls").Close] ferme vraiment le fichier de
base ?


Oui, l'objectif est de le fermer pour pouvoir rentrer mes données dans le
nouveau classeur. Il me faut le copier, et non juste changer son nom, car je
dois pouvoir le réutiliser pour créer d'autres classeurs à partir de celui ci.

Ensuite, ce ne doit pas être cette macro qui est dans le fichier
"BandeType.xls",
si j'ai bien compris bien sur.


Oui c'est bien ça. Cette macro se trouve dans un classeur "menu" qui permet
de créer de nouveaux classeurs "nouvelle bande".

Ps : merci pour les modifs sur la routine....
Merci d'avance....




--
Flo Charo



re:

en premier je me permets queuques modifs sur la routine :

Sub TestVBA()

Application.DisplayAlerts = False
Application.ScreenUpdating = False

Workbooks.Open ("C:Bandetype.xls")
ActiveWorkbook.SaveCopyAs ("C:BandeNouvelle Bande.xls")
Workbooks.Open ("C:BandeNouvelle bande.xls")
Workbooks("Bandetype.xls").Close

Application.DisplayAlerts = True
Application.ScreenUpdating = True

Sheets("Création").Select

End Sub

Pour être sur qu'une macro soit intègre au classeur, tu indiques en début de
module [ Option Private Module ].

Ensuite, ce ne doit pas être cette macro qui est dans le fichier
"BandeType.xls",
si j'ai bien compris bien sur.

En fait, tu as d'autres macros qui se trouvent dans le classeur
"BandeType.xls" ?
Et la ligne [Windows("Bandetype.xls").Close] ferme vraiment le fichier de
base ?

Donc allons-y pas à pas !

Répond à ces 2 questions !

mousnynao


Bonjours,
tout d'abord merci pour ta réponse.... Mais il y a un ptit pb: je suis
débutant en VBA, et mes connaissances sont très limités. En résumé je ne
comprend pas grand chose à ce que tu m'a écris.
Du coup je vais reformuler le pb: Le principe, c'est que j'ai une macro
rataché à une zone de texte.
Voici cette macro:

Workbooks.Open ("C:Bandetype.xls")
ActiveWindow.WindowState = xlMaximized
ActiveWorkbook.SaveCopyAs ("C:BandeNouvelle Bande.xls")
Workbooks.Open ("C:BandeNouvelle bande.xls")
Application.WindowState = xlMaximized
Windows("Bandetype.xls").Close
Application.DisplayAlerts = False
Sheets("Création").Select

End Sub


Mon pb, c'est qu'une fois ma "nouvelle bande" créée, les macros affectées à
"bande type" ne fonctionnent plus. Serait-il possible, en quelques lignes, de
faire en sorte que les "bandes types" de mes macros se transforment en
"nouvelle bande" dans le nouveau classeur?
Merci d'avance...
--
Flo Charo



Slt,

Voilà ce que ça donne sur des boutons, les macros affectent le classeur actif.
Ce module est enregistrer dans un classeur nommer en xla "Astuces.xla".
Tel que préciser, les fonctions de création et de supression de la barre
d'outils
sont appellées par les évènements d'ouverture/fermeture du classeur.

Option Explicit

Sub TestXLA()
If Not (ActiveWorkbook Is Nothing) Then
ActiveWorkbook.Sheets("Feuil1").Select
MsgBox ActiveWorkbook.Sheets("Feuil2").Range("D4").Value
MsgBox ActiveWorkbook.Sheets("Feuil1").Range("D4").Value
MsgBox ActiveWorkbook.Sheets("Feuil3").Range("D4").Value
ActiveWorkbook.Sheets("Feuil1").Select
Else
MsgBox "Aucun classeur d'actif !"
End If
End Sub
'

Sub Test()
If Not (ActiveWorkbook Is Nothing) Then
DoEvents
MsgBox "En cours !"
DoEvents
Else
MsgBox "Aucun classeur d'actif !"
End If
End Sub
'

Function AjoutMaBarre() As Boolean
'
Dim Texte As String
Dim I As Integer
Dim Flag As Boolean
Dim BarreMenu, Btn1, Btn2 As Object

On Error GoTo Err_Barre

Flag = SupprimeMaBarre
Flag = False

On Error Resume Next
Set BarreMenu = Application.CommandBars.Add("MaBarre")
With BarreMenu
Set Btn1 = .Controls.Add(msoControlButton)
With Btn1
.Caption = "Test déplacement de feuille par XLA"
.OnAction = "Module1.TestXLA"
.FaceId = 70
'.Style = msoButtonCaption 'Si en rem FaceID assume
'passage paramètre dans une variable
'Chainnecommande = "'UnePourDeux """ & Btn1.Caption & """'"
.OnAction = "Module1.TestXLA" 'ChaineCommande
.TooltipText = "Test déplacement de feuille par XLA"
End With

Set Btn2 = .Controls.Add(msoControlButton)
With Btn2
.Caption = "Second bouton"
.FaceId = 71
.Style = msoButtonCaption 'Si en rem FaceID assume
.OnAction = "Module1.Test"
End With
.Position = msoBarTop
.Visible = True
End With
AjoutMaBarre = True

Exit_Barre:
Exit Function

Err_Barre:
AjoutMaBarre = False
Texte = "Erreur dans la routine AjoutMaBarre"
Texte = Texte & Chr(13) & Err.Number
Texte = Texte & Chr(13) & Err.Description
MsgBox Texte
Resume Next

End Function
'

Function SupprimeMaBarre() As Boolean

Dim MsgTexte As String

On Error Resume Next
Application.CommandBars("MaBarre").Delete
SupprimeMaBarre = True

Exit_Close:
Exit Function

Err_Close:
SupprimeMaBarre = False
MsgTexte = "Erreur dans la routine SupprimeMaBarre du classeur
Astuces.xla!"
MsgTexte = MsgTexte & " et le classeur actif est :" & ActiveWorkbook.Name
MsgBox MsgTexte & vbCrLf & Err.Number & " - " & Err.Description

End Function
'




bonjours,
Les macros sont accrochés sur des [bouton]
--
Flo Charo



re:

Les macros sont accrochés sur quel type d'objet !

menu][feuille] ?

Spécifie l'objet et je pourrai t'aider pour la syntaxe !

mousnynao


Merci, je vais essayer
--
Flo Charo



Bonjour,

Suggestion :

Gestion dynamique des liens !

Exemple de menu dynamique :

Les fonctions AjoutMonMenu et SupprimeMonMenu
sont appellés par
[ ThisWorkBook.Workbook_Open() & ThisWorkBook.Workbook_BeforeClose(Cancel As
Boolean) ]

Sub TestXLA()
ActiveWorkbook.Sheets("Feuil1").Select
MsgBox ActiveWorkbook.Sheets("Feuil2").Range("D4").Value
MsgBox ActiveWorkbook.Sheets("Feuil3").Range("D4").Value
ActiveWorkbook.Sheets("Feuil3").Select
End Sub
'

Sub Test()
DoEvents
MsgBox "En cours !"
DoEvents
End Sub
'

Function AjoutMonMenu() As Boolean
'
Dim Texte As String
Dim I As Integer
Dim Flag As Boolean
Dim BarreMenu, MaBarre, MonItem As Object

On Error GoTo Err_Barre

Flag = SupprimeMonMenu
Flag = False

'Création de la barre de menu
Set BarreMenu = Application.CommandBars.ActiveMenuBar
Set MaBarre = BarreMenu.Controls.Add(Type:=msoControlPopup,
temporary:=True)

MaBarre.Caption = "Astuces"

'Insère menu
Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton)
With MonItem
.Caption = "Test déplacement de feuille par XLA"
.OnAction = "Module1.TestXLA"
.FaceId = 2579
End With


Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton)
With MonItem
.Caption = "Nouveau"
.OnAction = "Test"
.FaceId = 222
End With

AjoutMonMenu = True

Exit_Barre:
Exit Function

Err_Barre:
AjoutMonMenu = False
Texte = "Erreur dans la routine AjoutBarreMenu"
Texte = Texte & Chr(13) & Err.Number
Texte = Texte & Chr(13) & Err.Description
MsgBox Texte
Resume Next

End Function
'

Function SupprimeMonMenu() ' As Boolean

Dim Cmpt, Nombre As Integer
Dim Barre As CommandBarControl

Nombre = Application.CommandBars.ActiveMenuBar.Controls.Count
For Cmpt = 1 To Nombre
If
(Application.CommandBars.ActiveMenuBar.Controls.Item(Cmpt).Caption =
"Automatisme") Then














Avatar
Mousnynao
Tout d'abord merci de ta patience et de ton aide....
Voilà je vais essayer de répondre à tes questions le plus clairement possible.

En fait, tu as d'autres macros qui se trouvent dans le classeur
"BandeType.xls" ?

Oui, j'ai effectivement d'autres macro dans ce classeur. De plus elles font
appelle au classeur "bande type", car elles me servent à voyager entre le
classeur "menu" et le classeur "bande type".

-->> donc quelques part dans ce code, on retrouve des instructions du genre:
Workbooks("BandeType.xls").Activate, ce sont ces lignes qu'il te faudra
modifier !

Le problème c'est qu'une fois mon classeur renommé "nouvelle bande", ces
macros ne fonctionnent plus. Ce que je voudrais, c'est que dans toutes les
macros de ce nouveau classeur "nouvelle bande", à chaque fois que la
référence "bande type" apparait, elle se transforme en "nouvelle bande".


Et la ligne [Windows("Bandetype.xls").Close] ferme vraiment le fichier de
base ?


Oui, l'objectif est de le fermer pour pouvoir rentrer mes données dans le
nouveau classeur. Il me faut le copier, et non juste changer son nom, car je
dois pouvoir le réutiliser pour créer d'autres classeurs à partir de celui ci.

-->> Ici avec ces lignes, le fichier est bel et bien recopié sous un nouveau
nom et non juste changer de nom !

Sub TestVBA()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Workbooks.Open ("C:Bandetype.xls")
Workbooks("Bandetype.xls").SaveAs ("C:BandeNouvelle Bande.xls")
Sheets("Création").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

En résumé !

Un fichier menu avec cette routine
Sub TestVBA()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Workbooks.Open ("C:Bandetype.xls")
Workbooks("Bandetype.xls").SaveAs ("C:BandeNouvelle Bande.xls")
Sheets("Création").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Un fichier BandeType.xls avec cette routine de test :
Sub TestClasseurActif()
MsgBox Workbooks(ThisWorkbook.Name).Name & vbCrLf & ActiveWorkbook.Name
End Sub

d'où cette macro comporte un objet particulier
[Workbooks(ThisWorkbook.Name).Activate]
qui devrait remplacer tout tes lignes qui appelle
[Workbooks("BandeType.xls").Activate].

Ainsi, une fois le nouveau fichier créé, tu verras que l'appel à la routine
[TestClasseurActif]
est bien détourné vers le bon classeur!


Ensuite, ce ne doit pas être cette macro qui est dans le fichier
"BandeType.xls",
si j'ai bien compris bien sur.


Oui c'est bien ça. Cette macro se trouve dans un classeur "menu" qui permet
de créer de nouveaux classeurs "nouvelle bande".

-->> Pour te promener d'un classeur à l'autre, tu peux aussi toujours savoir
où tu es
avec la syntaxe suivante :

Sub TrouveClasseur()

Dim Classeur As Workbook

For Each Classeur In Workbooks
If (Classeur.Name = "Menu.xls") Then
MsgBox "Classeur trouvé"
Classeur.Activate
End If
Next Classeur

End Sub

voilà, je crois qu'avec cela ça devrait aller !

mousnynao

Avatar
Florent de St Victor
MERCI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Enfin j'ai réussi à faire marcher ma macro ! c'est magique !
Si tu me file ton adresse, je t'envois une bouteille de champagne !
a+
--
Flo Charo



Tout d'abord merci de ta patience et de ton aide....
Voilà je vais essayer de répondre à tes questions le plus clairement possible.

En fait, tu as d'autres macros qui se trouvent dans le classeur
"BandeType.xls" ?

Oui, j'ai effectivement d'autres macro dans ce classeur. De plus elles font
appelle au classeur "bande type", car elles me servent à voyager entre le
classeur "menu" et le classeur "bande type".

-->> donc quelques part dans ce code, on retrouve des instructions du genre:
Workbooks("BandeType.xls").Activate, ce sont ces lignes qu'il te faudra
modifier !

Le problème c'est qu'une fois mon classeur renommé "nouvelle bande", ces
macros ne fonctionnent plus. Ce que je voudrais, c'est que dans toutes les
macros de ce nouveau classeur "nouvelle bande", à chaque fois que la
référence "bande type" apparait, elle se transforme en "nouvelle bande".


Et la ligne [Windows("Bandetype.xls").Close] ferme vraiment le fichier de
base ?


Oui, l'objectif est de le fermer pour pouvoir rentrer mes données dans le
nouveau classeur. Il me faut le copier, et non juste changer son nom, car je
dois pouvoir le réutiliser pour créer d'autres classeurs à partir de celui ci.

-->> Ici avec ces lignes, le fichier est bel et bien recopié sous un nouveau
nom et non juste changer de nom !

Sub TestVBA()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Workbooks.Open ("C:Bandetype.xls")
Workbooks("Bandetype.xls").SaveAs ("C:BandeNouvelle Bande.xls")
Sheets("Création").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

En résumé !

Un fichier menu avec cette routine
Sub TestVBA()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Workbooks.Open ("C:Bandetype.xls")
Workbooks("Bandetype.xls").SaveAs ("C:BandeNouvelle Bande.xls")
Sheets("Création").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Un fichier BandeType.xls avec cette routine de test :
Sub TestClasseurActif()
MsgBox Workbooks(ThisWorkbook.Name).Name & vbCrLf & ActiveWorkbook.Name
End Sub

d'où cette macro comporte un objet particulier
[Workbooks(ThisWorkbook.Name).Activate]
qui devrait remplacer tout tes lignes qui appelle
[Workbooks("BandeType.xls").Activate].

Ainsi, une fois le nouveau fichier créé, tu verras que l'appel à la routine
[TestClasseurActif]
est bien détourné vers le bon classeur!


Ensuite, ce ne doit pas être cette macro qui est dans le fichier
"BandeType.xls",
si j'ai bien compris bien sur.


Oui c'est bien ça. Cette macro se trouve dans un classeur "menu" qui permet
de créer de nouveaux classeurs "nouvelle bande".

-->> Pour te promener d'un classeur à l'autre, tu peux aussi toujours savoir
où tu es
avec la syntaxe suivante :

Sub TrouveClasseur()

Dim Classeur As Workbook

For Each Classeur In Workbooks
If (Classeur.Name = "Menu.xls") Then
MsgBox "Classeur trouvé"
Classeur.Activate
End If
Next Classeur

End Sub

voilà, je crois qu'avec cela ça devrait aller !

mousnynao



1 2