Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Chercher des popup dans une barre d'outil

4 réponses
Avatar
Fred64
J'ai une barre d'outil qui se créait automatiquement en VBA.
Je dois vérifier si la barre d'outil(XX), qui contient un
popup("Choisir un savoir"), qui lui contient plusieurs popup ne contient pas
deja des popups de meme nom.
J'ai essayé ceci:
Dim ctr As CommandBarControl
For Each ctr In Application.CommandBars(XX).Controls
If ctr.Caption = Variable Then
Suite
Else
Ajouter popup(Variable)
End If
Next ctr

J'espère avoir été clair
Merci d'avance
fred

4 réponses

Avatar
papou
Bonjour
Comme te l'a indiqué judicieusement Jean Paul (jps) dans ton précédent
message du 22/05, il est d'une manière générale, préférable de vérifier la
présence d'une BO et de la supprimer avant de la créer.
Où se trouve ton contrôle Choisir un savoir ? Et plus précisément dans
quelle barre d'Outils ?

Cordialement
Pascal

"Fred64" a écrit dans le message de news:

J'ai une barre d'outil qui se créait automatiquement en VBA.
Je dois vérifier si la barre d'outil(XX), qui contient un
popup("Choisir un savoir"), qui lui contient plusieurs popup ne contient
pas deja des popups de meme nom.
J'ai essayé ceci:
Dim ctr As CommandBarControl
For Each ctr In Application.CommandBars(XX).Controls
If ctr.Caption = Variable Then
Suite
Else
Ajouter popup(Variable)
End If
Next ctr

J'espère avoir été clair
Merci d'avance
fred




Avatar
jps
comme disait l'acteur Aldo Maccione : lé style?, non, la classe
merci papou :-)))
jps

"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Comme te l'a indiqué judicieusement Jean Paul (jps) dans ton précédent
message du 22/05, il est d'une manière générale, préférable de vérifier la
présence d'une BO et de la supprimer avant de la créer.
Où se trouve ton contrôle Choisir un savoir ? Et plus précisément dans
quelle barre d'Outils ?

Cordialement
Pascal

"Fred64" a écrit dans le message de news:

J'ai une barre d'outil qui se créait automatiquement en VBA.
Je dois vérifier si la barre d'outil(XX), qui contient un
popup("Choisir un savoir"), qui lui contient plusieurs popup ne contient
pas deja des popups de meme nom.
J'ai essayé ceci:
Dim ctr As CommandBarControl
For Each ctr In Application.CommandBars(XX).Controls
If ctr.Caption = Variable Then
Suite
Else
Ajouter popup(Variable)
End If
Next ctr

J'espère avoir été clair
Merci d'avance
fred








Avatar
Fred64
Oui, j'ai lu le message de JPS , mais ce n'est pas possible:
Je créais une barre d'outil avec un popup "Choisir un savoir".
Dans ce popup savoir, je créais des popups à partir d'une liste. En fait,
j'effectue des boucles sur une feuille, si la cellule répond à certains
critères, alors on créait un ¨sous popup avec la valeur de la cellule. C'est
la ou il peut arriver un doublon. Voici le morceau de code:

Set msoCP1 = CB.Controls.Add(msoControlPopup, , , , True) ' Création du
popup"Choisir un Savoir"
With msoCP1
.BeginGroup = True
.Caption = "Choisir un Savoir"
.Tag = "Choisir un Savoir"
.TooltipText = "Choisir un Savoir et l' attribuer à la séquence"
End With


'---------CONDITION POUR CREER LE SOUS
POPUP-----------------------------------
If Competence = NumComp1 Then
DernierSavoir = Sheets("Relation Compétence
Savoir").Range("CC2").End(xlToLeft).Column
NumeroColonne = 2
For J = 2 To DernierSavoir Step 1

If Sheets("Relation Compétence Savoir").Cells(Numeroligne,
NumeroColonne).Interior.ColorIndex = 3 Then
Savoir_Feuille_Relation = Sheets("Relation Compétence Savoir").Cells(2,
NumeroColonne).Value


'-----------------AJOUT DES SAVOIRS DANS LE POPUP "CHOISIR UN SAVOIR
"------------

DerniersSavoir = Sheets("Savoirs").Range("A65536").End(xlUp).Row - 2

Numeroligne2 = 3
For K = 1 To DerniersSavoir Step 1
If Sheets("Savoirs").Cells(Numeroligne2, 1).Value =
Savoir_Feuille_Relation Then
Set msoCP2 = msoCP1.Controls.Add(msoControlPopup, , , , True)
Num_Savoir = Sheets("Savoirs").Cells(Numeroligne2, 1).Value
Designation_Capacité = Sheets("Savoirs").Cells(Numeroligne2,
2).Value
With msoCP2
.BeginGroup = True
.Caption = Num_Savoir & " " & Designation_Capacité
.Tag = Num_Savoir & " " & Designation_Capacité
End With

'------------- AJOUT DES "SOUS SAVOIRS" DANS CHAQUE
SAVOIR -----
DernierSousSavoir = Sheets("Sous
Savoirs").Range("B65536").End(xlUp).Row - 2
NumeroLigne3 = 3
For L = 1 To DernierSousSavoir Step 1
If Sheets("Sous Savoirs").Cells(NumeroLigne3, 1).Value =
Savoir_Feuille_Relation Then
Set msoCB2 = msoCP2.Controls.Add(msoControlButton, ,
, , True)
Num_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 2).Value
Designation_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 3).Value
With msoCB2
.BeginGroup = True
.OnAction = "Savoir"
.Caption = Left(Num_SousSavoir & " "
& Designation_SousSavoir, 255)
.Style = msoButtonIconAndCaption
.FaceId = 640
End With
End If
NumeroLigne3 = NumeroLigne3 + 1
Next L

End If 'Verifier si bon
Numeroligne2 = Numeroligne2 + 1
Next K

End If
NumeroColonne = NumeroColonne + 1
Next J

End If

'---------2 eme CONDITION POUR CREER LE SOUS
POPUP-----------------------------------

If Competence = NumComp2 Then
DernierSavoir = Sheets("Relation Compétence
Savoir").Range("CC2").End(xlToLeft).Column
NumeroColonne = 2
For J = 2 To DernierSavoir Step 1

If Sheets("Relation Compétence Savoir").Cells(Numeroligne,
NumeroColonne).Interior.ColorIndex = 3 Then
Savoir_Feuille_Relation = Sheets("Relation Compétence Savoir").Cells(2,
NumeroColonne).Value


'-----------------AJOUT DES SAVOIRS DANS LE POPUP "CHOISIR UN SAVOIR
"------------
DerniersSavoir = Sheets("Savoirs").Range("A65536").End(xlUp).Row - 2
Dim Ctr As CommandBarPopup

Numeroligne2 = 3
For K = 1 To DerniersSavoir Step 1
If Sheets("Savoirs").Cells(Numeroligne2, 1).Value =
Savoir_Feuille_Relation Then
Num_Savoir = Sheets("Savoirs").Cells(Numeroligne2, 1).Value
Designation_Capacité = Sheets("Savoirs").Cells(Numeroligne2,
2).Value

' With Application.CommandBars(NomBarreOutil)
Dim MonBtn As CommandBarControl

Set MonBtn = CommandBars(NomBarreOutil).FindControl(, , "Choisir un Savoir")

'------------------------ICI J'AI PLACE CE QUE TU M'AS
DONNE----------------------------------------

For Each Ctr In Application.CommandBars(NomBarreOutil).controls
If Ctr.Caption = Num_Savoir & " " & Designation_Capacité
Then
Else
Set msoCP2 = msoCP1.Controls.Add(msoControlPopup, , , , True)
With msoCP2
.BeginGroup = True
.Caption = Num_Savoir & " " & Designation_Capacité
End With

'------------- AJOUT DES "SOUS SAVOIRS" DANS CHAQUE
SAVOIR-----
DernierSousSavoir = Sheets("Sous
Savoirs").Range("B65536").End(xlUp).Row - 2
NumeroLigne3 = 3
For L = 1 To DernierSousSavoir Step 1
If Sheets("Sous Savoirs").Cells(NumeroLigne3, 1).Value =
Savoir_Feuille_Relation Then
Num_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 2).Value
Designation_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 3).Value
Set msoCB2 = msoCP2.Controls.Add(msoControlButton, ,
, , True)
With msoCB2
.BeginGroup = True
.OnAction = "Savoir"
.Caption = Left(Num_SousSavoir & " "
& Designation_SousSavoir, 255)
.Style = msoButtonIconAndCaption
.FaceId = 640
End With
End If
NumeroLigne3 = NumeroLigne3 + 1
Next L

End If
Next Ctr
' End With 'Du With

End If 'Verifier si bon
Numeroligne2 = Numeroligne2 + 1
Next K

End If
NumeroColonne = NumeroColonne + 1
Next J

End If

Numeroligne = Numeroligne + 1
Next I



"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Comme te l'a indiqué judicieusement Jean Paul (jps) dans ton précédent
message du 22/05, il est d'une manière générale, préférable de vérifier la
présence d'une BO et de la supprimer avant de la créer.
Où se trouve ton contrôle Choisir un savoir ? Et plus précisément dans
quelle barre d'Outils ?

Cordialement
Pascal

"Fred64" a écrit dans le message de news:

J'ai une barre d'outil qui se créait automatiquement en VBA.
Je dois vérifier si la barre d'outil(XX), qui contient un
popup("Choisir un savoir"), qui lui contient plusieurs popup ne contient
pas deja des popups de meme nom.
J'ai essayé ceci:
Dim ctr As CommandBarControl
For Each ctr In Application.CommandBars(XX).Controls
If ctr.Caption = Variable Then
Suite
Else
Ajouter popup(Variable)
End If
Next ctr

J'espère avoir été clair
Merci d'avance
fred








Avatar
papou
Bonjour
Voici une méthode qui va te permettre d'identifier l'index du contrôle popup
que tu cherches.
Une fois trouvé, s'il est en double tu vas pouvoir le supprimer.

Dim Ctrl As CommandBarControl
Set Ctrl = Application.CommandBars(CB).FindControl(Type:=msoControlPopup,
Tag:="Choisir un savoir")
If Not Ctrl Is Nothing Then
MsgBox "Le popup " & Ctrl.Index & " a été trouvé sur la BO " _
& Ctrl.Parent.Name
End If

Cordialement
Pascal

"Fred64" a écrit dans le message de news:

Oui, j'ai lu le message de JPS , mais ce n'est pas possible:
Je créais une barre d'outil avec un popup "Choisir un savoir".
Dans ce popup savoir, je créais des popups à partir d'une liste. En fait,
j'effectue des boucles sur une feuille, si la cellule répond à certains
critères, alors on créait un ¨sous popup avec la valeur de la cellule.
C'est la ou il peut arriver un doublon. Voici le morceau de code:

Set msoCP1 = CB.Controls.Add(msoControlPopup, , , , True) ' Création du
popup"Choisir un Savoir"
With msoCP1
.BeginGroup = True
.Caption = "Choisir un Savoir"
.Tag = "Choisir un Savoir"
.TooltipText = "Choisir un Savoir et l' attribuer à la séquence"
End With


'---------CONDITION POUR CREER LE SOUS
POPUP-----------------------------------
If Competence = NumComp1 Then
DernierSavoir = Sheets("Relation Compétence
Savoir").Range("CC2").End(xlToLeft).Column
NumeroColonne = 2
For J = 2 To DernierSavoir Step 1

If Sheets("Relation Compétence Savoir").Cells(Numeroligne,
NumeroColonne).Interior.ColorIndex = 3 Then
Savoir_Feuille_Relation = Sheets("Relation Compétence Savoir").Cells(2,
NumeroColonne).Value


'-----------------AJOUT DES SAVOIRS DANS LE POPUP "CHOISIR UN SAVOIR
"------------

DerniersSavoir = Sheets("Savoirs").Range("A65536").End(xlUp).Row -
2

Numeroligne2 = 3
For K = 1 To DerniersSavoir Step 1
If Sheets("Savoirs").Cells(Numeroligne2, 1).Value =
Savoir_Feuille_Relation Then
Set msoCP2 = msoCP1.Controls.Add(msoControlPopup, , , , True)
Num_Savoir = Sheets("Savoirs").Cells(Numeroligne2, 1).Value
Designation_Capacité = Sheets("Savoirs").Cells(Numeroligne2,
2).Value
With msoCP2
.BeginGroup = True
.Caption = Num_Savoir & " " & Designation_Capacité
.Tag = Num_Savoir & " " & Designation_Capacité
End With

'------------- AJOUT DES "SOUS SAVOIRS" DANS CHAQUE
SAVOIR -----
DernierSousSavoir = Sheets("Sous
Savoirs").Range("B65536").End(xlUp).Row - 2
NumeroLigne3 = 3
For L = 1 To DernierSousSavoir Step 1
If Sheets("Sous Savoirs").Cells(NumeroLigne3, 1).Value
= Savoir_Feuille_Relation Then
Set msoCB2 = msoCP2.Controls.Add(msoControlButton,
, , , True)
Num_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 2).Value
Designation_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 3).Value
With msoCB2
.BeginGroup = True
.OnAction = "Savoir"
.Caption = Left(Num_SousSavoir & "
" & Designation_SousSavoir, 255)
.Style = msoButtonIconAndCaption
.FaceId = 640
End With
End If
NumeroLigne3 = NumeroLigne3 + 1
Next L

End If 'Verifier si bon
Numeroligne2 = Numeroligne2 + 1
Next K

End If
NumeroColonne = NumeroColonne + 1
Next J

End If

'---------2 eme CONDITION POUR CREER LE SOUS
POPUP-----------------------------------

If Competence = NumComp2 Then
DernierSavoir = Sheets("Relation Compétence
Savoir").Range("CC2").End(xlToLeft).Column
NumeroColonne = 2
For J = 2 To DernierSavoir Step 1

If Sheets("Relation Compétence Savoir").Cells(Numeroligne,
NumeroColonne).Interior.ColorIndex = 3 Then
Savoir_Feuille_Relation = Sheets("Relation Compétence Savoir").Cells(2,
NumeroColonne).Value


'-----------------AJOUT DES SAVOIRS DANS LE POPUP "CHOISIR UN SAVOIR
"------------
DerniersSavoir = Sheets("Savoirs").Range("A65536").End(xlUp).Row -
2
Dim Ctr As CommandBarPopup

Numeroligne2 = 3
For K = 1 To DerniersSavoir Step 1
If Sheets("Savoirs").Cells(Numeroligne2, 1).Value =
Savoir_Feuille_Relation Then
Num_Savoir = Sheets("Savoirs").Cells(Numeroligne2, 1).Value
Designation_Capacité = Sheets("Savoirs").Cells(Numeroligne2,
2).Value

' With Application.CommandBars(NomBarreOutil)
Dim MonBtn As CommandBarControl

Set MonBtn = CommandBars(NomBarreOutil).FindControl(, , "Choisir un
Savoir")

'------------------------ICI J'AI PLACE CE QUE TU M'AS
DONNE----------------------------------------

For Each Ctr In
Application.CommandBars(NomBarreOutil).controls
If Ctr.Caption = Num_Savoir & " " & Designation_Capacité
Then
Else
Set msoCP2 = msoCP1.Controls.Add(msoControlPopup, , , , True)
With msoCP2
.BeginGroup = True
.Caption = Num_Savoir & " " & Designation_Capacité
End With

'------------- AJOUT DES "SOUS SAVOIRS" DANS CHAQUE
SAVOIR-----
DernierSousSavoir = Sheets("Sous
Savoirs").Range("B65536").End(xlUp).Row - 2
NumeroLigne3 = 3
For L = 1 To DernierSousSavoir Step 1
If Sheets("Sous Savoirs").Cells(NumeroLigne3, 1).Value
= Savoir_Feuille_Relation Then
Num_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 2).Value
Designation_SousSavoir = Sheets("Sous
Savoirs").Cells(NumeroLigne3, 3).Value
Set msoCB2 = msoCP2.Controls.Add(msoControlButton, ,
, , True)
With msoCB2
.BeginGroup = True
.OnAction = "Savoir"
.Caption = Left(Num_SousSavoir & "
" & Designation_SousSavoir, 255)
.Style = msoButtonIconAndCaption
.FaceId = 640
End With
End If
NumeroLigne3 = NumeroLigne3 + 1
Next L

End If
Next Ctr
' End With 'Du With

End If 'Verifier si bon
Numeroligne2 = Numeroligne2 + 1
Next K

End If
NumeroColonne = NumeroColonne + 1
Next J

End If

Numeroligne = Numeroligne + 1
Next I



"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Comme te l'a indiqué judicieusement Jean Paul (jps) dans ton précédent
message du 22/05, il est d'une manière générale, préférable de vérifier
la présence d'une BO et de la supprimer avant de la créer.
Où se trouve ton contrôle Choisir un savoir ? Et plus précisément dans
quelle barre d'Outils ?

Cordialement
Pascal

"Fred64" a écrit dans le message de news:

J'ai une barre d'outil qui se créait automatiquement en VBA.
Je dois vérifier si la barre d'outil(XX), qui contient un
popup("Choisir un savoir"), qui lui contient plusieurs popup ne contient
pas deja des popups de meme nom.
J'ai essayé ceci:
Dim ctr As CommandBarControl
For Each ctr In Application.CommandBars(XX).Controls
If ctr.Caption = Variable Then
Suite
Else
Ajouter popup(Variable)
End If
Next ctr

J'espère avoir été clair
Merci d'avance
fred