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

Fonction indirecte hasardeuse

10 réponses
Avatar
Lionel
Bonjour


http://www.sendbox.fr/pro/files/3/fhts4joczzgbng/exemple.xls


dans ce fichier il y a un onglet "recapindiv" et en A2 une liste deroulante

avec nom1, ma formule foctionne et si je selectionne nom2 plus rien ne
fonctionne

ou est l'erreur?

Merci de votre aide

Lionel

10 réponses

Avatar
MichD
Bonjour,

Débutons par ceci :

Dans cette macro :
'---------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A2], Target) Is Nothing Then

end sub
'---------------------------------

Cette ligne de code est problématique :
Sheets("ParamètresCouleurs").Range("MesCouleurs")(p).Copy

Le nom de l'onglet de la feuille est "Paramètres" et non
"ParamètresCouleurs"

Le nom "MesCouleurs" représente cette plage de données :
=JANVIER13!$A$5:$Q$5
si tu veux écrire dans le module de la feuille "recapindiv" la ligne de
code,
tu devrais utiliser ceci :

Sheets("Janvier13").Range("MesCouleurs")(p).Copy

Mais pour savoir ce qui ne fonctionne pas, il faudrait savoir ce que
tu veux réussir à faire!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Si tu veux publier un fichier, utilise Cjoint.com



MichD
---------------------------------------------------------------
Avatar
Lionel
Resalut

l'onglet "RecapIndiv" est la base de mon probleme
la fonction indirect des cellules B4 AF15 fonctionne avec nom01 en A2
(liste deroulante)
c'est a dire que le tableau rappelle bien les cellules de Janvier
Fevrier..... B6:AF6
et d'ailleurs
je crois que le probleme est le 6 de B à AF car pour nom02 il faudrait que
le 6 deviennent 11...
dans =INDEX(INDIRECT($A4&"!$B6:$AF6");EQUIV($A$2;nom;0);COLONNE()-1)

cette fonction est riche mais tres complexe pour moi...

Merci pour l'aide
Lionel

"MichD" a écrit dans le message de groupe de discussion :
khcse4$nqi$

Bonjour,

Débutons par ceci :

Dans cette macro :
'---------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A2], Target) Is Nothing Then

end sub
'---------------------------------

Cette ligne de code est problématique :
Sheets("ParamètresCouleurs").Range("MesCouleurs")(p).Copy

Le nom de l'onglet de la feuille est "Paramètres" et non
"ParamètresCouleurs"

Le nom "MesCouleurs" représente cette plage de données :
=JANVIER13!$A$5:$Q$5
si tu veux écrire dans le module de la feuille "recapindiv" la ligne de
code,
tu devrais utiliser ceci :

Sheets("Janvier13").Range("MesCouleurs")(p).Copy

Mais pour savoir ce qui ne fonctionne pas, il faudrait savoir ce que
tu veux réussir à faire!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Si tu veux publier un fichier, utilise Cjoint.com



MichD
---------------------------------------------------------------
Avatar
MichD
Explique pourquoi ta macro événementielle se plante
lorsque l'on change la valeur de la liste de validation
en A2 de l'onglet "RecapIndiv"

Je n'ai pas regardé les formules, ça plante avant que la
macro finisse son travail.

MichD
---------------------------------------------------------------
Avatar
Lionel
Je ne vois pas de quelle macro tu parles....

"MichD" a écrit dans le message de groupe de discussion :
khd1om$8m4$

Explique pourquoi ta macro événementielle se plante
lorsque l'on change la valeur de la liste de validation
en A2 de l'onglet "RecapIndiv"

Je n'ai pas regardé les formules, ça plante avant que la
macro finisse son travail.

MichD
---------------------------------------------------------------
Avatar
MichD
Fais un clic droit sur l'onglet "RecapIndiv" et tu pourras
voir la macro suivante.

Attention, cette macro désactive le mode de calcul automatique
lorsque la macro plante. En conséquence, les formules ne se
mettent plus à jour!

'---------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect([A2], Target) Is Nothing Then
Application.Calculation = xlCalculationManual

'Le reste du code

End Sub
'---------------------------

MichD
---------------------------------------------------------------
Avatar
MichD
En passant, dans ta formule le nom défini "NOM"
fait référence à une plage de cellule de la feuille "CPT AN"
Si tu affiches cette feuille, tu as plein de cellules qui
affichent #Ref! Tu étais au courant?

Quelle devrait être la formule dans cette plage de cellules?


MichD
---------------------------------------------------------------
Avatar
Lionel
Ma question etait plus simple que ca !! lol

qu'est ce qui fait que pour nom01 dans recapindiv la fonction
indirect fonctionne et pourquoi si je change le nom ca ne fonctionne pas...
la fonction indirect elle n'appelle pas de macro alors pourquoi chercher
dedans...?




"MichD" a écrit dans le message de groupe de discussion :
khd9s5$1qd$

En passant, dans ta formule le nom défini "NOM"
fait référence à une plage de cellule de la feuille "CPT AN"
Si tu affiches cette feuille, tu as plein de cellules qui
affichent #Ref! Tu étais au courant?

Quelle devrait être la formule dans cette plage de cellules?


MichD
---------------------------------------------------------------
Avatar
Lionel
http://cjoint.com/?3CkoOWKjea8

je crois qu'il y a eu meprise sur ma question

revoila un fichier vierge

ce que je recherche c'est que lorsque la cellule a2 de "RecapIndiv" indique
un nom tous les planning des mois se ré affichent dans les lignes pour
nom01 en janvier13 = Janvier13!B6:AF6

j'avais essayé une formule
=INDEX(INDIRECT($A4&"!$B6:$AF6");EQUIV($A$2;nom;0);COLONNE()-1) qui
fonctionnait pour nom01 mais b6:af6 est figé donc resultat faux pour nom02
je seche pour modifier...

Merci de l'aide ...

Lionel

"Lionel" a écrit dans le message de groupe de discussion :
513b3090$0$1219$

Ma question etait plus simple que ca !! lol

qu'est ce qui fait que pour nom01 dans recapindiv la fonction
indirect fonctionne et pourquoi si je change le nom ca ne fonctionne pas...
la fonction indirect elle n'appelle pas de macro alors pourquoi chercher
dedans...?




"MichD" a écrit dans le message de groupe de discussion :
khd9s5$1qd$

En passant, dans ta formule le nom défini "NOM"
fait référence à une plage de cellule de la feuille "CPT AN"
Si tu affiches cette feuille, tu as plein de cellules qui
affichent #Ref! Tu étais au courant?

Quelle devrait être la formule dans cette plage de cellules?


MichD
---------------------------------------------------------------
Avatar
h2so4
bonsoir,

essaie ceci

=INDEX(INDIRECT($A4&"!$B6:$AF46");(EQUIV($A$2;nom;0)-1)*5+1;COLONNE()-1)

h2so4

Lionel expressed precisely :
http://cjoint.com/?3CkoOWKjea8

je crois qu'il y a eu meprise sur ma question

revoila un fichier vierge

ce que je recherche c'est que lorsque la cellule a2 de "RecapIndiv" indique
un nom tous les planning des mois se ré affichent dans les lignes pour nom01
en janvier13 = Janvier13!B6:AF6

j'avais essayé une formule
=INDEX(INDIRECT($A4&"!$B6:$AF6");EQUIV($A$2;nom;0);COLONNE()-1) qui
fonctionnait pour nom01 mais b6:af6 est figé donc resultat faux pour nom02
je seche pour modifier...

Merci de l'aide ...

Lionel

"Lionel" a écrit dans le message de groupe de discussion :
513b3090$0$1219$

Ma question etait plus simple que ca !! lol

qu'est ce qui fait que pour nom01 dans recapindiv la fonction
indirect fonctionne et pourquoi si je change le nom ca ne fonctionne pas...
la fonction indirect elle n'appelle pas de macro alors pourquoi chercher
dedans...?




"MichD" a écrit dans le message de groupe de discussion :
khd9s5$1qd$

En passant, dans ta formule le nom défini "NOM"
fait référence à une plage de cellule de la feuille "CPT AN"
Si tu affiches cette feuille, tu as plein de cellules qui
affichent #Ref! Tu étais au courant?

Quelle devrait être la formule dans cette plage de cellules?


MichD
---------------------------------------------------------------



--
h2so4
ca PAN
pique DORA
.
Avatar
Lionel
C'est trop cool ! ca fonctionne ... Merci


"h2so4" a écrit dans le message de groupe de discussion :
khifol$24k$

bonsoir,

essaie ceci

=INDEX(INDIRECT($A4&"!$B6:$AF46");(EQUIV($A$2;nom;0)-1)*5+1;COLONNE()-1)

h2so4

Lionel expressed precisely :
http://cjoint.com/?3CkoOWKjea8

je crois qu'il y a eu meprise sur ma question

revoila un fichier vierge

ce que je recherche c'est que lorsque la cellule a2 de "RecapIndiv"
indique un nom tous les planning des mois se ré affichent dans les lignes
pour nom01 en janvier13 = Janvier13!B6:AF6

j'avais essayé une formule
=INDEX(INDIRECT($A4&"!$B6:$AF6");EQUIV($A$2;nom;0);COLONNE()-1) qui
fonctionnait pour nom01 mais b6:af6 est figé donc resultat faux pour nom02
je seche pour modifier...

Merci de l'aide ...

Lionel

"Lionel" a écrit dans le message de groupe de discussion :
513b3090$0$1219$

Ma question etait plus simple que ca !! lol

qu'est ce qui fait que pour nom01 dans recapindiv la fonction
indirect fonctionne et pourquoi si je change le nom ca ne fonctionne
pas...
la fonction indirect elle n'appelle pas de macro alors pourquoi chercher
dedans...?




"MichD" a écrit dans le message de groupe de discussion :
khd9s5$1qd$

En passant, dans ta formule le nom défini "NOM"
fait référence à une plage de cellule de la feuille "CPT AN"
Si tu affiches cette feuille, tu as plein de cellules qui
affichent #Ref! Tu étais au courant?

Quelle devrait être la formule dans cette plage de cellules?


MichD
---------------------------------------------------------------



--
h2so4
ca PAN
pique DORA
.