Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : =DECALER(Liste;0;0;NBVAL(Liste))
Le problème est que si les valeurs de la "Liste" sont des formules (qui
importent les valeurs d'une autre liste), les "" provoquent des "trous" et
donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par
{=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inclure dans la
formule "DECALER ... " mais ce n'est certainement par le plus accadémique
;-)
Question : Peut-on insérer une formule matricielle dans une formule "simple"
?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
On veut une liste sans Vide (La liste d'origine contient des formules) -Sélectionner C2:C8 =INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQUIV( champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(champ ;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ))))) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide La liste d'origine contient des formules -Sélectionner C2:C8 =sansvides(A2:A8) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) = "" Then temp(j, 0) = champ(i) j = j + 1 End If Next i SansVides = temp End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue ;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
JP
Bonjour,
Solution1:
http://cjoint.com/?hif5vw5276
On veut une liste sans Vide (La liste d'origine contient des formules)
-Sélectionner C2:C8
=INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQUIV( champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(champ ;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ)))))
Valider avec Maj+CTRl+Entrée
En F2:Données/Validation
=DECALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide
La liste d'origine contient des formules
-Sélectionner C2:C8
=sansvides(A2:A8)
Valider avec Maj+CTRl+Entrée
En F2:Données/Validation
=DECALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range)
Dim temp(1000, 1)
j = 0
For i = 1 To champ.Count
If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) =
"" Then
temp(j, 0) = champ(i)
j = j + 1
End If
Next i
SansVides = temp
End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : =DECALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui
importent les valeurs d'une autre liste), les "" provoquent des "trous" et
donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par
{=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la
formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue
;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple"
?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
On veut une liste sans Vide (La liste d'origine contient des formules) -Sélectionner C2:C8 =INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQUIV( champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(champ ;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ))))) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide La liste d'origine contient des formules -Sélectionner C2:C8 =sansvides(A2:A8) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) = "" Then temp(j, 0) = champ(i) j = j + 1 End If Next i SansVides = temp End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue ;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue ;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : =DECALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui
importent les valeurs d'une autre liste), les "" provoquent des "trous" et
donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par
{=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la
formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue
;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple"
?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue ;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
JP
JB
http://cjoint.com/?hisS6dWObC
Liste triée avec formule dans liste initiale =INDEX(champ;EQUIV(GRANDE.VALEUR((NB.SI(champ;">="&champ)*(champ<>0));L IGNE(INDIRECT("1:"&LIGNES(champ)))); NB.SI(champ;">="&champ)*(champ<>0);0))
En G2: Données/Validation/Liste ÞCALER($C$2;;;NB.SI($C$2:$C$8;"<>0"))
JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue ;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
JP
http://cjoint.com/?hisS6dWObC
Liste triée avec formule dans liste initiale
=INDEX(champ;EQUIV(GRANDE.VALEUR((NB.SI(champ;">="&champ)*(champ<>0));L IGNE(INDIRECT("1:"&LIGNES(champ))));
NB.SI(champ;">="&champ)*(champ<>0);0))
En G2: Données/Validation/Liste
=DECALER($C$2;;;NB.SI($C$2:$C$8;"<>0"))
JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : =DECALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui
importent les valeurs d'une autre liste), les "" provoquent des "trous" et
donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par
{=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la
formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue
;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple"
?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
Liste triée avec formule dans liste initiale =INDEX(champ;EQUIV(GRANDE.VALEUR((NB.SI(champ;">="&champ)*(champ<>0));L IGNE(INDIRECT("1:"&LIGNES(champ)))); NB.SI(champ;">="&champ)*(champ<>0);0))
En G2: Données/Validation/Liste ÞCALER($C$2;;;NB.SI($C$2:$C$8;"<>0"))
JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Lis te))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inc lure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémiq ue ;-)
Question : Peut-on insérer une formule matricielle dans une formule "si mple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
JP
j-pascal
Bonjour JB,
Merci pour ce classeur détaillé.
Pour la solution 1 que tu proposes j'ai essayé une formule qui me paraît plus courte : {=SOMME(SI(NON(ESTERREUR(CODE(Liste)));1;0))} (dans la cellule A1 par ex) Puis en F2 Donnée/validation : ÞCALER(Liste;0;0;A1)
JP
PS : dans mon dernier msg j'avais parlé de "NUM" ce qui limitait la formule à des nb ;-(
wrote:
Bonjour,
Solution1:
http://cjoint.com/?hif5vw5276
On veut une liste sans Vide (La liste d'origine contient des formules) -Sélectionner C2:C8 =INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQUIV(champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(champ;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ))))) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide La liste d'origine contient des formules -Sélectionner C2:C8 =sansvides(A2:A8) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) > "" Then temp(j, 0) = champ(i) j = j + 1 End If Next i SansVides = temp End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Liste))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inclure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémique ;-)
Question : Peut-on insérer une formule matricielle dans une formule "simple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
JP
Bonjour JB,
Merci pour ce classeur détaillé.
Pour la solution 1 que tu proposes j'ai essayé une formule qui me paraît
plus courte :
{=SOMME(SI(NON(ESTERREUR(CODE(Liste)));1;0))} (dans la cellule A1 par ex)
Puis en F2 Donnée/validation :
ÞCALER(Liste;0;0;A1)
JP
PS : dans mon dernier msg j'avais parlé de "NUM" ce qui limitait la formule
à des nb ;-(
wrote:
Bonjour,
Solution1:
http://cjoint.com/?hif5vw5276
On veut une liste sans Vide (La liste d'origine contient des formules)
-Sélectionner C2:C8
=INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQUIV(champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(champ;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ)))))
Valider avec Maj+CTRl+Entrée
En F2:Données/Validation
ÞCALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide
La liste d'origine contient des formules
-Sélectionner C2:C8
=sansvides(A2:A8)
Valider avec Maj+CTRl+Entrée
En F2:Données/Validation
ÞCALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range)
Dim temp(1000, 1)
j = 0
For i = 1 To champ.Count
If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) > "" Then
temp(j, 0) = champ(i)
j = j + 1
End If
Next i
SansVides = temp
End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Liste))
Le problème est que si les valeurs de la "Liste" sont des formules
(qui importent les valeurs d'une autre liste), les "" provoquent des
"trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par
{=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inclure
dans la formule "DECALER ... " mais ce n'est certainement par le
plus accadémique ;-)
Question : Peut-on insérer une formule matricielle dans une formule
"simple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
Pour la solution 1 que tu proposes j'ai essayé une formule qui me paraît plus courte : {=SOMME(SI(NON(ESTERREUR(CODE(Liste)));1;0))} (dans la cellule A1 par ex) Puis en F2 Donnée/validation : ÞCALER(Liste;0;0;A1)
JP
PS : dans mon dernier msg j'avais parlé de "NUM" ce qui limitait la formule à des nb ;-(
wrote:
Bonjour,
Solution1:
http://cjoint.com/?hif5vw5276
On veut une liste sans Vide (La liste d'origine contient des formules) -Sélectionner C2:C8 =INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQUIV(champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(champ;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ))))) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide La liste d'origine contient des formules -Sélectionner C2:C8 =sansvides(A2:A8) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) > "" Then temp(j, 0) = champ(i) j = j + 1 End If Next i SansVides = temp End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL(Liste))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l'inclure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémique ;-)
Question : Peut-on insérer une formule matricielle dans une formule "simple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
JP
JB
Sans A1: ÞCALER(Liste;0;0;SOMMEPROD(SI(NON(ESTERREUR(CODE(Liste)));1;0)))
JB
Bonjour JB,
Merci pour ce classeur détaillé.
Pour la solution 1 que tu proposes j'ai essayé une formule qui me para ît plus courte : {=SOMME(SI(NON(ESTERREUR(CODE(Liste)));1;0))} (dans la cellule A1 par ex) Puis en F2 Donnée/validation : ÞCALER(Liste;0;0;A1)
JP
PS : dans mon dernier msg j'avais parlé de "NUM" ce qui limitait la for mule à des nb ;-(
wrote:
Bonjour,
Solution1:
http://cjoint.com/?hif5vw5276
On veut une liste sans Vide (La liste d'origine contient des formules) -Sélectionner C2:C8 =INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQ UIV(champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(c hamp;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ))))) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide La liste d'origine contient des formules -Sélectionner C2:C8 =sansvides(A2:A8) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) = "" Then temp(j, 0) = champ(i) j = j + 1 End If Next i SansVides = temp End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL( Liste))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l' inclure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémique ;-)
Question : Peut-on insérer une formule matricielle dans une formule "simple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
JP
Sans A1:
=DECALER(Liste;0;0;SOMMEPROD(SI(NON(ESTERREUR(CODE(Liste)));1;0)))
JB
Bonjour JB,
Merci pour ce classeur détaillé.
Pour la solution 1 que tu proposes j'ai essayé une formule qui me para ît
plus courte :
{=SOMME(SI(NON(ESTERREUR(CODE(Liste)));1;0))} (dans la cellule A1 par ex)
Puis en F2 Donnée/validation :
=DECALER(Liste;0;0;A1)
JP
PS : dans mon dernier msg j'avais parlé de "NUM" ce qui limitait la for mule
à des nb ;-(
wrote:
Bonjour,
Solution1:
http://cjoint.com/?hif5vw5276
On veut une liste sans Vide (La liste d'origine contient des formules)
-Sélectionner C2:C8
=INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQ UIV(champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(c hamp;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ)))))
Valider avec Maj+CTRl+Entrée
En F2:Données/Validation
=DECALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide
La liste d'origine contient des formules
-Sélectionner C2:C8
=sansvides(A2:A8)
Valider avec Maj+CTRl+Entrée
En F2:Données/Validation
=DECALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range)
Dim temp(1000, 1)
j = 0
For i = 1 To champ.Count
If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) =
"" Then
temp(j, 0) = champ(i)
j = j + 1
End If
Next i
SansVides = temp
End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : =DECALER(Liste;0;0;NBVAL( Liste))
Le problème est que si les valeurs de la "Liste" sont des formules
(qui importent les valeurs d'une autre liste), les "" provoquent des
"trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par
{=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l' inclure
dans la formule "DECALER ... " mais ce n'est certainement par le
plus accadémique ;-)
Question : Peut-on insérer une formule matricielle dans une formule
"simple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)
Sans A1: ÞCALER(Liste;0;0;SOMMEPROD(SI(NON(ESTERREUR(CODE(Liste)));1;0)))
JB
Bonjour JB,
Merci pour ce classeur détaillé.
Pour la solution 1 que tu proposes j'ai essayé une formule qui me para ît plus courte : {=SOMME(SI(NON(ESTERREUR(CODE(Liste)));1;0))} (dans la cellule A1 par ex) Puis en F2 Donnée/validation : ÞCALER(Liste;0;0;A1)
JP
PS : dans mon dernier msg j'avais parlé de "NUM" ce qui limitait la for mule à des nb ;-(
wrote:
Bonjour,
Solution1:
http://cjoint.com/?hif5vw5276
On veut une liste sans Vide (La liste d'origine contient des formules) -Sélectionner C2:C8 =INDEX(champ;PETITE.VALEUR(SI(NON(ESTNA(EQUIV(champ;champ;0)));SI((EQ UIV(champ;champ;0)=LIGNE(INDIRECT("1:"&LIGNES(champ))))*(champ>0);EQUIV(c hamp;champ;0)));LIGNE(INDIRECT("1:"&LIGNES(champ))))) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>#NOMBRE!"))
Solution2:
On veut une liste sans Vide La liste d'origine contient des formules -Sélectionner C2:C8 =sansvides(A2:A8) Valider avec Maj+CTRl+Entrée
En F2:Données/Validation ÞCALER($C$2;;;NB.SI(C2:C8;"<>0"))
Dans un module:
Function SansVides(champ As Range) Dim temp(1000, 1) j = 0 For i = 1 To champ.Count If Not IsEmpty(champ(i)) And Not champ(i) = 0 And Not champ(i) = "" Then temp(j, 0) = champ(i) j = j + 1 End If Next i SansVides = temp End Function
Cordialement JB
Bonjour,
Afin de redemensionner une liste déroulante,
Je la nomme "Liste" avec "Insertion/Nom/Définir" ...
Dans "Fait référence à", je tape : ÞCALER(Liste;0;0;NBVAL( Liste))
Le problème est que si les valeurs de la "Liste" sont des formules (qui importent les valeurs d'une autre liste), les "" provoquent des "trous" et donc des erreurs !
Pour contourner l'obstacle, j'ai pensé à remplacer "NBVAL (Liste) par {=SOMME(SI(ESTNUM(Liste);1;0))},
Je peux toujours créer une cellule dédié à ce résultat et l' inclure dans la formule "DECALER ... " mais ce n'est certainement par le plus accadémique ;-)
Question : Peut-on insérer une formule matricielle dans une formule "simple" ?
Un grand merci d'avance pour vos lumières "accadémiques" :o)