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

Liste de validation et lignes blanches ?

6 réponses
Avatar
François Rivierre
Bonjour à tous,

J'ai un problème dont je n'arrive pas à trouver la solution. Peut-être
est-ce tout simple, mais après de vaines recherches sur Excelabo et Google,
je suis toujours bredouille.

Donc, j'explique : j'ai une liste de validation (que j'ai nommé) en F2:F10,
qui me sert pour la validation de la cellule B20. Jusque là... Mon problème
est que dans ma liste de validation, je peux avoir des lignes blanches,
n'importe où (elle est dynamique et évolue selon des critères déterminés
auparavant).

Ce que je voudrais c'est supprimer ces %*!@# de lignes blanches entre les
lignes remplies dans ma liste de validation ! Je sais supprimer les lignes
blanches en fin de liste (avec les fonctions DECALER et NB.VALEUR), mais pas
les lignes DANS la liste.

Donc si quelqu'un a une solution, n'hésitez pas, je suis preneur :) !

Bien cordialement,

François Rivierre

6 réponses

Avatar
AV
Regarde un exemple là :

http://cjoint.com/?mmpbTS1GWi

AV
Avatar
François Rivierre
Bonjour AV,

Regarde un exemple là :

http://cjoint.com/?mmpbTS1GWi

AV


Merci, ça a l'air d'être exactement ce que je cherche :) ! Bon, maintenant,
je vais me creuser un peu la tête pour bien tout comprendre, à priori ça
dépasse de beaucoup mes connaissances actuelles d'Excel ;).

Encore un grand merci,

Cordialement,

François Rivierre

Avatar
michdenis
Bonjour François,

Il y a aussi ceci qui remplace toutes les formules !!!
et qui met ta liste de validation en ordre croissant et sans doublons.

à défaut de ... il y aura toujours les formules ....;-)))

http://cjoint.com/?mmrusFjHU5



Salutations!



"François Rivierre" a écrit dans le message de news: OPBiPly$
Bonjour AV,

Regarde un exemple là :

http://cjoint.com/?mmpbTS1GWi

AV


Merci, ça a l'air d'être exactement ce que je cherche :) ! Bon, maintenant,
je vais me creuser un peu la tête pour bien tout comprendre, à priori ça
dépasse de beaucoup mes connaissances actuelles d'Excel ;).

Encore un grand merci,

Cordialement,

François Rivierre

Avatar
JB
Bonjour,

1 solution matricielle + 1 solution fonction matricielle perso

Voir PJ: http://cjoint.com/?mmvzsplHmS

1- Solution matricielle:

Sélectionner un champ (Liste secondaire)

Lst est la liste avec des vides:

=INDEX(Lst;PETITE.VALEUR(SI(ESTNA(SI(EQUIV(Lst;Lst;0)=LIGNE(INDIRECT("1 :"&LIGNES(Lst)));EQUIV(Lst;Lst;0);""));"";
SI(EQUIV(Lst;Lst;0)=LIGNE(INDIRECT("1:"&LIGNES(Lst)));EQUIV(Lst;Lst;0);"" ));LIGNE(INDIRECT("1:"&LIGNES(Lst)))))
valider avec Maj+Ctrl+Entrée

Dans Données/Val/Liste (I2:I8 la liste obtenue précédemment)
ÞCALER($I$2;;;NB.SI($I$2:$I$8;"<>#nombre!"))

2- Solution fonction matricielle perso:

Créer une liste compressée :
-Sélectionner un champ en colonne J2:J8
=SansVides(ListeDépart) valider avec Maj+Ctrl+Entrée

dans Données/Valid/Liste:

ÞCALER($D$5;;;NB.SI(ListeCompressée;"<>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)) Then
temp(j, 0) = champ(i)
j = j + 1
End If
Next i
SansVides = temp
End Function

Cordialement JB
Avatar
JB
Bonjour,

Autre solutions en modifiant la source de Données/validation:

http://cjoint.com/?mngpDh1CHo

Private Sub Workbook_Open()
RemplitListe Range("maliste"), "menu1"
End Sub

Sub RemplitListe(champ, m)
temp = ""
tableau = champ
For i = 1 To UBound(tableau)
If Not IsEmpty(tableau(i, 1)) Then
temp = temp & tableau(i, 1) & ","
End If
Next
Range(m).Validation.Modify xlValidateList, Formula1:=Left(temp,
Len(temp) - 1)
End Sub

Cordialement JB
Avatar
François Rivierre
Bonjour à tous,

Un grand merci à tous pour vos réponses, j'ai fait une combinaison de vos
différentes propositions, et j'arrive maintenant à faire ce que je veux :) !

Votre savoir me laisse béat d'admiration (et aussi d'envie ;)). Enfin, le
bon point c'est que des solutions comme ça, ça me fait progresser à grand
pas !

Merci encore une fois.

Bien cordialement,

François Rivierre