Casse tête Chinois Excel
Fermé
nicoatlante
-
9 nov. 2010 à 10:56
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 9 nov. 2010 à 19:53
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 9 nov. 2010 à 19:53
A voir également:
- Casse tête Chinois Excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
7 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
Modifié par Vaucluse le 9/11/2010 à 15:32
Modifié par Vaucluse le 9/11/2010 à 15:32
Rebonjour
avant de parler de VBA qui semble bien compliqué pour ce cas,ou d'une adresse Mail, ci joint un modéle de ce que je vous proposais au début de la discussion, et qui vous à probablement échappé
(INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0))
Crdlmnt
Ça peut être intéressant Anonymous, mais le fichier est où?
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
avant de parler de VBA qui semble bien compliqué pour ce cas,ou d'une adresse Mail, ci joint un modéle de ce que je vous proposais au début de la discussion, et qui vous à probablement échappé
(INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0))
Crdlmnt
Ça peut être intéressant Anonymous, mais le fichier est où?
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
Modifié par Vaucluse le 9/11/2010 à 12:55
Modifié par Vaucluse le 9/11/2010 à 12:55
Bonjour
conforme à votre tableau placez en A28 à tirez sur tout le tableau:
=INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0))
à condition que votre tableau reste bien à, la même place, sinon, ajustez COLONNE()-1 pour que la valeur en A28 soit égale à 1 (soit N° de colonne dans la feuille-X=1)
crdlmnt
Ps
vous aurez les mêmes parasites d'affichage , soit #NA lorsque le rang n'est pas affiché dans le tableau 1
vous pouvez éliminer le défaut avec:
=SI(ESTERREUR(INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0)) ;"";INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0)))
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
conforme à votre tableau placez en A28 à tirez sur tout le tableau:
=INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0))
à condition que votre tableau reste bien à, la même place, sinon, ajustez COLONNE()-1 pour que la valeur en A28 soit égale à 1 (soit N° de colonne dans la feuille-X=1)
crdlmnt
Ps
vous aurez les mêmes parasites d'affichage , soit #NA lorsque le rang n'est pas affiché dans le tableau 1
vous pouvez éliminer le défaut avec:
=SI(ESTERREUR(INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0)) ;"";INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0)))
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
J'ai créé le programme VBA qui va bien. Donne moi ton adresse mail que je t'envoie tout ca et que je t'explique
Bonjour,
Merci pour la réponse.
C'est pour le boulot et je n'ai pas accès à Hotmail depuis mon poste.
Peux-tu tout m'expliquer via le forum ou me donner ta réponse en chargeant le fichier qui va bien sur http://www.cijoint.fr/
Merci d'avance,
Cdt,
Merci pour la réponse.
C'est pour le boulot et je n'ai pas accès à Hotmail depuis mon poste.
Peux-tu tout m'expliquer via le forum ou me donner ta réponse en chargeant le fichier qui va bien sur http://www.cijoint.fr/
Merci d'avance,
Cdt,
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 311
9 nov. 2010 à 16:39
9 nov. 2010 à 16:39
Bonjour,
Excusez l'incruste
La solution proposée par Vaucluse est indiscutablement la plus adaptée au problème.Il est inutile d'utiliser VBA surtout avec le code présenté ...
Excusez l'incruste
La solution proposée par Vaucluse est indiscutablement la plus adaptée au problème.Il est inutile d'utiliser VBA surtout avec le code présenté ...
Bonsoir,
Merci Vaucluse pour ta réponse.
Ca me simplifie la vie, tu imagines pas.
Par contre, je n'ai jamais utilisé ce genre de formules.
Ca te dérangerait de m'expliquer le tout.
Merci encore en tout cas.
Merci Vaucluse pour ta réponse.
Ca me simplifie la vie, tu imagines pas.
Par contre, je n'ai jamais utilisé ce genre de formules.
Ca te dérangerait de m'expliquer le tout.
Merci encore en tout cas.
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
9 nov. 2010 à 19:53
9 nov. 2010 à 19:53
Bonsoir explications,( du moins j'espère)
=INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0))
=INDEX(CHAMP;LIGNE;COLONNE)
ressort la valeur du champ dans la cellule dont la ligne est indiquée par le nombre LIGNE et la colonne par le nombre COLONNE
par exemple:
INDEX(A2:Z100;10;5) va ressortir la valeur dans la 10° ligne du champ et dans la cinquième colonne
EQUIV(VALEUR;champ ligne ou colonne;0)
ressort la position (N°) de ligne ou colonne) de la valeur cherchée dans le champ ligne ou colonne (une seule ligne ou colonne)
Nota: toutes ces références lignes et colonnes sont à considérer dans le champ, pas dans la feuille
(ex: la première colonne d'un champ X2:Z1000 est la colonne X)
La formule complète demande donc:
_De chercher dans le champ B1:H1 > INDEX($B$1:$H$1
_sur la première ligne ;1;
_et dans la colonne dont le rang est défini par:
EQUIV(COLONNE()-1;
dans le champ $B2:$H2;
le 0 est un code excel qui exige une valeur exacte et non une valeur proche.
car la valeur cherchée étant le rang 1dans la première colonne du tableau 2 dans la 2° etc
COLONNE() renvoi le N° de colonne (de la feuille cette fois) _colonne A =1 colonne B=2 etc...
ce qui permet donc de faire 1 avec COLONNE()-1 en B et ensuite d'incrémenter automatiquement en 2,3 4
La condition dans la formule complète évite l'affichage #NA lorsque les données cherchées b$^ne sont pas trouvé, la formule étant la même dans les deux items.
Lorsque la formule est tirée vers la gauche, les champs ne bougent pas, mais la valeur colonne()-1 s'incrémente de 1 à chaque pas
Lorsqu'elle est tirée vers le bas, la valeur COLONNE()-1 ne change pas, le champ B1:H1 non plus,seuls les N° de ligne du champ B2:H2 sont incrémenté pour correspondre à, la liste du 1° tableau.
Un peu long, j'espère avoir été clair mais je n'en suis vraiment pas sur!:-(
Pour éclaircir et comprendre, vous pouvez tester les items un par un dans un exemple:
=INDEX(Champ;ligne;colonne)
=EQUIV(Valeur;champ;0)
=COLONNE()
bonne soirée
Crdlmnt
=INDEX($B$1:$H$1;1;EQUIV(COLONNE()-1;$B2:$H2;0))
=INDEX(CHAMP;LIGNE;COLONNE)
ressort la valeur du champ dans la cellule dont la ligne est indiquée par le nombre LIGNE et la colonne par le nombre COLONNE
par exemple:
INDEX(A2:Z100;10;5) va ressortir la valeur dans la 10° ligne du champ et dans la cinquième colonne
EQUIV(VALEUR;champ ligne ou colonne;0)
ressort la position (N°) de ligne ou colonne) de la valeur cherchée dans le champ ligne ou colonne (une seule ligne ou colonne)
Nota: toutes ces références lignes et colonnes sont à considérer dans le champ, pas dans la feuille
(ex: la première colonne d'un champ X2:Z1000 est la colonne X)
La formule complète demande donc:
_De chercher dans le champ B1:H1 > INDEX($B$1:$H$1
_sur la première ligne ;1;
_et dans la colonne dont le rang est défini par:
EQUIV(COLONNE()-1;
dans le champ $B2:$H2;
le 0 est un code excel qui exige une valeur exacte et non une valeur proche.
car la valeur cherchée étant le rang 1dans la première colonne du tableau 2 dans la 2° etc
COLONNE() renvoi le N° de colonne (de la feuille cette fois) _colonne A =1 colonne B=2 etc...
ce qui permet donc de faire 1 avec COLONNE()-1 en B et ensuite d'incrémenter automatiquement en 2,3 4
La condition dans la formule complète évite l'affichage #NA lorsque les données cherchées b$^ne sont pas trouvé, la formule étant la même dans les deux items.
Lorsque la formule est tirée vers la gauche, les champs ne bougent pas, mais la valeur colonne()-1 s'incrémente de 1 à chaque pas
Lorsqu'elle est tirée vers le bas, la valeur COLONNE()-1 ne change pas, le champ B1:H1 non plus,seuls les N° de ligne du champ B2:H2 sont incrémenté pour correspondre à, la liste du 1° tableau.
Un peu long, j'espère avoir été clair mais je n'en suis vraiment pas sur!:-(
Pour éclaircir et comprendre, vous pouvez tester les items un par un dans un exemple:
=INDEX(Champ;ligne;colonne)
=EQUIV(Valeur;champ;0)
=COLONNE()
bonne soirée
Crdlmnt
9 nov. 2010 à 15:49
http://www.cijoint.fr/cjlink.php?file=cj201011/ciju7zKXlo.xls
c'est une autre technique que tu as utilisée. Le VBA est pour moi plus facile.