Bonjour
Toujours en echec sur un probleme de selection de shapes présents dans une
feuille (en sélectionner certaines et pas toutes), je rencontre une
difficulté d'écriture avec array. Les solutions qui me permettraient
d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la
concaténation des noms des formes à sélectionner obtenue par macro, exemple
: rect1, fl1
N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1
N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1
resultBis = N1 & ", " & N2
ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais
inutilisable car ré-écriture macro
ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a
pas de guillemets dans l'écriture, mais inutilisable car limite a priori le
nombre de formes
ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas
ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pour sélectionner toutes les Shapes dont les noms apparaissent dans la plage A1:Ax de la "Feuil1"
Dans la liste, il ne doit pas y avoir des contrôles qui émanent de la barre d'outils "Formulaire" ou "Contrôles.
'------------------------------------------- Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '-------------------------------------------
"manbas" a écrit dans le message de groupe de discussion : ## Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
Bonjour,
Pour sélectionner toutes les Shapes dont les noms
apparaissent dans la plage A1:Ax de la "Feuil1"
Dans la liste, il ne doit pas y avoir des contrôles qui
émanent de la barre d'outils "Formulaire" ou "Contrôles.
'-------------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Arr()
With Worksheets("Feuil1")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = .Rows.Count
ReDim Arr(1 To X)
For A = 1 To X
Arr(A) = Range("A" & A)
Next
End With
.Shapes.Range(Arr).Select
End With
End Sub
'-------------------------------------------
"manbas" <nospam-j.ragni@wanadoo.fr> a écrit dans le message de groupe de discussion :
##q9excOKHA.1876@TK2MSFTNGP06.phx.gbl...
Bonjour
Toujours en echec sur un probleme de selection de shapes présents dans une
feuille (en sélectionner certaines et pas toutes), je rencontre une
difficulté d'écriture avec array. Les solutions qui me permettraient
d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la
concaténation des noms des formes à sélectionner obtenue par macro, exemple
: rect1, fl1
N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1
N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1
resultBis = N1 & ", " & N2
ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais
inutilisable car ré-écriture macro
ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a
pas de guillemets dans l'écriture, mais inutilisable car limite a priori le
nombre de formes
ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas
ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pour sélectionner toutes les Shapes dont les noms apparaissent dans la plage A1:Ax de la "Feuil1"
Dans la liste, il ne doit pas y avoir des contrôles qui émanent de la barre d'outils "Formulaire" ou "Contrôles.
'------------------------------------------- Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '-------------------------------------------
"manbas" a écrit dans le message de groupe de discussion : ## Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
manbas
Merci Michdenis. Comme tu vois je suis toujours sur le même sujet. Les formes sont des formes automatiques crées à partir de la BO Dessin, au travers de commandes VBA (cf classeur cjoint) Le code est en échec sur .Shapes.Range(Arr).Select avec le message Erreur d'execution 1004: l'index de cette collection est en dehors des limites. Moi j'ai p'u d'idées !
"michdenis" a écrit dans le message de news:
Bonjour,
Pour sélectionner toutes les Shapes dont les noms apparaissent dans la plage A1:Ax de la "Feuil1"
Dans la liste, il ne doit pas y avoir des contrôles qui émanent de la barre d'outils "Formulaire" ou "Contrôles.
'------------------------------------------- Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '-------------------------------------------
"manbas" a écrit dans le message de groupe de discussion : ## Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
Merci Michdenis. Comme tu vois je suis toujours sur le même sujet.
Les formes sont des formes automatiques crées à partir de la BO Dessin, au
travers de commandes VBA (cf classeur cjoint)
Le code est en échec sur .Shapes.Range(Arr).Select
avec le message Erreur d'execution 1004: l'index de cette collection est en
dehors des limites.
Moi j'ai p'u d'idées !
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:78A1A6BE-9553-46BB-BBBB-D8321EC067B0@microsoft.com...
Bonjour,
Pour sélectionner toutes les Shapes dont les noms
apparaissent dans la plage A1:Ax de la "Feuil1"
Dans la liste, il ne doit pas y avoir des contrôles qui
émanent de la barre d'outils "Formulaire" ou "Contrôles.
'-------------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Arr()
With Worksheets("Feuil1")
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = .Rows.Count
ReDim Arr(1 To X)
For A = 1 To X
Arr(A) = Range("A" & A)
Next
End With
.Shapes.Range(Arr).Select
End With
End Sub
'-------------------------------------------
"manbas" <nospam-j.ragni@wanadoo.fr> a écrit dans le message de groupe de
discussion :
##q9excOKHA.1876@TK2MSFTNGP06.phx.gbl...
Bonjour
Toujours en echec sur un probleme de selection de shapes présents dans une
feuille (en sélectionner certaines et pas toutes), je rencontre une
difficulté d'écriture avec array. Les solutions qui me permettraient
d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est
la
concaténation des noms des formes à sélectionner obtenue par macro,
exemple
: rect1, fl1
N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1
N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1
resultBis = N1 & ", " & N2
ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais
inutilisable car ré-écriture macro
ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y
a
pas de guillemets dans l'écriture, mais inutilisable car limite a priori
le
nombre de formes
ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas
ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Merci Michdenis. Comme tu vois je suis toujours sur le même sujet. Les formes sont des formes automatiques crées à partir de la BO Dessin, au travers de commandes VBA (cf classeur cjoint) Le code est en échec sur .Shapes.Range(Arr).Select avec le message Erreur d'execution 1004: l'index de cette collection est en dehors des limites. Moi j'ai p'u d'idées !
"michdenis" a écrit dans le message de news:
Bonjour,
Pour sélectionner toutes les Shapes dont les noms apparaissent dans la plage A1:Ax de la "Feuil1"
Dans la liste, il ne doit pas y avoir des contrôles qui émanent de la barre d'outils "Formulaire" ou "Contrôles.
'------------------------------------------- Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '-------------------------------------------
"manbas" a écrit dans le message de groupe de discussion : ## Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
michdenis
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
Si tu as mis le code dans un module standard,
la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci :
La ligne : .Activate pour en être sûr !
'------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Arr()
With Worksheets("Feuil1")
.Activate
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = .Rows.Count
ReDim Arr(1 To X)
For A = 1 To X
Arr(A) = Range("A" & A)
Next
End With
.Shapes.Range(Arr).Select
End With
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
manbas
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" a écrit dans le message de news:
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:C1DA416F-95B1-45C6-AAFD-5640887C8D2C@microsoft.com...
Si tu as mis le code dans un module standard,
la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci :
La ligne : .Activate pour en être sûr !
'------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Arr()
With Worksheets("Feuil1")
.Activate
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = .Rows.Count
ReDim Arr(1 To X)
For A = 1 To X
Arr(A) = Range("A" & A)
Next
End With
.Shapes.Range(Arr).Select
End With
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" a écrit dans le message de news:
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
michdenis
fichier exemple : http://cjoint.com/?jutbfRaV0B
"manbas" a écrit dans le message de groupe de discussion :
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" a écrit dans le message de news:
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
fichier exemple : http://cjoint.com/?jutbfRaV0B
"manbas" <nospam-j.ragni@wanadoo.fr> a écrit dans le message de groupe de discussion :
u7TnfLhOKHA.4700@TK2MSFTNGP05.phx.gbl...
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:C1DA416F-95B1-45C6-AAFD-5640887C8D2C@microsoft.com...
Si tu as mis le code dans un module standard,
la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci :
La ligne : .Activate pour en être sûr !
'------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Arr()
With Worksheets("Feuil1")
.Activate
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = .Rows.Count
ReDim Arr(1 To X)
For A = 1 To X
Arr(A) = Range("A" & A)
Next
End With
.Shapes.Range(Arr).Select
End With
"manbas" a écrit dans le message de groupe de discussion :
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" a écrit dans le message de news:
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
FS
Bonsoir,
Si tu travailles toujours sur le classeur dont tu avais envoyé un exemplaire sur cjoint le 19/9 à 17h05, je trouve 29 formes sur la feuille 1 (Chronologie) avec des noms du style D1-F1, D2-F2 etc. et d'autres plus exotiques (AutoShape 241 par exemple). Selon quels critères veux-tu en "sélectionner certaines et pas toutes" ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
manbas a écrit :
Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
Bonsoir,
Si tu travailles toujours sur le classeur dont tu avais envoyé un
exemplaire sur cjoint le 19/9 à 17h05, je trouve 29 formes sur la
feuille 1 (Chronologie) avec des noms du style D1-F1, D2-F2 etc. et
d'autres plus exotiques (AutoShape 241 par exemple).
Selon quels critères veux-tu en "sélectionner certaines et pas toutes" ?
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
manbas a écrit :
Bonjour
Toujours en echec sur un probleme de selection de shapes présents dans
une feuille (en sélectionner certaines et pas toutes), je rencontre une
difficulté d'écriture avec array. Les solutions qui me permettraient
d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui
est la concaténation des noms des formes à sélectionner obtenue par
macro, exemple : rect1, fl1
N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1
N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1
resultBis = N1 & ", " & N2
ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais
inutilisable car ré-écriture macro
ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il
n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a
priori le nombre de formes
ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas
ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Si tu travailles toujours sur le classeur dont tu avais envoyé un exemplaire sur cjoint le 19/9 à 17h05, je trouve 29 formes sur la feuille 1 (Chronologie) avec des noms du style D1-F1, D2-F2 etc. et d'autres plus exotiques (AutoShape 241 par exemple). Selon quels critères veux-tu en "sélectionner certaines et pas toutes" ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
manbas a écrit :
Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
manbas
Merci pour tout MichDenis Sur ma feuille il y a une majorité de zones de texte, qui ne sont pas sélectionnées par ce code!! Les zones de texte ne semblent pas être des shapes comme les autres. Je vais repenser ma feuille en tenant compte de ça.
"michdenis" a écrit dans le message de news:
fichier exemple : http://cjoint.com/?jutbfRaV0B
"manbas" a écrit dans le message de groupe de discussion :
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" a écrit dans le message de news:
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
Merci pour tout MichDenis
Sur ma feuille il y a une majorité de zones de texte, qui ne sont pas
sélectionnées par ce code!! Les zones de texte ne semblent pas être des
shapes comme les autres.
Je vais repenser ma feuille en tenant compte de ça.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:F2AFE76D-C054-43FA-A3F6-CA42B2124B63@microsoft.com...
fichier exemple : http://cjoint.com/?jutbfRaV0B
"manbas" <nospam-j.ragni@wanadoo.fr> a écrit dans le message de groupe de
discussion :
u7TnfLhOKHA.4700@TK2MSFTNGP05.phx.gbl...
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:C1DA416F-95B1-45C6-AAFD-5640887C8D2C@microsoft.com...
Si tu as mis le code dans un module standard,
la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci :
La ligne : .Activate pour en être sûr !
'------------------------------------
Sub test()
Dim A As Integer, X As Integer
Dim Arr()
With Worksheets("Feuil1")
.Activate
With .Range("A1:A" & .Range("A65536").End(xlUp).Row)
X = .Rows.Count
ReDim Arr(1 To X)
For A = 1 To X
Arr(A) = Range("A" & A)
Next
End With
.Shapes.Range(Arr).Select
End With
Merci pour tout MichDenis Sur ma feuille il y a une majorité de zones de texte, qui ne sont pas sélectionnées par ce code!! Les zones de texte ne semblent pas être des shapes comme les autres. Je vais repenser ma feuille en tenant compte de ça.
"michdenis" a écrit dans le message de news:
fichier exemple : http://cjoint.com/?jutbfRaV0B
"manbas" a écrit dans le message de groupe de discussion :
Pas mieux, malheureusement. Même en élargissant la plage A1:AP...
"michdenis" a écrit dans le message de news:
Si tu as mis le code dans un module standard, la feuille active doit être la feuille où tu as tes shapes.
Tu peux simplement ajouter à la macro ceci : La ligne : .Activate pour en être sûr !
'------------------------------------ Sub test() Dim A As Integer, X As Integer Dim Arr()
With Worksheets("Feuil1") .Activate With .Range("A1:A" & .Range("A65536").End(xlUp).Row) X = .Rows.Count ReDim Arr(1 To X) For A = 1 To X Arr(A) = Range("A" & A) Next End With .Shapes.Range(Arr).Select End With
End Sub '------------------------------------
manbas
Bonsoir Frederic Merci de jeter un oeil sur mes problemes. En effet je travaille toujours dessus. Les shapes D correspondent aux zones de texte, et les F correspondent aux connecteurs. Les 241 & co sont les accolades que j'ai rajouté pour MichDenis, afin de differencier les résultats obtenus avec le même code dans 2003 et 2007 (celles-ci ne sont pas des shapes obtenues par macro) La feuille est divisée globalement en 4 pages au format paysage, délimitées par les colonnes bleues. L'objectif est de selectionner les shapes page par page pour les copier dans powerpoint slide par slide.
"FS" a écrit dans le message de news:
Bonsoir,
Si tu travailles toujours sur le classeur dont tu avais envoyé un exemplaire sur cjoint le 19/9 à 17h05, je trouve 29 formes sur la feuille 1 (Chronologie) avec des noms du style D1-F1, D2-F2 etc. et d'autres plus exotiques (AutoShape 241 par exemple). Selon quels critères veux-tu en "sélectionner certaines et pas toutes" ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
manbas a écrit :
Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
Bonsoir Frederic
Merci de jeter un oeil sur mes problemes.
En effet je travaille toujours dessus.
Les shapes D correspondent aux zones de texte, et les F correspondent aux
connecteurs. Les 241 & co sont les accolades que j'ai rajouté pour
MichDenis, afin de differencier les résultats obtenus avec le même code dans
2003 et 2007 (celles-ci ne sont pas des shapes obtenues par macro)
La feuille est divisée globalement en 4 pages au format paysage, délimitées
par les colonnes bleues.
L'objectif est de selectionner les shapes page par page pour les copier dans
powerpoint slide par slide.
"FS" <fs@news.group> a écrit dans le message de
news:O9ThfShOKHA.5108@TK2MSFTNGP02.phx.gbl...
Bonsoir,
Si tu travailles toujours sur le classeur dont tu avais envoyé un
exemplaire sur cjoint le 19/9 à 17h05, je trouve 29 formes sur la feuille
1 (Chronologie) avec des noms du style D1-F1, D2-F2 etc. et d'autres plus
exotiques (AutoShape 241 par exemple).
Selon quels critères veux-tu en "sélectionner certaines et pas toutes" ?
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
manbas a écrit :
Bonjour
Toujours en echec sur un probleme de selection de shapes présents dans
une feuille (en sélectionner certaines et pas toutes), je rencontre une
difficulté d'écriture avec array. Les solutions qui me permettraient
d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est
la concaténation des noms des formes à sélectionner obtenue par macro,
exemple : rect1, fl1
N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1
N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1
resultBis = N1 & ", " & N2
ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais
inutilisable car ré-écriture macro
ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il
n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a
priori le nombre de formes
ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas
ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Bonsoir Frederic Merci de jeter un oeil sur mes problemes. En effet je travaille toujours dessus. Les shapes D correspondent aux zones de texte, et les F correspondent aux connecteurs. Les 241 & co sont les accolades que j'ai rajouté pour MichDenis, afin de differencier les résultats obtenus avec le même code dans 2003 et 2007 (celles-ci ne sont pas des shapes obtenues par macro) La feuille est divisée globalement en 4 pages au format paysage, délimitées par les colonnes bleues. L'objectif est de selectionner les shapes page par page pour les copier dans powerpoint slide par slide.
"FS" a écrit dans le message de news:
Bonsoir,
Si tu travailles toujours sur le classeur dont tu avais envoyé un exemplaire sur cjoint le 19/9 à 17h05, je trouve 29 formes sur la feuille 1 (Chronologie) avec des noms du style D1-F1, D2-F2 etc. et d'autres plus exotiques (AutoShape 241 par exemple). Selon quels critères veux-tu en "sélectionner certaines et pas toutes" ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
manbas a écrit :
Bonjour Toujours en echec sur un probleme de selection de shapes présents dans une feuille (en sélectionner certaines et pas toutes), je rencontre une difficulté d'écriture avec array. Les solutions qui me permettraient d'écrire une macro pérenne ne marchent pas.
result = [A1].Value 'cellule A1 contient la chaine de caractères, qui est la concaténation des noms des formes à sélectionner obtenue par macro, exemple : rect1, fl1 N1 = [B1].Value ' B1 contient le nom de la première forme, exemple: rect1 N2 = [B2].Value ' B2 contient le nom de la deuxième forme, exemple: fl1 resultBis = N1 & ", " & N2 ActiveSheet.Shapes.Range(Array("rect1", "fl1")).Select 'fonctionne, mais inutilisable car ré-écriture macro ActiveSheet.Shapes.Range(Array(N1, N2)).Select 'fonctionne alors qu'il n'y a pas de guillemets dans l'écriture, mais inutilisable car limite a priori le nombre de formes ActiveSheet.Shapes.Range(Array(result)).Select 'ne fonctionne pas ActiveSheet.Shapes.Range(Array(resultBis)).Select 'ne fonctionne pas
Pouvez-vous me donner vos avis SVP?
michdenis
La procédure soumise n'a aucune difficulté à sélectionner des zones de texte. Comme déjà énoncé, ces zones de texte ne doivent pas être des contrôles "Textbox" émanant de la barre d'outils "contrôles". En Excel 2007, ces zones de texte ont par défaut : ZoneTexte 1, 1 étant l'index ... !
La procédure soumise n'a aucune difficulté à sélectionner
des zones de texte. Comme déjà énoncé, ces zones de texte
ne doivent pas être des contrôles "Textbox" émanant de la barre d'outils
"contrôles". En Excel 2007, ces zones de texte ont par défaut :
ZoneTexte 1, 1 étant l'index ... !
La procédure soumise n'a aucune difficulté à sélectionner des zones de texte. Comme déjà énoncé, ces zones de texte ne doivent pas être des contrôles "Textbox" émanant de la barre d'outils "contrôles". En Excel 2007, ces zones de texte ont par défaut : ZoneTexte 1, 1 étant l'index ... !
manbas
OK J'ai enfin compris ! (j'oubliais les espace entre les mots des shapes dans ta démo: Zonedetexte9). ça correspond tout à fait à la solution au problème de l'array qui était au départ de ce fil, donc probleme résolu. Merci beaucoup +++ A bientôt
"michdenis" a écrit dans le message de news:
La procédure soumise n'a aucune difficulté à sélectionner des zones de texte. Comme déjà énoncé, ces zones de texte ne doivent pas être des contrôles "Textbox" émanant de la barre d'outils "contrôles". En Excel 2007, ces zones de texte ont par défaut : ZoneTexte 1, 1 étant l'index ... !
OK
J'ai enfin compris ! (j'oubliais les espace entre les mots des shapes dans
ta démo: Zonedetexte9).
ça correspond tout à fait à la solution au problème de l'array qui était au
départ de ce fil, donc probleme résolu.
Merci beaucoup +++
A bientôt
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:5A739CA7-DA0F-461B-92C4-6C1F52F1C594@microsoft.com...
La procédure soumise n'a aucune difficulté à sélectionner
des zones de texte. Comme déjà énoncé, ces zones de texte
ne doivent pas être des contrôles "Textbox" émanant de la barre d'outils
"contrôles". En Excel 2007, ces zones de texte ont par défaut :
ZoneTexte 1, 1 étant l'index ... !
OK J'ai enfin compris ! (j'oubliais les espace entre les mots des shapes dans ta démo: Zonedetexte9). ça correspond tout à fait à la solution au problème de l'array qui était au départ de ce fil, donc probleme résolu. Merci beaucoup +++ A bientôt
"michdenis" a écrit dans le message de news:
La procédure soumise n'a aucune difficulté à sélectionner des zones de texte. Comme déjà énoncé, ces zones de texte ne doivent pas être des contrôles "Textbox" émanant de la barre d'outils "contrôles". En Excel 2007, ces zones de texte ont par défaut : ZoneTexte 1, 1 étant l'index ... !