sur une feuille de calcul j'ai des objets Shapes (deux=20
boutons fixes et des zones de liste qui se cr=E9ent=20
dynamiquement).
A la fin d'une proc=E9dure, je voudrais supprimer SEULEMENT=20
les zones de liste (pas les boutons).
J'arrive =E0 les lister avec le code ci-dessous, mais je ne=20
sais pas les mettre dans un tableau=20
Dim arShapes() As Variant
Set mydocument =3D ActiveSheet
With mydocument.Shapes
For i =3D 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType =3D xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
????????
QUE FAUT-IL ECRIRE ICI POUR OBTENIR
'arShapes =3D Array("Drop Down 148", "Drop Down=20
150", "Drop Down 152") =20
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Papou
Bonjour Dim n as Long Dim arShapes() Set mydocument = ActiveSheet n = 0 With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then n = n + 1 Redim Preserve arShapes(n) arShapes(n) = mydocument.Shapes(i).Name '...etc...
Cordialement Pascal
"fabienne HUÏEZ" a écrit dans le message de news:8da701c485eb$e6aef150$ bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")
merci de votre aide fabienne
Bonjour
Dim n as Long
Dim arShapes()
Set mydocument = ActiveSheet
n = 0
With mydocument.Shapes
For i = 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType = xlDropDown Then
n = n + 1
Redim Preserve arShapes(n)
arShapes(n) = mydocument.Shapes(i).Name
'...etc...
Cordialement
Pascal
"fabienne HUÏEZ" <fabienne.huiez@francetelecom.com> a écrit dans le message
de news:8da701c485eb$e6aef150$a501280a@phx.gbl...
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux
boutons fixes et des zones de liste qui se créent
dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT
les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne
sais pas les mettre dans un tableau
Dim arShapes() As Variant
Set mydocument = ActiveSheet
With mydocument.Shapes
For i = 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType = xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
????????
QUE FAUT-IL ECRIRE ICI POUR OBTENIR
'arShapes = Array("Drop Down 148", "Drop Down
150", "Drop Down 152")
Bonjour Dim n as Long Dim arShapes() Set mydocument = ActiveSheet n = 0 With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then n = n + 1 Redim Preserve arShapes(n) arShapes(n) = mydocument.Shapes(i).Name '...etc...
Cordialement Pascal
"fabienne HUÏEZ" a écrit dans le message de news:8da701c485eb$e6aef150$ bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")
merci de votre aide fabienne
Nicolas B.
Salut,
Si tu veux seulement supprimer tes listes, il n'est pas nécessaire de passer par un tableau :
Sub SuppListes() For Each shp In ActiveSheet.Shapes If shp.Type = msoFormControl Then 'rajoute cette condition 'si tu as d'autres objets que ceux provenant de la BO Formulaire If shp.FormControlType = xlDropDown Then shp.Delete End If Next End Sub
A+ Nicolas B.
fabienne HUÏEZ wrote:
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")
merci de votre aide fabienne
Salut,
Si tu veux seulement supprimer tes listes, il n'est pas nécessaire de
passer par un tableau :
Sub SuppListes()
For Each shp In ActiveSheet.Shapes
If shp.Type = msoFormControl Then 'rajoute cette condition
'si tu as d'autres objets que ceux provenant de la BO Formulaire
If shp.FormControlType = xlDropDown Then shp.Delete
End If
Next
End Sub
A+
Nicolas B.
fabienne HUÏEZ wrote:
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux
boutons fixes et des zones de liste qui se créent
dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT
les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne
sais pas les mettre dans un tableau
Dim arShapes() As Variant
Set mydocument = ActiveSheet
With mydocument.Shapes
For i = 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType = xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
????????
QUE FAUT-IL ECRIRE ICI POUR OBTENIR
'arShapes = Array("Drop Down 148", "Drop Down
150", "Drop Down 152")
Si tu veux seulement supprimer tes listes, il n'est pas nécessaire de passer par un tableau :
Sub SuppListes() For Each shp In ActiveSheet.Shapes If shp.Type = msoFormControl Then 'rajoute cette condition 'si tu as d'autres objets que ceux provenant de la BO Formulaire If shp.FormControlType = xlDropDown Then shp.Delete End If Next End Sub
A+ Nicolas B.
fabienne HUÏEZ wrote:
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")
merci de votre aide fabienne
fabienne.HUÏEZ
bonjour Papou,
c'est bien ce que j'avais écris mais avec cette syntaxe, j'ai des problèmes pour la suppression.
l'exemple de l'aide affiche:
Dim arShapes() as Variant dim objRange as object set MyDocument=Woorsheets(1) arShapes=Array("Oval 4", "Rectangle 5") set objRange=myDocument.Shapes.Range(arShapes) objRange.[Action à faire]
En l'adaptant à mon cas, jobtiens: Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then Debug.Print mydocument.Shapes(i).Name NomShapes = NomShapes & """" & (mydocument.Shapes(i).Name) & """" NomShapes = NomShapes & ", " end if Next
En faisant du pas à pas, à ce niveau j'obtiens TronqueNomShapes="Drop Down 148", "Drop Down 150".... soit presque? la syntaxe qui fonctionne en dur. Manque t- il des paranthèses ? mais ensuite j'ai l'erreur 1004 "l'élément poratn ce nom est introuvable"
'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152") 'bon en dur set objRange = mydocument.Shapes.Range(arShapes) objRange.Delete
où est le problème ? merci de ta collaboration fabienne
-----Message d'origine----- Bonjour Dim n as Long Dim arShapes() Set mydocument = ActiveSheet n = 0 With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then
n = n + 1 Redim Preserve arShapes(n) arShapes(n) = mydocument.Shapes(i).Name '...etc...
Cordialement Pascal
"fabienne HUÏEZ" a écrit dans le message
de news:8da701c485eb$e6aef150$ bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")
merci de votre aide fabienne
.
bonjour Papou,
c'est bien ce que j'avais écris mais avec cette syntaxe,
j'ai des problèmes pour la suppression.
l'exemple de l'aide affiche:
Dim arShapes() as Variant
dim objRange as object
set MyDocument=Woorsheets(1)
arShapes=Array("Oval 4", "Rectangle 5")
set objRange=myDocument.Shapes.Range(arShapes)
objRange.[Action à faire]
En l'adaptant à mon cas, jobtiens:
Set mydocument = ActiveSheet
With mydocument.Shapes
For i = 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType = xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
NomShapes = NomShapes & """" & (mydocument.Shapes(i).Name)
& """"
NomShapes = NomShapes & ", "
end if
Next
En faisant du pas à pas, à ce niveau j'obtiens
TronqueNomShapes="Drop Down 148", "Drop Down 150"....
soit presque? la syntaxe qui fonctionne en dur. Manque t-
il des paranthèses ?
mais ensuite j'ai l'erreur 1004
"l'élément poratn ce nom est introuvable"
'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop
Down 152") 'bon en dur
set objRange = mydocument.Shapes.Range(arShapes)
objRange.Delete
où est le problème ?
merci de ta collaboration
fabienne
-----Message d'origine-----
Bonjour
Dim n as Long
Dim arShapes()
Set mydocument = ActiveSheet
n = 0
With mydocument.Shapes
For i = 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType = xlDropDown
Then
n = n + 1
Redim Preserve arShapes(n)
arShapes(n) = mydocument.Shapes(i).Name
'...etc...
Cordialement
Pascal
"fabienne HUÏEZ" <fabienne.huiez@francetelecom.com> a
écrit dans le message
de news:8da701c485eb$e6aef150$a501280a@phx.gbl...
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux
boutons fixes et des zones de liste qui se créent
dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT
les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne
sais pas les mettre dans un tableau
Dim arShapes() As Variant
Set mydocument = ActiveSheet
With mydocument.Shapes
For i = 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType = xlDropDown
Then
Debug.Print mydocument.Shapes(i).Name
????????
QUE FAUT-IL ECRIRE ICI POUR OBTENIR
'arShapes = Array("Drop Down 148", "Drop Down
150", "Drop Down 152")
c'est bien ce que j'avais écris mais avec cette syntaxe, j'ai des problèmes pour la suppression.
l'exemple de l'aide affiche:
Dim arShapes() as Variant dim objRange as object set MyDocument=Woorsheets(1) arShapes=Array("Oval 4", "Rectangle 5") set objRange=myDocument.Shapes.Range(arShapes) objRange.[Action à faire]
En l'adaptant à mon cas, jobtiens: Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then Debug.Print mydocument.Shapes(i).Name NomShapes = NomShapes & """" & (mydocument.Shapes(i).Name) & """" NomShapes = NomShapes & ", " end if Next
En faisant du pas à pas, à ce niveau j'obtiens TronqueNomShapes="Drop Down 148", "Drop Down 150".... soit presque? la syntaxe qui fonctionne en dur. Manque t- il des paranthèses ? mais ensuite j'ai l'erreur 1004 "l'élément poratn ce nom est introuvable"
'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152") 'bon en dur set objRange = mydocument.Shapes.Range(arShapes) objRange.Delete
où est le problème ? merci de ta collaboration fabienne
-----Message d'origine----- Bonjour Dim n as Long Dim arShapes() Set mydocument = ActiveSheet n = 0 With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then
n = n + 1 Redim Preserve arShapes(n) arShapes(n) = mydocument.Shapes(i).Name '...etc...
Cordialement Pascal
"fabienne HUÏEZ" a écrit dans le message
de news:8da701c485eb$e6aef150$ bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")
merci de votre aide fabienne
.
fabienne.HUÏEZ
il suffisait d'y penser...
merci beaucoup. C'est impeccable fabienne
-----Message d'origine----- Salut,
Si tu veux seulement supprimer tes listes, il n'est pas nécessaire de
passer par un tableau :
Sub SuppListes() For Each shp In ActiveSheet.Shapes If shp.Type = msoFormControl Then 'rajoute cette condition
'si tu as d'autres objets que ceux provenant de la BO Formulaire
If shp.FormControlType = xlDropDown Then shp.Delete
End If Next End Sub
A+ Nicolas B.
fabienne HUÏEZ wrote:
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT
les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne
sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")
merci de votre aide fabienne
.
il suffisait d'y penser...
merci beaucoup. C'est impeccable
fabienne
-----Message d'origine-----
Salut,
Si tu veux seulement supprimer tes listes, il n'est pas
nécessaire de
passer par un tableau :
Sub SuppListes()
For Each shp In ActiveSheet.Shapes
If shp.Type = msoFormControl Then 'rajoute cette
condition
'si tu as d'autres objets que ceux provenant de la
BO Formulaire
If shp.FormControlType = xlDropDown Then
shp.Delete
End If
Next
End Sub
A+
Nicolas B.
fabienne HUÏEZ wrote:
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux
boutons fixes et des zones de liste qui se créent
dynamiquement).
A la fin d'une procédure, je voudrais supprimer
SEULEMENT
les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je
ne
sais pas les mettre dans un tableau
Dim arShapes() As Variant
Set mydocument = ActiveSheet
With mydocument.Shapes
For i = 1 To mydocument.Shapes.Count
If mydocument.Shapes(i).FormControlType = xlDropDown
Then
Debug.Print mydocument.Shapes(i).Name
????????
QUE FAUT-IL ECRIRE ICI POUR OBTENIR
'arShapes = Array("Drop Down 148", "Drop Down
150", "Drop Down 152")
Si tu veux seulement supprimer tes listes, il n'est pas nécessaire de
passer par un tableau :
Sub SuppListes() For Each shp In ActiveSheet.Shapes If shp.Type = msoFormControl Then 'rajoute cette condition
'si tu as d'autres objets que ceux provenant de la BO Formulaire
If shp.FormControlType = xlDropDown Then shp.Delete
End If Next End Sub
A+ Nicolas B.
fabienne HUÏEZ wrote:
bonjour à tous,
sur une feuille de calcul j'ai des objets Shapes (deux boutons fixes et des zones de liste qui se créent dynamiquement).
A la fin d'une procédure, je voudrais supprimer SEULEMENT
les zones de liste (pas les boutons).
J'arrive à les lister avec le code ci-dessous, mais je ne
sais pas les mettre dans un tableau
Dim arShapes() As Variant Set mydocument = ActiveSheet With mydocument.Shapes For i = 1 To mydocument.Shapes.Count If mydocument.Shapes(i).FormControlType = xlDropDown Then
Debug.Print mydocument.Shapes(i).Name
???????? QUE FAUT-IL ECRIRE ICI POUR OBTENIR 'arShapes = Array("Drop Down 148", "Drop Down 150", "Drop Down 152")