OVH Cloud OVH Cloud

Cellule non vide...

28 réponses
Avatar
Noégor
Bonjour,
Sur une plage allant de A1 à J1, je souhaiterais stocker en X1 le contenu de
la première cellule non vide, puis en Y1 celui de la seconde cellule et Z1
celui de la troisième.
Comment faire sans utliser le VBA,
Merci.

Noégor

10 réponses

1 2 3
Avatar
gmlsteph
Bonjour,

En matricielle attention le -23 ne va que tenant compte de l'écart
entre X et A

=SI(NBVAL($A$1:$J$1)<COLONNE()-23;"";INDEX($A$1:$J$1;PETITE.VALEUR(SI
($A$1:$J$1<>"";COLONNE($A$1:$J$1));COLONNE()-23)))


--
lSteph

On 19 mar, 11:24, "Noégor" wrote:



Bonjour,
Sur une plage allant de A1 à J1, je souhaiterais stocker en X1 le conte nu de
la première cellule non vide, puis en Y1 celui de la seconde cellule et Z1
celui de la troisième.
Comment faire sans utliser le VBA,
Merci.

Noégor


Avatar
gmlsteph
...mais peut-être ainsi recopié sur les voisines!

On 19 mar, 15:51, wrote:
Bonjour,

En matricielle attention le -23 ne va que tenant compte de l'écart
entre X et A

=SI(NBVAL($A$1:$J$1)<COLONNE()-23;"";INDEX($A$1:$J$1;PETITE.VALEUR(SI
($A$1:$J$1<>"";COLONNE($A$1:$J$1));COLONNE()-23)))

--
lSteph

On 19 mar, 11:24, "Noégor" wrote:



> Bonjour,
> Sur une plage allant de A1 à J1, je souhaiterais stocker en X1 le con tenu de
> la première cellule non vide, puis en Y1 celui de la seconde cellule et Z1
> celui de la troisième.
> Comment faire sans utliser le VBA,
> Merci.

> Noégor- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
garnote
Tentative de généralisation :

Pour obtenir sur une ligne les n premières cellules non vides d'une plage horizontale quelconque de cellules contiguës,
sélectionnez une plage horizontale de n cellules contiguës et collez cette formule dans la barre de formules.
Un exemple avec n = 8 :
=INDEX(plage;PETITE.VALEUR(SI(plage<>"";COLONNE(plage)-COLONNE(INDEX(plage;1))+1;9^9);COLONNE(1:8)))
(Ctrl+Maj+Entrée)
Si on veut le résultat sur une colonne :
=TRANSPOSE(INDEX(plage;PETITE.VALEUR(SI(plage<>"";COLONNE(plage)-COLONNE(INDEX(plage;1))+1;9^9);COLONNE(1:8))))
(Ctrl+Maj+Entrée)

Si la plage d'origine est sur une colonne, remplacez COLONNE par LIGNE dans les deux formules précédentes.


Serge





"garnote" a écrit dans le message de news: %23w%
Ave,

Essaie ceci :
Sélectionne X1:Z1, colle cette formule dans la barre de formule :
=INDEX(A1:J1;PETITE.VALEUR(SI(A1:J1<>"";COLONNE(A1:J1);11);{1.2.3}))
et valide par Ctrl+Maj+Entrée.

Serge


"Noégor" a écrit dans le message de news:
Bonjour,
Sur une plage allant de A1 à J1, je souhaiterais stocker en X1 le contenu de
la première cellule non vide, puis en Y1 celui de la seconde cellule et Z1
celui de la troisième.
Comment faire sans utliser le VBA,
Merci.

Noégor








Avatar
gmlsteph
Salut Serge,

;-) regarde un peu plus haut.

On 19 mar, 16:07, "garnote" wrote:
Tentative de généralisation :



Avatar
garnote
Salut,

;-) regarde un peu plus haut.

Où ça ?
Et que dois-je y voir ?

Serge


a écrit dans le message de news:
Salut Serge,

;-) regarde un peu plus haut.

On 19 mar, 16:07, "garnote" wrote:
Tentative de généralisation :



Avatar
gmlsteph
> > Tentative de généralisation..



tu peux l'entrer en matricielle de X1 à...

=SI(NBVAL($A$1:$J$1)<COLONNE()-23;"";INDEX($A$1:$J$1;PETITE.VALEUR(SI
($A$1:$J$1<>"";COLONNE($A$1:$J$1));COLONNE()-23)))


@+

--
lSteph


On 19 mar, 16:28, "garnote" wrote:
Salut,

;-) regarde un peu plus haut.

Où ça ?
Et que dois-je y voir ?

Serge

a écrit dans le message de news: db57df41-e2d9-483
Salut Serge,

;-) regarde un peu plus haut.

On 19 mar, 16:07, "garnote" wrote:



> Tentative de généralisation :- Masquer le texte des messages préc édents -

- Afficher le texte des messages précédents -


Avatar
garnote
Oui je comprends mais je cherche à généraliser pour un plage
qui ne débute pas forcément à la première colonne tout en
ayant le résultat dans une plage quelconque sans avoir
à modifier manuellement certaines constantes de la formule.

A+
Serge


a écrit dans le message de news:
> Tentative de généralisation..



tu peux l'entrer en matricielle de X1 à...

=SI(NBVAL($A$1:$J$1)<COLONNE()-23;"";INDEX($A$1:$J$1;PETITE.VALEUR(SI
($A$1:$J$1<>"";COLONNE($A$1:$J$1));COLONNE()-23)))


@+

--
lSteph


On 19 mar, 16:28, "garnote" wrote:
Salut,

;-) regarde un peu plus haut.

Où ça ?
Et que dois-je y voir ?

Serge

a écrit dans le message de news:
Salut Serge,

;-) regarde un peu plus haut.

On 19 mar, 16:07, "garnote" wrote:



> Tentative de généralisation :- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
gmlsteph
;-)

=SI(NBVAL($A$1:$J$1)<COLONNE(A1);"";INDEX($A$1:$J$1;PETITE.VALEUR(SI($A
$1:$J$1<>"";COLONNE($A$1:$J$1));COLONNE(A1))))

--
lSteph

On 19 mar, 17:09, "garnote" wrote:
Oui je comprends mais je cherche à généraliser pour un plage
qui ne débute pas forcément à la première colonne tout en
ayant le résultat dans une plage quelconque sans avoir
à modifier manuellement certaines constantes de la formule.

A+
Serge

a écrit dans le message de news: b523f48a-03be-437

> > Tentative de généralisation..

tu peux l'entrer en matricielle de X1 à...

=SI(NBVAL($A$1:$J$1)<COLONNE()-23;"";INDEX($A$1:$J$1;PETITE.VALEUR(SI
($A$1:$J$1<>"";COLONNE($A$1:$J$1));COLONNE()-23)))

@+

--
lSteph

On 19 mar, 16:28, "garnote" wrote:



> Salut,

> ;-) regarde un peu plus haut.

> Où ça ?
> Et que dois-je y voir ?

> Serge

> a écrit dans le message de news: db57df41-e2d9-4
> Salut Serge,

> ;-) regarde un peu plus haut.

> On 19 mar, 16:07, "garnote" wrote:

> > Tentative de généralisation :- Masquer le texte des messages pr écédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
gmlsteph
..ou encore pour plg (à définir en réf absolue)

=SI(NBVAL(plg)<COLONNE(A1);"";INDEX(plg;PETITE.VALEUR(SI
(plg<>"";COLONNE(plg));COLONNE(A1))))

en matricielle

--
lSteph

On 19 mar, 17:09, "garnote" wrote:
Oui je comprends mais je cherche à généraliser pour un plage
qui ne débute pas forcément à la première colonne tout en
ayant le résultat dans une plage quelconque sans avoir
à modifier manuellement certaines constantes de la formule.

A+
Serge

a écrit dans le message de news: b523f48a-03be-437

> > Tentative de généralisation..

tu peux l'entrer en matricielle de X1 à...

=SI(NBVAL($A$1:$J$1)<COLONNE()-23;"";INDEX($A$1:$J$1;PETITE.VALEUR(SI
($A$1:$J$1<>"";COLONNE($A$1:$J$1));COLONNE()-23)))

@+

--
lSteph

On 19 mar, 16:28, "garnote" wrote:



> Salut,

> ;-) regarde un peu plus haut.

> Où ça ?
> Et que dois-je y voir ?

> Serge

> a écrit dans le message de news: db57df41-e2d9-4
> Salut Serge,

> ;-) regarde un peu plus haut.

> On 19 mar, 16:07, "garnote" wrote:

> > Tentative de généralisation :- Masquer le texte des messages pr écédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
gmlsteph
la même pour plage en colonne et un résultat en ligne

=SI(NBVAL(plg)<LIGNE(A1);"";INDEX(plg;PETITE.VALEUR(SI(plg<>"";COLONNE
(plg));LIGNE(A1))))



On 19 mar, 17:24, wrote:
..ou encore pour plg (à définir en réf absolue)

=SI(NBVAL(plg)<COLONNE(A1);"";INDEX(plg;PETITE.VALEUR(SI
(plg<>"";COLONNE(plg));COLONNE(A1))))

en matricielle

--
lSteph

On 19 mar, 17:09, "garnote" wrote:



> Oui je comprends mais je cherche à généraliser pour un plage
> qui ne débute pas forcément à la première colonne tout en
> ayant le résultat dans une plage quelconque sans avoir
> à modifier manuellement certaines constantes de la formule.

> A+
> Serge



1 2 3