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

Comment adapter une macro qui ne fonctionne qu'avec du texte

5 réponses
Avatar
daniel78
Bonjour,
J'essaye d'adapter une macro de "JBOISGON", qui fonctionne tr=E8s bien.
Les donn=E9es sont r=E9parties suivant le nom indiqu=E9 en colonne A
dans des onglets qui portent les dits noms.
Colonne A du 1er feuillet martin - dupont - durand
et donc 3 onglets portant ces noms.

Mais si ces donn=E9es sont des chiffres, cela ne fonctionne pas.
Le message qui m'est retourn=E9 pour plusieurs colonnes est :
Erreur 9 =3D "L'indice n'appartient pas =E0 la s=E9lection"
Comment utiliser cette macro avec des chiffres comme donn=E9es.


Macro Originale (2colonnes r=E9parties sur 3 onglets)
For Each c In Range([A2], [a65000].End(xlUp))
nf =3D c
Sheets(nf).[a65000].End(xlUp).Offset(1, 0) =3D c.Offset(0, 1).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 1) =3D c.Offset(0, 2).Value
Next c
End Sub=20


Merci pour vos r=E9ponses et bonne journ=E9e.=20
daniel

5 réponses

Avatar
lSteph
Bonjour,
A priori si on ne voit pas le but, ni ce comment tu as préalablement défini
et surtout la variable nf (? as string...as worksheet ? ou variant)
mais on devine ce qui coince,
Si nf=c en début de boucle tu dois vouloir y stocker le nom de la feuille or
si c'est un numéro,
selon plusieurs hypothèses vraisemblables
soit il ne correpond pas à un nom de feuille,
soit il ne correpond pas à un numéro de feuille,
soit il demeure ambigu!
Donc arrivé à Sheets(nf).[......cela coince

LSteph
(Rien à voir avec la question détail très rarement important 65536 et non
65000)


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

Bonjour,
J'essaye d'adapter une macro de "JBOISGON", qui fonctionne très bien.
Les données sont réparties suivant le nom indiqué en colonne A
dans des onglets qui portent les dits noms.
Colonne A du 1er feuillet martin - dupont - durand
et donc 3 onglets portant ces noms.

Mais si ces données sont des chiffres, cela ne fonctionne pas.
Le message qui m'est retourné pour plusieurs colonnes est :
Erreur 9 = "L'indice n'appartient pas à la sélection"
Comment utiliser cette macro avec des chiffres comme données.


Macro Originale (2colonnes réparties sur 3 onglets)
For Each c In Range([A2], [a65000].End(xlUp))
nf = c
Sheets(nf).[a65000].End(xlUp).Offset(1, 0) = c.Offset(0, 1).Value
Sheets(nf).[a65000].End(xlUp).Offset(0, 1) = c.Offset(0, 2).Value
Next c
End Sub


Merci pour vos réponses et bonne journée.
daniel
Avatar
daniel
bonsoir,
Comme je l'ai dis, c'est une macro originale qui fonctionne très bien, et
qui est recopée dans sa totalité.
J'essaye d'adapter une macro de "JBOISGON", qui fonctionne très bien.
Les données sont réparties suivant le nom indiqué en colonne A
dans des onglets qui portent les dits noms.
Colonne A du 1er feuillet martin - dupont - durand
et donc 3 onglets portant ces noms.


Si les données en colonne A sont 1000 - 2000 - 3000, et les onglets avec
les mêmes noms, là, ça ne fonctionne pas.


En fin de compte, le problème vient du fait que ce sont des chiffres qui se
trouve en colonne A, et excel ne semble pas reconnaître les noms des
onglets, pourtant identique.
Erreur 9 = "L'indice n'appartient pas à la sélection"

Si nf=c en début de boucle tu dois vouloir y stocker le nom de la feuille
or si c'est un numéro,
selon plusieurs hypothèses vraisemblables
soit il ne correpond pas à un nom de feuille, Si Si soit
il ne correpond pas à un numéro de feuille, Non
soit il demeure ambigu! pourquoi ambigu ???? je ne sais pas
comment ça peut arriver (novice).
Donc arrivé à Sheets(nf).[......cela coince
Oui, c'est là !!


Je pense qu'il faudrait convertir les chiffres en texte, en VBA ou quelque
chose comme ça, que je ne sais pas faire.
Peut-être en définissant le nf en variant ?? Je testerai ça, mais je reste à
l'écoute de toute proposition, voir même d'une macro complètement modifiée.
bonne soirée et a +

Avatar
lSteph
Bonsoir Daniel,
S'agissant d'une macro de "JBoigon" je ne mets nullement en doute que
l'original fonctionne parfaitement "dans son contexte",
aussi si je puis me permettre il n'est pas forcément, selon l'adaptation
faite, dû au hasard que la macro s'arrête précisément à l'endroit où je t'ai
indiqué.
Quand on définit des variables il est aussi parfois , selon le cas
nécessaire ou fastidieux de les typer, j'en conviens.
Quoiqu'il en soit la Feuille numéro "n" ne représente pas nécessairement la
même que la feuille nommée "n".
En attendant le cas échéant retour de JB pour te fournir himself une
explication plus précise et détaillée je m'en vais croquer
un morceau avec ma petite famille.

A défaut je reviens tout à l'heure sauf si d'autres ("allez les autres
remuez vous un peu pour aider Daniel").

Amicalement.

lSteph



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

bonsoir,
Comme je l'ai dis, c'est une macro originale qui fonctionne très bien, et
qui est recopée dans sa totalité.
J'essaye d'adapter une macro de "JBOISGON", qui fonctionne très bien.
Les données sont réparties suivant le nom indiqué en colonne A
dans des onglets qui portent les dits noms.
Colonne A du 1er feuillet martin - dupont - durand
et donc 3 onglets portant ces noms.


Si les données en colonne A sont 1000 - 2000 - 3000, et les onglets avec
les mêmes noms, là, ça ne fonctionne pas.


En fin de compte, le problème vient du fait que ce sont des chiffres qui
se trouve en colonne A, et excel ne semble pas reconnaître les noms des
onglets, pourtant identique.
Erreur 9 = "L'indice n'appartient pas à la sélection"

Si nf=c en début de boucle tu dois vouloir y stocker le nom de la feuille
or si c'est un numéro,
selon plusieurs hypothèses vraisemblables
soit il ne correpond pas à un nom de feuille, Si Si soit
il ne correpond pas à un numéro de feuille, Non
soit il demeure ambigu! pourquoi ambigu ???? je ne sais pas
comment ça peut arriver (novice).
Donc arrivé à Sheets(nf).[......cela coince
Oui, c'est là !!


Je pense qu'il faudrait convertir les chiffres en texte, en VBA ou quelque
chose comme ça, que je ne sais pas faire.
Peut-être en définissant le nf en variant ?? Je testerai ça, mais je reste
à l'écoute de toute proposition, voir même d'une macro complètement
modifiée.
bonne soirée et a +




Avatar
daniel
Bonsoir lSteph,
Comme suite et fin à ma demande, il suffit d'indiquer nf = CStr()c au
lieu de nf = c, et là ça marche.
bonne soirée et merci pour tes interventions.
Daniel



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

Bonsoir Daniel,
S'agissant d'une macro de "JBoigon" je ne mets nullement en doute que
l'original fonctionne parfaitement "dans son contexte",
aussi si je puis me permettre il n'est pas forcément, selon l'adaptation
faite, dû au hasard que la macro s'arrête précisément à l'endroit où je
t'ai indiqué.
Quand on définit des variables il est aussi parfois , selon le cas
nécessaire ou fastidieux de les typer, j'en conviens.
Quoiqu'il en soit la Feuille numéro "n" ne représente pas nécessairement
la même que la feuille nommée "n".
En attendant le cas échéant retour de JB pour te fournir himself une
explication plus précise et détaillée je m'en vais croquer
un morceau avec ma petite famille.

A défaut je reviens tout à l'heure sauf si d'autres ("allez les autres
remuez vous un peu pour aider Daniel").

Amicalement.

lSteph



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

bonsoir,
Comme je l'ai dis, c'est une macro originale qui fonctionne très bien, et
qui est recopée dans sa totalité.
J'essaye d'adapter une macro de "JBOISGON", qui fonctionne très bien.
Les données sont réparties suivant le nom indiqué en colonne A
dans des onglets qui portent les dits noms.
Colonne A du 1er feuillet martin - dupont - durand
et donc 3 onglets portant ces noms.


Si les données en colonne A sont 1000 - 2000 - 3000, et les onglets avec
les mêmes noms, là, ça ne fonctionne pas.


En fin de compte, le problème vient du fait que ce sont des chiffres qui
se trouve en colonne A, et excel ne semble pas reconnaître les noms des
onglets, pourtant identique.
Erreur 9 = "L'indice n'appartient pas à la sélection"

Si nf=c en début de boucle tu dois vouloir y stocker le nom de la
feuille or si c'est un numéro,
selon plusieurs hypothèses vraisemblables
soit il ne correpond pas à un nom de feuille, Si Si soit
il ne correpond pas à un numéro de feuille, Non
soit il demeure ambigu! pourquoi ambigu ???? je ne sais pas
comment ça peut arriver (novice).
Donc arrivé à Sheets(nf).[......cela coince
Oui, c'est là !!


Je pense qu'il faudrait convertir les chiffres en texte, en VBA ou
quelque chose comme ça, que je ne sais pas faire.
Peut-être en définissant le nf en variant ?? Je testerai ça, mais je
reste à l'écoute de toute proposition, voir même d'une macro complètement
modifiée.
bonne soirée et a +








Avatar
lSteph
Bosoir,
Et bien tu vois ce n'était pas le fait du hasard mais bien de considérer un
nom ou un numéro de feuille
Cela dit , c'est bien d'avoir trouvé un contournement.

Ce fut un plaisir.

lSteph


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

Bonsoir lSteph,
Comme suite et fin à ma demande, il suffit d'indiquer nf = CStr()c au
lieu de nf = c, et là ça marche.
bonne soirée et merci pour tes interventions.
Daniel



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

Bonsoir Daniel,
S'agissant d'une macro de "JBoigon" je ne mets nullement en doute que
l'original fonctionne parfaitement "dans son contexte",
aussi si je puis me permettre il n'est pas forcément, selon l'adaptation
faite, dû au hasard que la macro s'arrête précisément à l'endroit où je
t'ai indiqué.
Quand on définit des variables il est aussi parfois , selon le cas
nécessaire ou fastidieux de les typer, j'en conviens.
Quoiqu'il en soit la Feuille numéro "n" ne représente pas nécessairement
la même que la feuille nommée "n".
En attendant le cas échéant retour de JB pour te fournir himself une
explication plus précise et détaillée je m'en vais croquer
un morceau avec ma petite famille.

A défaut je reviens tout à l'heure sauf si d'autres ("allez les autres
remuez vous un peu pour aider Daniel").

Amicalement.

lSteph



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

bonsoir,
Comme je l'ai dis, c'est une macro originale qui fonctionne très bien,
et qui est recopée dans sa totalité.
J'essaye d'adapter une macro de "JBOISGON", qui fonctionne très bien.
Les données sont réparties suivant le nom indiqué en colonne A
dans des onglets qui portent les dits noms.
Colonne A du 1er feuillet martin - dupont - durand
et donc 3 onglets portant ces noms.


Si les données en colonne A sont 1000 - 2000 - 3000, et les onglets
avec les mêmes noms, là, ça ne fonctionne pas.


En fin de compte, le problème vient du fait que ce sont des chiffres qui
se trouve en colonne A, et excel ne semble pas reconnaître les noms des
onglets, pourtant identique.
Erreur 9 = "L'indice n'appartient pas à la sélection"

Si nf=c en début de boucle tu dois vouloir y stocker le nom de la
feuille or si c'est un numéro,
selon plusieurs hypothèses vraisemblables
soit il ne correpond pas à un nom de feuille, Si Si
soit il ne correpond pas à un numéro de feuille, Non
soit il demeure ambigu! pourquoi ambigu ???? je ne sais pas
comment ça peut arriver (novice).
Donc arrivé à Sheets(nf).[......cela coince
Oui, c'est là !!


Je pense qu'il faudrait convertir les chiffres en texte, en VBA ou
quelque chose comme ça, que je ne sais pas faire.
Peut-être en définissant le nf en variant ?? Je testerai ça, mais je
reste à l'écoute de toute proposition, voir même d'une macro
complètement modifiée.
bonne soirée et a +