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

Ecrire correctement un array

12 réponses
Avatar
manbas
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?

2 réponses

1 2
Avatar
FS
OK. Je vois que tu as trouvé une solution avec Denis.

> L'objectif est de selectionner les shapes page par page pour les
> copier dans powerpoint slide par slide.

Ceci dit, dit comme ça, j'ai l'impression que tu te compliquerais moins
la vie si ton classeur avait 4 feuilles donc 4 pages, une par "slide".

Sheets("nomdelefeuille").Shapes.SelectAll

te permettrait dans chaque feuille de copier très simplement les shapes
nécessaires.

Mais je n'ai certainement pas tous les éléments de ton projet...

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

manbas a écrit :
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?







Avatar
manbas
C'est effectivement la solution vers laquelle je m'orientais avant la
solution de Denis, mais elle a d'autres inconvénients en terme d'ergonomie.
Merci encore
Bonne journée


"FS" a écrit dans le message de
news:%
OK. Je vois que tu as trouvé une solution avec Denis.

> L'objectif est de selectionner les shapes page par page pour les
> copier dans powerpoint slide par slide.

Ceci dit, dit comme ça, j'ai l'impression que tu te compliquerais moins la
vie si ton classeur avait 4 feuilles donc 4 pages, une par "slide".

Sheets("nomdelefeuille").Shapes.SelectAll

te permettrait dans chaque feuille de copier très simplement les shapes
nécessaires.

Mais je n'ai certainement pas tous les éléments de ton projet...

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

manbas a écrit :
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?









1 2