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

Supprimer les vides sans cellule(s) intermédiaire(s) ni VBA

7 réponses
Avatar
bcar
Bonjour,

pour ma culture perso, je cherche à savoir s'il serait possible de
supprimer les vides d'une liste sans passer ni par des cellules
intermédiaires, ni par VBA.

un exemple :
En A1:A5
Bob
Michel
(vide)
Jean
Pierre

je cherche une formule matricielle qui me renverrait
Bob
Michel
Jean
Pierre

soit X la formule (ou plutôt la combinaison de formules)
si en B1 je met {=X(A1:A5)} => Bob en B1
si en B1:B3 je met {=X(A1:A5)} => Bob en B1, Michel en B2, Jean en B3
si en C1 je fait données - Validation des données, que je choisi Liste
et que je met =X(A1:A5) => Bob,Michel,Jean et Pierre apparaîtront dans
la liste déroulante (mais pas de ligne vide)

Merci

7 réponses

Avatar
DanielCo
Bonjour.
Si tu as Excel2007 ou postérieur, utilise la formule matricielle
suivante :
=SIERREUR(INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1);"")
Sinon, utilise :
=SI(LIGNE(A1)>NBVAL(A:A);"";INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1))
Cordialement.
Daniel


Bonjour,

pour ma culture perso, je cherche à savoir s'il serait possible de
supprimer les vides d'une liste sans passer ni par des cellules
intermédiaires, ni par VBA.

un exemple :
En A1:A5
Bob
Michel
(vide)
Jean
Pierre

je cherche une formule matricielle qui me renverrait
Bob
Michel
Jean
Pierre

soit X la formule (ou plutôt la combinaison de formules)
si en B1 je met {=X(A1:A5)} => Bob en B1
si en B1:B3 je met {=X(A1:A5)} => Bob en B1, Michel en B2, Jean en B3
si en C1 je fait données - Validation des données, que je choisi Liste
et que je met =X(A1:A5) => Bob,Michel,Jean et Pierre apparaîtront dans
la liste déroulante (mais pas de ligne vide)

Merci
Avatar
bcar
Merci pour cette première réponse, mais cela ne répond pas exactement a
ce que je recherche. Là c'est une formule matricielle que tu étire pas
une formule matricielle que tu "plaque"

avec ta formule tu ne peux pas faire par exemple
index(TaFormule;3) pour obtenir la 3ème valeur de la liste sans doublons.


Le 19/01/2011 17:50, DanielCo a écrit :
Bonjour.
Si tu as Excel2007 ou postérieur, utilise la formule matricielle suivante :
=SIERREUR(INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1);"")

Sinon, utilise :
=SI(LIGNE(A1)>NBVAL(A:A);"";INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1))

Cordialement.
Daniel


Bonjour,

pour ma culture perso, je cherche à savoir s'il serait possible de
supprimer les vides d'une liste sans passer ni par des cellules
intermédiaires, ni par VBA.

un exemple :
En A1:A5
Bob
Michel
(vide)
Jean
Pierre

je cherche une formule matricielle qui me renverrait
Bob
Michel
Jean
Pierre

soit X la formule (ou plutôt la combinaison de formules)
si en B1 je met {=X(A1:A5)} => Bob en B1
si en B1:B3 je met {=X(A1:A5)} => Bob en B1, Michel en B2, Jean en B3
si en C1 je fait données - Validation des données, que je choisi Liste
et que je met =X(A1:A5) => Bob,Michel,Jean et Pierre apparaîtront dans
la liste déroulante (mais pas de ligne vide)

Merci




Avatar
Jacquouille
Bonsoir
Et si tu filtrais sur place?

--
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."

"bcar" a écrit dans le message de groupe de discussion
: ih74o7$cfr$
Merci pour cette première réponse, mais cela ne répond pas exactement a
ce que je recherche. Là c'est une formule matricielle que tu étire pas
une formule matricielle que tu "plaque"

avec ta formule tu ne peux pas faire par exemple
index(TaFormule;3) pour obtenir la 3ème valeur de la liste sans doublons.


Le 19/01/2011 17:50, DanielCo a écrit :
Bonjour.
Si tu as Excel2007 ou postérieur, utilise la formule matricielle suivante
:
=SIERREUR(INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1);"")

Sinon, utilise :
=SI(LIGNE(A1)>NBVAL(A:A);"";INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1))

Cordialement.
Daniel


Bonjour,

pour ma culture perso, je cherche à savoir s'il serait possible de
supprimer les vides d'une liste sans passer ni par des cellules
intermédiaires, ni par VBA.

un exemple :
En A1:A5
Bob
Michel
(vide)
Jean
Pierre

je cherche une formule matricielle qui me renverrait
Bob
Michel
Jean
Pierre

soit X la formule (ou plutôt la combinaison de formules)
si en B1 je met {=X(A1:A5)} => Bob en B1
si en B1:B3 je met {=X(A1:A5)} => Bob en B1, Michel en B2, Jean en B3
si en C1 je fait données - Validation des données, que je choisi Liste
et que je met =X(A1:A5) => Bob,Michel,Jean et Pierre apparaîtront dans
la liste déroulante (mais pas de ligne vide)

Merci







Avatar
bcar
En utilisant les filtres ou l'outil suppression des doublons. Ou j'ai
pas compris ?

Non mon problème n'est pas de le faire, je sais le faire, que ce soit en
vba ou avec une formule en passant par des cellules intermédiaires.

Non, là ce que je veux (c'est pour la culture G, ou comme un défi) c'est
voir s'il serait possible de réaliser ça avec les fonctions (pas
VBA)disponibles sous Excel sans passer par des cellules intermédiaires.
Récupérer directement une matrice, qu'on peut utiliser avec index ou que
l'on peut plaquer sur une zone.

J'aurai plutôt tendance à penser que ce n'est pas possible, mais n'étant
pas omniscient :) je demande l'avis d'autres personnes qui avec d'autres
expériences feront peut être ressortir quelque chose de tout cela.

Le 19/01/2011 18:27, Jacquouille a écrit :
Bonsoir
Et si tu filtrais sur place?

--
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."

"bcar" a écrit dans le message de groupe de
discussion : ih74o7$cfr$
Merci pour cette première réponse, mais cela ne répond pas exactement a
ce que je recherche. Là c'est une formule matricielle que tu étire pas
une formule matricielle que tu "plaque"

avec ta formule tu ne peux pas faire par exemple
index(TaFormule;3) pour obtenir la 3ème valeur de la liste sans doublons.

Le 19/01/2011 17:50, DanielCo a écrit :
Bonjour.
Si tu as Excel2007 ou postérieur, utilise la formule matricielle
suivante :
=SIERREUR(INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1);"")

Sinon, utilise :
=SI(LIGNE(A1)>NBVAL(A:A);"";INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$10));LIGNE(A1));1))
Cordialement.
Daniel

Bonjour,

pour ma culture perso, je cherche à savoir s'il serait possible de
supprimer les vides d'une liste sans passer ni par des cellules
intermédiaires, ni par VBA.

un exemple :
En A1:A5
Bob
Michel
(vide)
Jean
Pierre

je cherche une formule matricielle qui me renverrait
Bob
Michel
Jean
Pierre

soit X la formule (ou plutôt la combinaison de formules)
si en B1 je met {=X(A1:A5)} => Bob en B1
si en B1:B3 je met {=X(A1:A5)} => Bob en B1, Michel en B2, Jean en B3
si en C1 je fait données - Validation des données, que je choisi Liste
et que je met =X(A1:A5) => Bob,Michel,Jean et Pierre apparaîtront dans
la liste déroulante (mais pas de ligne vide)

Merci
Avatar
Jacquouille
Bonjour Nbcar
Il est bien évident que chacun résoud ses problème comme il l'entend.
Ceci dit, le répondeur répondra toujours en fonction de ses connaissances,
mais aussi de son expérience, ET aussi de la manière à laquelle il a compris
la question.
personnellement, j'ai compris que vous cherchiez à éliminer les cel vides
d'une plage.
j'y ai répondu " en filtrant sur place ?".
Je reviens à cette réponse en précisant:
Menu / Données / filtre / filtre automatique / choisir "non vides" ----> OK.
--
Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
Avatar
LSteph
Bonjour,

Trier.

Et le tour est joué il me semble, les vides se retrouvent écartés dan s
le même sac.


Cordialement.

--
LSteph


n 19 jan, 17:24, bcar wrote:
Bonjour,

pour ma culture perso, je cherche à savoir s'il serait possible de
supprimer les vides d'une liste sans passer ni par des cellules
intermédiaires, ni par VBA.

un exemple :
En A1:A5
Bob
Michel
(vide)
Jean
Pierre

je cherche une formule matricielle qui me renverrait
Bob
Michel
Jean
Pierre

soit X la formule (ou plutôt la combinaison de formules)
si en B1 je met {=X(A1:A5)} => Bob en B1
si en B1:B3 je met {=X(A1:A5)} => Bob en B1, Michel en B2, Jean en B3
si en C1 je fait données - Validation des données, que je choisi List e
et que je met =X(A1:A5) => Bob,Michel,Jean et Pierre apparaîtront d ans
la liste déroulante (mais pas de ligne vide)

Merci
Avatar
LSteph
Re,

Outre le tri simple . Si l'ordre ne doit pas être modifié et que la
matricielle de Daniel ne te convenait pas
tu place une formule simple =si(a2="";""; ligne())
à coté de ta liste, puis tu trie.

Ceci
Liste Tri
Bob 2
Michel 3
(vide)
Jean 5
Pierre 6

donnera apres tri

Liste Tri
Bob 2
Michel 3
Jean 4
Pierre 5


Cordialement.

--
LSteph


On 19 jan, 17:58, bcar wrote:
Merci pour cette première réponse, mais cela ne répond pas exacteme nt a
ce que je recherche. Là c'est une formule matricielle que tu étire pa s
une formule matricielle que tu "plaque"

avec ta formule tu ne peux pas faire par exemple
index(TaFormule;3) pour obtenir la 3ème valeur de la liste sans doublon s.

Le 19/01/2011 17:50, DanielCo a écrit :



> Bonjour.
> Si tu as Excel2007 ou postérieur, utilise la formule matricielle suiv ante :
> =SIERREUR(INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A$10<>"";LIGNE($1:$ 10));L­IGNE(A1));1);"")

> Sinon, utilise :
> =SI(LIGNE(A1)>NBVAL(A:A);"";INDEX($A$1:$A$10;PETITE.VALEUR(SI($A$1:$A $10<>"­";LIGNE($1:$10));LIGNE(A1));1))

> Cordialement.
> Daniel

>> Bonjour,

>> pour ma culture perso, je cherche à savoir s'il serait possible de
>> supprimer les vides d'une liste sans passer ni par des cellules
>> intermédiaires, ni par VBA.

>> un exemple :
>> En A1:A5
>> Bob
>> Michel
>> (vide)
>> Jean
>> Pierre

>> je cherche une formule matricielle qui me renverrait
>> Bob
>> Michel
>> Jean
>> Pierre

>> soit X la formule (ou plutôt la combinaison de formules)
>> si en B1 je met {=X(A1:A5)} => Bob en B1
>> si en B1:B3 je met {=X(A1:A5)} => Bob en B1, Michel en B2, Jean en B3
>> si en C1 je fait données - Validation des données, que je choisi L iste
>> et que je met =X(A1:A5) => Bob,Michel,Jean et Pierre apparaîtron t dans
>> la liste déroulante (mais pas de ligne vide)

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

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