Probléme Double liste validation, mauvaise correspoondance

deniooo

XLDnaute Occasionnel
Bonjour !
Je joins le fichier où je suis actuellement en train de tester les double liste de validation.
Or pour l'instant lorsque je sélection la valeur N, j'ai comme deuxiéme liste la sélection correspondant au N-1..

Je ne vois pas trés bien quelles valeurs modifier pour avoir les bonnes listes.

Merci.
 

Pièces jointes

  • DoubleLlisteVal_Prob.xls
    46.5 KB · Affichages: 52
  • DoubleLlisteVal_Prob.xls
    46.5 KB · Affichages: 51
  • DoubleLlisteVal_Prob.xls
    46.5 KB · Affichages: 51

deniooo

XLDnaute Occasionnel
Re : Probléme Double liste validation, mauvaise correspoondance

Parfait merci !
j'ai un probléme similaire bien que plus précis, je vous met un PJ l'exemple.

Je n'arrive pas à sélectionner le nombre de valeur d'une ligne contenue DANS un champs.

une idée ?
 

Pièces jointes

  • Test.zip
    9.2 KB · Affichages: 15
  • Test.zip
    9.2 KB · Affichages: 15
  • Test.zip
    9.2 KB · Affichages: 15

deniooo

XLDnaute Occasionnel
Re : Probléme Double liste validation, mauvaise correspoondance

Donc, ta réponse sur l'autre forum :
Bonjour,

Pas bien compris ce que tu cherches.

S'il s'agit de compter le nombre de personnes différentes, cette solution :


Code :
=SOMMEPROD((1/NB.SI(Noms;Noms))*1)Si pas ça, reviens avec plus de précisions en nous donnant notamment le résultat attendu par rapport ton exemple

@+

et ma question maintenant :

je vais expliquer ce que j'ai déjà fait et ce que je ne sais faire :


Code:
=DECALER(item;EQUIV(G2;Noms;0)-1;0;1;NBVAL(EQUIV(G2;Noms;0)+2;EQUIV(G2;Noms;0)+2))

Je vais prendre point par point le DEALER

mon décaler s'effectue sur la plage item ;
le pointeur de ligne :
Code:
EQUIV(G2;Noms;0)-1renvoi le numéro de ligne précédente à la premiére
apparition du mot en G2 (premiére liste déroulante) ;
Aucune colonne ;
Une ligne de hauteur ;
Largeur de la sélection : nombre de valeur sur la ligne sélectionnée par EQUIV(G2;Noms;0).

Or ici mon probléme est que je veux appliquer le dernier NBVAL à UNE ligne de l'ITEM !! et non pas à la ligne générale. C'est pour cette raison que la largeur que j'ai testé
Code:
NBVAL(EQUIV(G2;Noms;0)+2;EQUIV(G2;Noms;0)+2)
malheuresement ne fonctionne pas.

j'espére m'être bien exprimé et que vous aurez une idée !
 
Dernière édition:

Tibo

XLDnaute Barbatruc
Re : Probléme Double liste validation, mauvaise correspoondance

Bonjour,

Un peu désolé, mais je n'ai toujours pas vraiment bien compris.

Peux-tu nous indiquer le résultat attendu ?

En connaissant le résultat, on pourra peut-être remonter le raisonnement autrement et trouver la formule qui va bien.

A te (re)lire

@+

Edit : A moins que la réponse (au copier / coller de ce post) que tu as sur un autre Forum soit la bonne. Au quel cas, nous le faire savoir en nous communiquant la solution.

@+
 
Dernière édition:

deniooo

XLDnaute Occasionnel
Re : Probléme Double liste validation, mauvaise correspoondance

Bonjour !
Je n'ai pas trouvé de solution dynamique avec les formules d'excel. J'ai donc créé une macro qui fait aussi bien le travail, la voici :
Code:
Sub spliit()
    Dim cel As Range
    Dim plage As Range
    Dim ligne As Long
    Dim i As Range
    Dim toto As String
    Dim valF As String
    
    Valref = Cells(1, 1).Value
    Set plage = Range("Noms").Cells
    For Each cel In plage
        If cel.Value = Valref Then
            col = cel.Column + 1
            ligne = cel.Row
            derCol = Range("IV" & ligne & "").End(xlToLeft).Column
            Do Until col > derCol
                If col = derCol Then
                    toto = Cells(ligne, col).Value
                    MsgBox (toto)
                    valF = valF & toto
                    col = col + 1
                Else
                    toto = Cells(ligne, col).Value & ", "
                    MsgBox (toto)
                    valF = valF & toto
                    col = col + 1
                End If
            Loop
        End If
    Next
    Range("A2").Select
    With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="" & valF & ""
    End With
End Sub

Voilà le résultat que j'avais en téte depuis le début.

Malheureusement pour l'instant ce code n'est pas encore automagique, il faut le lancer à chaque fois.

Maintenant il faudrait qu'à chaque fois que je clic sur une cellule d'une plage bien précise (colonne G par exemple) la macro s'applique sur cette cellule, et ça je ne sais faire.

J'ai bien une piste grâce à ceci mais ça reste à l'état de piste.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Vous auriez pas une carte ?! :)
 

Tibo

XLDnaute Barbatruc
Re : Probléme Double liste validation, mauvaise correspoondance

Bonjour,

L'idéal (je sais, je me répète un peu) serait d'avoir un fichier suffisamment documenté avec 2 ou 3 exemples dans lequel tu nous indiquerais pour chaque exemple le résultat attendu

@+
 

deniooo

XLDnaute Occasionnel
Re : Probléme Double liste validation, mauvaise correspoondance

Rahhhhh j'ai encore oublié le fichier.. -_-' vraiment dsl..

Voila sur le fichier joint, un petite explication.

La macro est la sub spliit

normalement ça devrait être clair (j'espére ^^)
 

Pièces jointes

  • Test.zip
    19.4 KB · Affichages: 9
  • Test.zip
    19.4 KB · Affichages: 9
  • Test.zip
    19.4 KB · Affichages: 9

Tibo

XLDnaute Barbatruc
Re : Probléme Double liste validation, mauvaise correspoondance

re,

Un fichier joint avec une (très légère) adaptation de la formule que je t'avais proposé sur un autre Forum.

Regarde la formule que j'ai mis pour la validation en B1

Si pas ça, décris le plus précisément ce que tu veux que nous trouvions.

@+
 

Pièces jointes

  • Test2.zip
    15.4 KB · Affichages: 11
  • Test2.zip
    15.4 KB · Affichages: 10
  • Test2.zip
    15.4 KB · Affichages: 11

deniooo

XLDnaute Occasionnel
Re : Probléme Double liste validation, mauvaise correspoondance

re !
ça marche parfaitement merci !

Mais juste par culture générale, et je suis sûr que ça me servira plus tard, comment fait-on pour résoudre le soucis en macro ?!
 

Tibo

XLDnaute Barbatruc
Re : Probléme Double liste validation, mauvaise correspoondance

re,

En macro, je n'en ai aucune idée.

Juste pour info, c'est la même solution que celle que je t'avais proposée sur developpez.net (légèrement différente car le fichier était différent).

Les Vbaïstes vont peut-être passer pour apporter une réponse à ton souhait.

Principe des Forums : n'hésite pas à signaler sur cet autre Forum que tu as reçu une réponse (même partielle).

@+
 

deniooo

XLDnaute Occasionnel
Re : Probléme Double liste validation, mauvaise correspoondance

Ouaip, c'est ce que je fais généralement,
mais sur l'autre forum je me suis plus accés macro, donc j'attends et on verra bien. J'ai bien une idée mais je ne comprends pas pourquoi elle ne fonctionne pas, certainement une histoire de nom de fonction dans 2003 qui ne sont pas pareil qu'avant..

à voir je post si j'ai une solution.
 

deniooo

XLDnaute Occasionnel
Re : Probléme Double liste validation, mauvaise correspoondance

Et voilà !
Code:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Not Intersect([B1:B12], Target) Is Nothing And Target.Count = 1 Then
        If Target.Value = "" Then
            Set Plage = Range("Noms").Cells
            Valref = Target.Offset(0, -1).Value
            For Each cel In Plage
                If cel.Value = Valref Then
                    col = cel.Column + 1
                    ligne = cel.Row
                    derCol = Range("IV" & ligne & "").End(xlToLeft).Column
                    Do Until col > derCol
                        If col = derCol Then
                            toto = Cells(ligne, col).Value
                            valF = valF & toto
                        Else
                            toto = Cells(ligne, col).Value & ", "
                            valF = valF & toto
                        End If
                        col = col + 1
                    Loop
                End If
            Next
            Target.Select
            With Selection.Validation
                    .Delete
                    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
                    xlBetween, Formula1:="" & valF & ""
            End With
        End If
    End If
End Sub

tout ceci à insérer dans "ThisWorkbook" que l'on trouve en ouvrant l'explorateur de projet.

Soucis résolut de 2 façons, si c'est pas beau excel !!

Bilan de cette folle épopée :
Premiére solution :
Code:
=DECALER(Noms;EQUIV(A1;Noms;0)-1;1;1;NBVAL(DECALER(Noms;EQUIV(A1;Noms;0)-1;1;1; 99)))
à mettre en validation de données.

Deuxiéme solution :
le code si dessus à appliqué comme pré-cité.

Excel c'est trop fort! :)

(un grand merci à toutes les personnes qui m'ont aidé !, non je n'en fais pas trop, merci à vous !)
 

Discussions similaires

Réponses
36
Affichages
2 K
Réponses
14
Affichages
1 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 459
dernier inscrit
Arnocal