affecter une macro a un seul classeur

paul87

XLDnaute Impliqué
bonsoir à tous et toutes....
j'ai conçu une petite macro...(.toute bete et sans grand interêt...!!)
seulement, je souhaite affecter cette macro à un seul classeur..
en passant par : Personaliser/commandes, je dépose l'icone dans la barre d'outils.
Apres j'affecte la macro au bouton...en selectionant le nom de la macro et "ce classeur seul"....
Mais voilà....ce qui est bizarre !!! dans le classeur concerné, la macro fonctionne tres bien, mais dés que j'ouvre un autre classeur (meme s'il n'a aucune liaison avec le précédent....j'ai l'icone de la macro....et lorsque je clique dessus...cela lance le classeur dans lequel est la macro..
c'est étrange...et je ne comprends pas..
en fait je veux que la macro soit dédiée a ce seul classeur.
Merci par avance
 

jeanpierre

Nous a quitté
Repose en paix
Re : affecter une macro a un seul classeur

Bonsoir Paul87, le Forum,

C'est normal, dés lors que le bouton est disponible dans la barre d'outils, même si tu as dix classeurs d'ouverts et que tu es sur n'importe lequel, lorsque tu cliques sur ton bouton, tu réactives le premier classeur.
En fait, la macro active "son classeur" et fait son boulot, mais elle reste dédiée à ce seul classeur.
Ce que j'ai compris.

Bonne soirée.

Jean-Pierre
 

jeanpierre

Nous a quitté
Repose en paix
Re : affecter une macro a un seul classeur

Re,

C'est à mon avis le plus simple.

Sinon créer une barre d'outils qui n'apparaît que lorsque le classeur est actif, mais bon, pour un bouton, je ne crois pas que cela vaille le coup..

A toi d'en voir l'intérêt. Fais une recherche, il existe quelques exemples ici, ou sur le site de VériTi.
 

paul87

XLDnaute Impliqué
Re : affecter une macro a un seul classeur

re..
creer une barre d'outils spécifique à chaque classeur, c'est une idée que je vais travailler..
et qui me sera tres utile pour d'autre appli...
Merci !!! beaucoup
par contre où dois-je effectuer les recherches à ce sujet..?
Merci
 

jeanpierre

Nous a quitté
Repose en paix
Re : affecter une macro a un seul classeur

Re,

Sur ce site évidemment, dans la barre en haut, il y a Recherche, tu entres un mot clé ou plusieurs, par exemple : "créer barre d'outils", mais pas "barre d'outils" seul, car avec toutes les catas... tu risquerais de passer la nuit.

Sinon, sur ce site : VeriTi V 3, le site des amis d'Excel et OOo, qui possède d'exellentes démos de Maître Ti. (en téléchargement et Label Ti)

Je ne peux t'aider à cette recherche ce soir, je rentre d'un "lourd" déplacement plus de mon age et ma connexion est assez aléatoire ce soir.

Bon courage.

Jean-Pierre
 

Alexvob

XLDnaute Nouveau
Bonjour,

Afin de ne pas recréer un sujet avec le même titre, je cherche un moyen de n'affecter mon UserForm qu'au seul classeur concerner.

Je m'explique :

J'ai créé avec l'aide de ce forum un UserForm afin de rechercher dans une base de donnée pour facilité la vie de mes collaborateurs.

Chaque boutons et cases ont une "fonction" et le UserForm à un but de s'ouvrir à l'ouverture du fichier.

ThisWorkbook :

Private Sub Workbook_Open()

ThisWorkbook.Application.Visible = True (ou False si je ne veux pas la base de donnée affichée)
Load Mandat
Mandat.Show 0

End Sub


Si je met le "ThisWorkbook.Application.Visible = en Fals : mes autres classeurs excel "disparaissent" sauf si je clique sur mon bouton "Retour Excel" de mon UserForm. Comme quand je quitte avec la croix mon UserForm, cela ferme tous les classeurs actifs.

Je n'ai pas de Macro dans "Module"
Existe t-il un moyen d'affecter les "codes" de mon Userform seulement au classeur concerner sans affecter les autres ?

Le seul moyen de contournement est de mettre en :ThisWorkbook.Application.Visible = True , de mettre la base de donnée en petit avec la double flèche en bas a droite, mais mes autres classeurs ouvert par la suite seront en petit aussi...

Mon UserForm :



Le Code du UserForm :

Private Sub CommandButton1_Click()

ThisWorkbook.Application.Visible = True

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cel As Range
Dim Addr As String
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("E3")) Is Nothing Then
For Each Cel In Range("E3")
If Cel <> "" Then Addr = Cel.Address
Next Cel
If Addr <> "" Then
Range("E3") = Range(Addr)
Else
Range("E3") = ""
End If
End If
End Sub

Private Sub CommandButton3_Click()

ThisWorkbook.Application.Visible = False

End Sub

Private Sub CommandButton4_Click()

ActiveWorkbook.Close savechanges:=False

End Sub

Private Sub Label3_Click()

End Sub

Private Sub Label8_Click()

End Sub

Private Sub TextBox1_Change()

TextBox6.Text = TextBox1.Text & TextBox2.Text & TextBox3.Text

End Sub

Private Sub TextBox2_Change()

TextBox6.Text = TextBox1.Text & TextBox2.Text & TextBox3.Text

End Sub

Private Sub TextBox3_Change()

TextBox6.Text = TextBox1.Text & TextBox2.Text & TextBox3.Text

End Sub

Private Sub TextBox6_Change()
With Feuil2
If IsNumeric(Application.Match(TextBox6.Value, .[a:a], 0)) Then
Me.TextBox4 = .Cells(Application.Match(TextBox6.Value, .[a:a], 0), 5)
Me.TextBox5 = .Cells(Application.Match(TextBox6.Value, .[a:a], 0), 6)
Me.TextBox7 = .Cells(Application.Match(TextBox6.Value, .[a:a], 0), 7)
Else
Me.TextBox4 = ""
Me.TextBox5 = ""
Me.TextBox7 = ""
End If
End With
End Sub

Private Sub TextBox7_Change()

End Sub


Je mets le fichier à dispo au cas ou !

Merci d'avance.
 

Pièces jointes

  • mandat3.xlsm
    51.8 KB · Affichages: 26

Discussions similaires

Statistiques des forums

Discussions
312 222
Messages
2 086 395
Membres
103 200
dernier inscrit
pascalgip