Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple 3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23E39mCeBJHA.4172@TK2MSFTNGP05.phx.gbl...
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" <ALARDETJacques@discussions.microsoft.com> a écrit dans le
message de news: 473D8DF9-C0EB-4607-8B1C-E543C1838817@microsoft.com...
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple 3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple 3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple 3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23E39mCeBJHA.4172@TK2MSFTNGP05.phx.gbl...
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" <ALARDETJacques@discussions.microsoft.com> a écrit dans le
message de news: 473D8DF9-C0EB-4607-8B1C-E543C1838817@microsoft.com...
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple 3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple 3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Bonjour Michdenis
Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à moi
Effectivement FINCONTROLS donne les boutons et par extension leur image
Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
milliers
d'images, disons 6000 images environ :
1. Je pense qu'il s'agit des toutes les images (Word, Excel et PowerPoint,
MSProject, Access ? Outilook ?)
2. Il s'agit pas forcément de bouton de barres d'outils
3. Ce peut être plusieurs fois le même bouton dans des états différents
Qu'en penses tu
--
Papyjac
"michdenis" a écrit :Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la
valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans
le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Bonjour Michdenis
Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à moi
Effectivement FINCONTROLS donne les boutons et par extension leur image
Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
milliers
d'images, disons 6000 images environ :
1. Je pense qu'il s'agit des toutes les images (Word, Excel et PowerPoint,
MSProject, Access ? Outilook ?)
2. Il s'agit pas forcément de bouton de barres d'outils
3. Ce peut être plusieurs fois le même bouton dans des états différents
Qu'en penses tu
--
Papyjac
"michdenis" a écrit :
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23E39mCeBJHA.4172@TK2MSFTNGP05.phx.gbl...
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la
valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" <ALARDETJacques@discussions.microsoft.com> a écrit dans
le
message de news: 473D8DF9-C0EB-4607-8B1C-E543C1838817@microsoft.com...
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Bonjour Michdenis
Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à moi
Effectivement FINCONTROLS donne les boutons et par extension leur image
Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
milliers
d'images, disons 6000 images environ :
1. Je pense qu'il s'agit des toutes les images (Word, Excel et PowerPoint,
MSProject, Access ? Outilook ?)
2. Il s'agit pas forcément de bouton de barres d'outils
3. Ce peut être plusieurs fois le même bouton dans des états différents
Qu'en penses tu
--
Papyjac
"michdenis" a écrit :Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la
valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans
le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
et la proc que vous a proposée chris V (que ce fil me permet de saluer au
passage) , vous l'avez essayée au moins, papyjac?
allez ouste, au boulot, mon fils
Mgr T.B.
"Papyjac" a écrit dans le message de
news:
> Bonjour Michdenis
>
> Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à moi
>
> Effectivement FINCONTROLS donne les boutons et par extension leur image
>
> Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
> milliers
> d'images, disons 6000 images environ :
> 1. Je pense qu'il s'agit des toutes les images (Word, Excel et PowerPoint,
> MSProject, Access ? Outilook ?)
> 2. Il s'agit pas forcément de bouton de barres d'outils
> 3. Ce peut être plusieurs fois le même bouton dans des états différents
>
> Qu'en penses tu
>
> --
> Papyjac
>
>
> "michdenis" a écrit :
>
>> Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
>> tu peux utiliser ceci :
>>
>> Tu copies les 2 procédures et tu exécutes "Test"
>>
>> '----------------------------------
>> Sub test()
>> Dim Tblo()
>> Dim X As Integer
>> 'Extraire les faceId et les placer
>> 'dans une variable tableau (array)
>> GetFindControlID Tblo
>>
>> 'à partir d'ici, tu tests tous les faceid
>> 'que tu veux, ils sont répertoriés dans le tableau
>>
>> X = 25 ' un test avec un faceid quelconque
>>
>> If IsError(Application.Match(X, Tblo, 0)) Then
>> MsgBox "Ce faceid n'existe pas"
>> End If
>>
>> End Sub
>>
>> '----------------------------------
>> Sub GetFindControlID(Tblo As Variant)
>> On Error Resume Next
>> Dim Coll As New Collection, i As Integer
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> For Each b In a
>> Coll.Add b.Caption, Str(b.FaceId)
>> If Err = 0 Then
>> ReDim Preserve Tblo(i)
>> Tblo(i) = b.FaceId
>> i = i + 1
>> Else
>> Err.Clear
>> End If
>> Next
>> Set a = Nothing: Set Coll = Nothing
>> End Sub
>> '----------------------------------
>>
>>
>>
>>
>>
>> "michdenis" a écrit dans le message de news:
>> %
>> Utilises cette macro et tu trouveras la liste de tous les FaceId
>> utilisés dans Excel
>>
>> à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
>> tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
>> élaboré
>> en cochant sans doublons sur la liste des FaceId et tu obtiendras
>> la liste de tous les faceId dans une colonne avec la commande associée.
>>
>> Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
>> appartient à cette liste ! Ou plus simplement, tu peux attribuer la
>> valeur
>> d'une cellule de ta plage représentant ta liste de faceId dans ta
>> procédure.
>>
>> Il y en a je crois autour de 900 différents
>>
>> '------------------------------
>> Sub GetFindControlID()
>> On Error Resume Next
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> [A1].Resize(, 2).Value = Array("Caption", "FaceID")
>> For Each b In a
>> With [A65536].End(xlUp).Offset(1)
>> .Value = b.Caption
>> .Offset(, 1).Value = b.FaceId
>> End With
>> Next
>> Set a = Nothing
>> End Sub
>> '------------------------------
>>
>>
>>
>>
>>
>> "ALARDET Jacques" a écrit dans
>> le
>> message de news:
>> Bonjour,
>>
>> Je me crée des palettes de 100 boutons contenant les images standard
>>
>> Pour la 1ère palette
>> Début = 0
>> For I=1 to 100
>> MaBarre.Controls(I)=Début+I-1
>> next
>>
>> Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
>> boutons... enfin presque, car dans le tas, il y a des images vides
>>
>> Ma question : Comment puis-je savoir qu'une image est vide, par exemple
>> 3819
>> est remplie avec un sens interdit, mais 3818 est vide ?
>>
>> Excel V2003
>>
>> --
>> Papyjac
>>
>>
et la proc que vous a proposée chris V (que ce fil me permet de saluer au
passage) , vous l'avez essayée au moins, papyjac?
allez ouste, au boulot, mon fils
Mgr T.B.
"Papyjac" <Papyjac@discussions.microsoft.com> a écrit dans le message de
news: 6FDB730D-10F0-454F-9580-E0F471527630@microsoft.com...
> Bonjour Michdenis
>
> Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à moi
>
> Effectivement FINCONTROLS donne les boutons et par extension leur image
>
> Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
> milliers
> d'images, disons 6000 images environ :
> 1. Je pense qu'il s'agit des toutes les images (Word, Excel et PowerPoint,
> MSProject, Access ? Outilook ?)
> 2. Il s'agit pas forcément de bouton de barres d'outils
> 3. Ce peut être plusieurs fois le même bouton dans des états différents
>
> Qu'en penses tu
>
> --
> Papyjac
>
>
> "michdenis" a écrit :
>
>> Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
>> tu peux utiliser ceci :
>>
>> Tu copies les 2 procédures et tu exécutes "Test"
>>
>> '----------------------------------
>> Sub test()
>> Dim Tblo()
>> Dim X As Integer
>> 'Extraire les faceId et les placer
>> 'dans une variable tableau (array)
>> GetFindControlID Tblo
>>
>> 'à partir d'ici, tu tests tous les faceid
>> 'que tu veux, ils sont répertoriés dans le tableau
>>
>> X = 25 ' un test avec un faceid quelconque
>>
>> If IsError(Application.Match(X, Tblo, 0)) Then
>> MsgBox "Ce faceid n'existe pas"
>> End If
>>
>> End Sub
>>
>> '----------------------------------
>> Sub GetFindControlID(Tblo As Variant)
>> On Error Resume Next
>> Dim Coll As New Collection, i As Integer
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> For Each b In a
>> Coll.Add b.Caption, Str(b.FaceId)
>> If Err = 0 Then
>> ReDim Preserve Tblo(i)
>> Tblo(i) = b.FaceId
>> i = i + 1
>> Else
>> Err.Clear
>> End If
>> Next
>> Set a = Nothing: Set Coll = Nothing
>> End Sub
>> '----------------------------------
>>
>>
>>
>>
>>
>> "michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
>> %23E39mCeBJHA.4172@TK2MSFTNGP05.phx.gbl...
>> Utilises cette macro et tu trouveras la liste de tous les FaceId
>> utilisés dans Excel
>>
>> à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
>> tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
>> élaboré
>> en cochant sans doublons sur la liste des FaceId et tu obtiendras
>> la liste de tous les faceId dans une colonne avec la commande associée.
>>
>> Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
>> appartient à cette liste ! Ou plus simplement, tu peux attribuer la
>> valeur
>> d'une cellule de ta plage représentant ta liste de faceId dans ta
>> procédure.
>>
>> Il y en a je crois autour de 900 différents
>>
>> '------------------------------
>> Sub GetFindControlID()
>> On Error Resume Next
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> [A1].Resize(, 2).Value = Array("Caption", "FaceID")
>> For Each b In a
>> With [A65536].End(xlUp).Offset(1)
>> .Value = b.Caption
>> .Offset(, 1).Value = b.FaceId
>> End With
>> Next
>> Set a = Nothing
>> End Sub
>> '------------------------------
>>
>>
>>
>>
>>
>> "ALARDET Jacques" <ALARDETJacques@discussions.microsoft.com> a écrit dans
>> le
>> message de news: 473D8DF9-C0EB-4607-8B1C-E543C1838817@microsoft.com...
>> Bonjour,
>>
>> Je me crée des palettes de 100 boutons contenant les images standard
>>
>> Pour la 1ère palette
>> Début = 0
>> For I=1 to 100
>> MaBarre.Controls(I)=Début+I-1
>> next
>>
>> Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
>> boutons... enfin presque, car dans le tas, il y a des images vides
>>
>> Ma question : Comment puis-je savoir qu'une image est vide, par exemple
>> 3819
>> est remplie avec un sens interdit, mais 3818 est vide ?
>>
>> Excel V2003
>>
>> --
>> Papyjac
>>
>>
et la proc que vous a proposée chris V (que ce fil me permet de saluer au
passage) , vous l'avez essayée au moins, papyjac?
allez ouste, au boulot, mon fils
Mgr T.B.
"Papyjac" a écrit dans le message de
news:
> Bonjour Michdenis
>
> Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à moi
>
> Effectivement FINCONTROLS donne les boutons et par extension leur image
>
> Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
> milliers
> d'images, disons 6000 images environ :
> 1. Je pense qu'il s'agit des toutes les images (Word, Excel et PowerPoint,
> MSProject, Access ? Outilook ?)
> 2. Il s'agit pas forcément de bouton de barres d'outils
> 3. Ce peut être plusieurs fois le même bouton dans des états différents
>
> Qu'en penses tu
>
> --
> Papyjac
>
>
> "michdenis" a écrit :
>
>> Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
>> tu peux utiliser ceci :
>>
>> Tu copies les 2 procédures et tu exécutes "Test"
>>
>> '----------------------------------
>> Sub test()
>> Dim Tblo()
>> Dim X As Integer
>> 'Extraire les faceId et les placer
>> 'dans une variable tableau (array)
>> GetFindControlID Tblo
>>
>> 'à partir d'ici, tu tests tous les faceid
>> 'que tu veux, ils sont répertoriés dans le tableau
>>
>> X = 25 ' un test avec un faceid quelconque
>>
>> If IsError(Application.Match(X, Tblo, 0)) Then
>> MsgBox "Ce faceid n'existe pas"
>> End If
>>
>> End Sub
>>
>> '----------------------------------
>> Sub GetFindControlID(Tblo As Variant)
>> On Error Resume Next
>> Dim Coll As New Collection, i As Integer
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> For Each b In a
>> Coll.Add b.Caption, Str(b.FaceId)
>> If Err = 0 Then
>> ReDim Preserve Tblo(i)
>> Tblo(i) = b.FaceId
>> i = i + 1
>> Else
>> Err.Clear
>> End If
>> Next
>> Set a = Nothing: Set Coll = Nothing
>> End Sub
>> '----------------------------------
>>
>>
>>
>>
>>
>> "michdenis" a écrit dans le message de news:
>> %
>> Utilises cette macro et tu trouveras la liste de tous les FaceId
>> utilisés dans Excel
>>
>> à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
>> tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
>> élaboré
>> en cochant sans doublons sur la liste des FaceId et tu obtiendras
>> la liste de tous les faceId dans une colonne avec la commande associée.
>>
>> Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
>> appartient à cette liste ! Ou plus simplement, tu peux attribuer la
>> valeur
>> d'une cellule de ta plage représentant ta liste de faceId dans ta
>> procédure.
>>
>> Il y en a je crois autour de 900 différents
>>
>> '------------------------------
>> Sub GetFindControlID()
>> On Error Resume Next
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> [A1].Resize(, 2).Value = Array("Caption", "FaceID")
>> For Each b In a
>> With [A65536].End(xlUp).Offset(1)
>> .Value = b.Caption
>> .Offset(, 1).Value = b.FaceId
>> End With
>> Next
>> Set a = Nothing
>> End Sub
>> '------------------------------
>>
>>
>>
>>
>>
>> "ALARDET Jacques" a écrit dans
>> le
>> message de news:
>> Bonjour,
>>
>> Je me crée des palettes de 100 boutons contenant les images standard
>>
>> Pour la 1ère palette
>> Début = 0
>> For I=1 to 100
>> MaBarre.Controls(I)=Début+I-1
>> next
>>
>> Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
>> boutons... enfin presque, car dans le tas, il y a des images vides
>>
>> Ma question : Comment puis-je savoir qu'une image est vide, par exemple
>> 3819
>> est remplie avec un sens interdit, mais 3818 est vide ?
>>
>> Excel V2003
>>
>> --
>> Papyjac
>>
>>
Bonjour Monseigneur,
Sauf votre respect monseigneur, je n'ai pas vu de proc de Chris V dans ce
fil, ou alors c'est le seveur qui me joue des tours
Mais pour te rassurer, j'ai testé, car je teste tout toujours et 2 fois,
et
ensuite je recommence
Alors j'ai quand même progressé puisque je sais que sur mes 10000 images
possible j'en ai trouvé 3834 de remplies
Je pense qu'on peut farfouiller après 10000 !
Je salue aussi Chris V comme toi
--
Papyjac
"Mgr T. Banni" a écrit :et la proc que vous a proposée chris V (que ce fil me permet de saluer au
passage) , vous l'avez essayée au moins, papyjac?
allez ouste, au boulot, mon fils
Mgr T.B.
"Papyjac" a écrit dans le message de
news:
> Bonjour Michdenis
>
> Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à
> moi
>
> Effectivement FINCONTROLS donne les boutons et par extension leur image
>
> Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
> milliers
> d'images, disons 6000 images environ :
> 1. Je pense qu'il s'agit des toutes les images (Word, Excel et
> PowerPoint,
> MSProject, Access ? Outilook ?)
> 2. Il s'agit pas forcément de bouton de barres d'outils
> 3. Ce peut être plusieurs fois le même bouton dans des états différents
>
> Qu'en penses tu
>
> --
> Papyjac
>
>
> "michdenis" a écrit :
>
>> Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
>> tu peux utiliser ceci :
>>
>> Tu copies les 2 procédures et tu exécutes "Test"
>>
>> '----------------------------------
>> Sub test()
>> Dim Tblo()
>> Dim X As Integer
>> 'Extraire les faceId et les placer
>> 'dans une variable tableau (array)
>> GetFindControlID Tblo
>>
>> 'à partir d'ici, tu tests tous les faceid
>> 'que tu veux, ils sont répertoriés dans le tableau
>>
>> X = 25 ' un test avec un faceid quelconque
>>
>> If IsError(Application.Match(X, Tblo, 0)) Then
>> MsgBox "Ce faceid n'existe pas"
>> End If
>>
>> End Sub
>>
>> '----------------------------------
>> Sub GetFindControlID(Tblo As Variant)
>> On Error Resume Next
>> Dim Coll As New Collection, i As Integer
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> For Each b In a
>> Coll.Add b.Caption, Str(b.FaceId)
>> If Err = 0 Then
>> ReDim Preserve Tblo(i)
>> Tblo(i) = b.FaceId
>> i = i + 1
>> Else
>> Err.Clear
>> End If
>> Next
>> Set a = Nothing: Set Coll = Nothing
>> End Sub
>> '----------------------------------
>>
>>
>>
>>
>>
>> "michdenis" a écrit dans le message de news:
>> %
>> Utilises cette macro et tu trouveras la liste de tous les FaceId
>> utilisés dans Excel
>>
>> à partir de la liste obtenue, tu tries la liste sur les la colonne
>> FaceId
>> tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
>> élaboré
>> en cochant sans doublons sur la liste des FaceId et tu obtiendras
>> la liste de tous les faceId dans une colonne avec la commande
>> associée.
>>
>> Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
>> appartient à cette liste ! Ou plus simplement, tu peux attribuer la
>> valeur
>> d'une cellule de ta plage représentant ta liste de faceId dans ta
>> procédure.
>>
>> Il y en a je crois autour de 900 différents
>>
>> '------------------------------
>> Sub GetFindControlID()
>> On Error Resume Next
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> [A1].Resize(, 2).Value = Array("Caption", "FaceID")
>> For Each b In a
>> With [A65536].End(xlUp).Offset(1)
>> .Value = b.Caption
>> .Offset(, 1).Value = b.FaceId
>> End With
>> Next
>> Set a = Nothing
>> End Sub
>> '------------------------------
>>
>>
>>
>>
>>
>> "ALARDET Jacques" a écrit
>> dans
>> le
>> message de news:
>> Bonjour,
>>
>> Je me crée des palettes de 100 boutons contenant les images standard
>>
>> Pour la 1ère palette
>> Début = 0
>> For I=1 to 100
>> MaBarre.Controls(I)=Début+I-1
>> next
>>
>> Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images
>> de
>> boutons... enfin presque, car dans le tas, il y a des images vides
>>
>> Ma question : Comment puis-je savoir qu'une image est vide, par
>> exemple
>> 3819
>> est remplie avec un sens interdit, mais 3818 est vide ?
>>
>> Excel V2003
>>
>> --
>> Papyjac
>>
>>
Bonjour Monseigneur,
Sauf votre respect monseigneur, je n'ai pas vu de proc de Chris V dans ce
fil, ou alors c'est le seveur qui me joue des tours
Mais pour te rassurer, j'ai testé, car je teste tout toujours et 2 fois,
et
ensuite je recommence
Alors j'ai quand même progressé puisque je sais que sur mes 10000 images
possible j'en ai trouvé 3834 de remplies
Je pense qu'on peut farfouiller après 10000 !
Je salue aussi Chris V comme toi
--
Papyjac
"Mgr T. Banni" a écrit :
et la proc que vous a proposée chris V (que ce fil me permet de saluer au
passage) , vous l'avez essayée au moins, papyjac?
allez ouste, au boulot, mon fils
Mgr T.B.
"Papyjac" <Papyjac@discussions.microsoft.com> a écrit dans le message de
news: 6FDB730D-10F0-454F-9580-E0F471527630@microsoft.com...
> Bonjour Michdenis
>
> Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à
> moi
>
> Effectivement FINCONTROLS donne les boutons et par extension leur image
>
> Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
> milliers
> d'images, disons 6000 images environ :
> 1. Je pense qu'il s'agit des toutes les images (Word, Excel et
> PowerPoint,
> MSProject, Access ? Outilook ?)
> 2. Il s'agit pas forcément de bouton de barres d'outils
> 3. Ce peut être plusieurs fois le même bouton dans des états différents
>
> Qu'en penses tu
>
> --
> Papyjac
>
>
> "michdenis" a écrit :
>
>> Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
>> tu peux utiliser ceci :
>>
>> Tu copies les 2 procédures et tu exécutes "Test"
>>
>> '----------------------------------
>> Sub test()
>> Dim Tblo()
>> Dim X As Integer
>> 'Extraire les faceId et les placer
>> 'dans une variable tableau (array)
>> GetFindControlID Tblo
>>
>> 'à partir d'ici, tu tests tous les faceid
>> 'que tu veux, ils sont répertoriés dans le tableau
>>
>> X = 25 ' un test avec un faceid quelconque
>>
>> If IsError(Application.Match(X, Tblo, 0)) Then
>> MsgBox "Ce faceid n'existe pas"
>> End If
>>
>> End Sub
>>
>> '----------------------------------
>> Sub GetFindControlID(Tblo As Variant)
>> On Error Resume Next
>> Dim Coll As New Collection, i As Integer
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> For Each b In a
>> Coll.Add b.Caption, Str(b.FaceId)
>> If Err = 0 Then
>> ReDim Preserve Tblo(i)
>> Tblo(i) = b.FaceId
>> i = i + 1
>> Else
>> Err.Clear
>> End If
>> Next
>> Set a = Nothing: Set Coll = Nothing
>> End Sub
>> '----------------------------------
>>
>>
>>
>>
>>
>> "michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
>> %23E39mCeBJHA.4172@TK2MSFTNGP05.phx.gbl...
>> Utilises cette macro et tu trouveras la liste de tous les FaceId
>> utilisés dans Excel
>>
>> à partir de la liste obtenue, tu tries la liste sur les la colonne
>> FaceId
>> tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
>> élaboré
>> en cochant sans doublons sur la liste des FaceId et tu obtiendras
>> la liste de tous les faceId dans une colonne avec la commande
>> associée.
>>
>> Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
>> appartient à cette liste ! Ou plus simplement, tu peux attribuer la
>> valeur
>> d'une cellule de ta plage représentant ta liste de faceId dans ta
>> procédure.
>>
>> Il y en a je crois autour de 900 différents
>>
>> '------------------------------
>> Sub GetFindControlID()
>> On Error Resume Next
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> [A1].Resize(, 2).Value = Array("Caption", "FaceID")
>> For Each b In a
>> With [A65536].End(xlUp).Offset(1)
>> .Value = b.Caption
>> .Offset(, 1).Value = b.FaceId
>> End With
>> Next
>> Set a = Nothing
>> End Sub
>> '------------------------------
>>
>>
>>
>>
>>
>> "ALARDET Jacques" <ALARDETJacques@discussions.microsoft.com> a écrit
>> dans
>> le
>> message de news: 473D8DF9-C0EB-4607-8B1C-E543C1838817@microsoft.com...
>> Bonjour,
>>
>> Je me crée des palettes de 100 boutons contenant les images standard
>>
>> Pour la 1ère palette
>> Début = 0
>> For I=1 to 100
>> MaBarre.Controls(I)=Début+I-1
>> next
>>
>> Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images
>> de
>> boutons... enfin presque, car dans le tas, il y a des images vides
>>
>> Ma question : Comment puis-je savoir qu'une image est vide, par
>> exemple
>> 3819
>> est remplie avec un sens interdit, mais 3818 est vide ?
>>
>> Excel V2003
>>
>> --
>> Papyjac
>>
>>
Bonjour Monseigneur,
Sauf votre respect monseigneur, je n'ai pas vu de proc de Chris V dans ce
fil, ou alors c'est le seveur qui me joue des tours
Mais pour te rassurer, j'ai testé, car je teste tout toujours et 2 fois,
et
ensuite je recommence
Alors j'ai quand même progressé puisque je sais que sur mes 10000 images
possible j'en ai trouvé 3834 de remplies
Je pense qu'on peut farfouiller après 10000 !
Je salue aussi Chris V comme toi
--
Papyjac
"Mgr T. Banni" a écrit :et la proc que vous a proposée chris V (que ce fil me permet de saluer au
passage) , vous l'avez essayée au moins, papyjac?
allez ouste, au boulot, mon fils
Mgr T.B.
"Papyjac" a écrit dans le message de
news:
> Bonjour Michdenis
>
> Oui, je trouve bien 1084 images dont 899 sont standards et 185 sont à
> moi
>
> Effectivement FINCONTROLS donne les boutons et par extension leur image
>
> Mais avec mon exploration initiale des FACEID j'obtenais plusieurs
> milliers
> d'images, disons 6000 images environ :
> 1. Je pense qu'il s'agit des toutes les images (Word, Excel et
> PowerPoint,
> MSProject, Access ? Outilook ?)
> 2. Il s'agit pas forcément de bouton de barres d'outils
> 3. Ce peut être plusieurs fois le même bouton dans des états différents
>
> Qu'en penses tu
>
> --
> Papyjac
>
>
> "michdenis" a écrit :
>
>> Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
>> tu peux utiliser ceci :
>>
>> Tu copies les 2 procédures et tu exécutes "Test"
>>
>> '----------------------------------
>> Sub test()
>> Dim Tblo()
>> Dim X As Integer
>> 'Extraire les faceId et les placer
>> 'dans une variable tableau (array)
>> GetFindControlID Tblo
>>
>> 'à partir d'ici, tu tests tous les faceid
>> 'que tu veux, ils sont répertoriés dans le tableau
>>
>> X = 25 ' un test avec un faceid quelconque
>>
>> If IsError(Application.Match(X, Tblo, 0)) Then
>> MsgBox "Ce faceid n'existe pas"
>> End If
>>
>> End Sub
>>
>> '----------------------------------
>> Sub GetFindControlID(Tblo As Variant)
>> On Error Resume Next
>> Dim Coll As New Collection, i As Integer
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> For Each b In a
>> Coll.Add b.Caption, Str(b.FaceId)
>> If Err = 0 Then
>> ReDim Preserve Tblo(i)
>> Tblo(i) = b.FaceId
>> i = i + 1
>> Else
>> Err.Clear
>> End If
>> Next
>> Set a = Nothing: Set Coll = Nothing
>> End Sub
>> '----------------------------------
>>
>>
>>
>>
>>
>> "michdenis" a écrit dans le message de news:
>> %
>> Utilises cette macro et tu trouveras la liste de tous les FaceId
>> utilisés dans Excel
>>
>> à partir de la liste obtenue, tu tries la liste sur les la colonne
>> FaceId
>> tu enlèveras les lignes vides. Par la suite, tu utilises un filtre
>> élaboré
>> en cochant sans doublons sur la liste des FaceId et tu obtiendras
>> la liste de tous les faceId dans une colonne avec la commande
>> associée.
>>
>> Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
>> appartient à cette liste ! Ou plus simplement, tu peux attribuer la
>> valeur
>> d'une cellule de ta plage représentant ta liste de faceId dans ta
>> procédure.
>>
>> Il y en a je crois autour de 900 différents
>>
>> '------------------------------
>> Sub GetFindControlID()
>> On Error Resume Next
>> Dim a As CommandBarControls, b As Object
>> Set a = Application.CommandBars.FindControls
>> [A1].Resize(, 2).Value = Array("Caption", "FaceID")
>> For Each b In a
>> With [A65536].End(xlUp).Offset(1)
>> .Value = b.Caption
>> .Offset(, 1).Value = b.FaceId
>> End With
>> Next
>> Set a = Nothing
>> End Sub
>> '------------------------------
>>
>>
>>
>>
>>
>> "ALARDET Jacques" a écrit
>> dans
>> le
>> message de news:
>> Bonjour,
>>
>> Je me crée des palettes de 100 boutons contenant les images standard
>>
>> Pour la 1ère palette
>> Début = 0
>> For I=1 to 100
>> MaBarre.Controls(I)=Début+I-1
>> next
>>
>> Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images
>> de
>> boutons... enfin presque, car dans le tas, il y a des images vides
>>
>> Ma question : Comment puis-je savoir qu'une image est vide, par
>> exemple
>> 3819
>> est remplie avec un sens interdit, mais 3818 est vide ?
>>
>> Excel V2003
>>
>> --
>> Papyjac
>>
>>
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans
le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23E39mCeBJHA.4172@TK2MSFTNGP05.phx.gbl...
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" <ALARDETJacques@discussions.microsoft.com> a écrit dans
le
message de news: 473D8DF9-C0EB-4607-8B1C-E543C1838817@microsoft.com...
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans
le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans
le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
%23E39mCeBJHA.4172@TK2MSFTNGP05.phx.gbl...
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" <ALARDETJacques@discussions.microsoft.com> a écrit dans
le
message de news: 473D8DF9-C0EB-4607-8B1C-E543C1838817@microsoft.com...
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac
Et si tu ne veux pas utiliser l'interface de la feuille de calcul,
tu peux utiliser ceci :
Tu copies les 2 procédures et tu exécutes "Test"
'----------------------------------
Sub test()
Dim Tblo()
Dim X As Integer
'Extraire les faceId et les placer
'dans une variable tableau (array)
GetFindControlID Tblo
'à partir d'ici, tu tests tous les faceid
'que tu veux, ils sont répertoriés dans le tableau
X = 25 ' un test avec un faceid quelconque
If IsError(Application.Match(X, Tblo, 0)) Then
MsgBox "Ce faceid n'existe pas"
End If
End Sub
'----------------------------------
Sub GetFindControlID(Tblo As Variant)
On Error Resume Next
Dim Coll As New Collection, i As Integer
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
For Each b In a
Coll.Add b.Caption, Str(b.FaceId)
If Err = 0 Then
ReDim Preserve Tblo(i)
Tblo(i) = b.FaceId
i = i + 1
Else
Err.Clear
End If
Next
Set a = Nothing: Set Coll = Nothing
End Sub
'----------------------------------
"michdenis" a écrit dans le message de news:
%
Utilises cette macro et tu trouveras la liste de tous les FaceId
utilisés dans Excel
à partir de la liste obtenue, tu tries la liste sur les la colonne FaceId
tu enlèveras les lignes vides. Par la suite, tu utilises un filtre élaboré
en cochant sans doublons sur la liste des FaceId et tu obtiendras
la liste de tous les faceId dans une colonne avec la commande associée.
Tu peux alors vérifier si le numéro de la faceid que tu veux attribuer
appartient à cette liste ! Ou plus simplement, tu peux attribuer la valeur
d'une cellule de ta plage représentant ta liste de faceId dans ta
procédure.
Il y en a je crois autour de 900 différents
'------------------------------
Sub GetFindControlID()
On Error Resume Next
Dim a As CommandBarControls, b As Object
Set a = Application.CommandBars.FindControls
[A1].Resize(, 2).Value = Array("Caption", "FaceID")
For Each b In a
With [A65536].End(xlUp).Offset(1)
.Value = b.Caption
.Offset(, 1).Value = b.FaceId
End With
Next
Set a = Nothing
End Sub
'------------------------------
"ALARDET Jacques" a écrit dans
le
message de news:
Bonjour,
Je me crée des palettes de 100 boutons contenant les images standard
Pour la 1ère palette
Début = 0
For I=1 to 100
MaBarre.Controls(I)=Début+I-1
next
Ensuite je fais varier Début de 0 à 10000. et j'obtiens 10000 images de
boutons... enfin presque, car dans le tas, il y a des images vides
Ma question : Comment puis-je savoir qu'une image est vide, par exemple
3819
est remplie avec un sens interdit, mais 3818 est vide ?
Excel V2003
--
Papyjac