Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Vérification de l'utilisation d'un menu

Sheldor

XLDnaute Occasionnel
Supporter XLD
Bonjour à tous,
j'ai besoin de vérifier si des cellules contiennent bien les éléments "autorisés" par la validation via une liste car un copier coller peut passer par dessus cette contrainte de saisie.

J'étais parti sur quelque chose sous la forme Cells(aa, bb).Validation.Value en true ou false mais j'ai eu des cas où certains éléments n'étaient pas détectés sans que j'arrive à m'expliquer pourquoi.
En plus ça ne détecte pas (d'après mes tests en tout cas) une différence de casse.

je souhaiterais donc changer de méthode et charger les cellules dans un array ou un dico pour que ça me sorte rapidement le résultat (j'ai 500 colonnes concernées et une centaine de listes) mais, débutant, je n'ai pas réussi à adapter des codes pour y arriver....

merci d'avance pour votre aide
 

Pièces jointes

  • question_excel_verif_menu.xlsx
    11.7 KB · Affichages: 7

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour,
Ce qui est sympa, c'est que plus vous expliquez moins je comprends.
Que cherchez vous ?
Votre liste va bouger ? Si oui qui la bouge ? Doit on la retrouver sans aucun indice ?
Avez vous plusieurs listes ?
Vous parliez de cellules, on doit pouvoir y accéder par formules ou par VBA ?
Qui donne la colonne de la liste ? Une cellule ? Votre variable Col ?
 

Cousinhub

XLDnaute Barbatruc
Inactif
Bonjour,
@sylvanu , je suis un peu comme toi, très perplexe quant à la demande.
Sheldor annonce tout d'abord :
(j'ai 500 colonnes concernées et une centaine de listes)
Et dans son fichier "exemple", une liste, avec une colonne...
Donc, on ne sait pas combien de colonnes sont conditionnées par la liste "a", combien par la liste "b", etc...

Puis :
car je peux avoir des colonnes avec des milliers de lignes de remplies, désolé j'aurais dû être plus précis
On entre ici dans une autre dimension, dont le manque de précision y prend toute son importance
Comment sont disposées ces colonnes? les unes à côtés des autres, dont certaines avec une certaine liste de validation, d'autres, une autre liste....
Je pense qu'il serait préférable que notre ami remette un fichier un peu plus représentatif (comme aime si bien le dire @Phil69970 )
Bonne journée
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re, Bonjour Cousinhub,
Pour faire avancer , peut être une idée qui s'approche de la demande ....
En PJ un essai. On a 20 listes, on choisit le N° de liste désirée et la bonne liste est renommée, avec :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [D5]) Is Nothing Then
        Application.ScreenUpdating = False
        Col = [D5] ' N° de colonne désirée
        DL = Sheets("ma_liste").Cells(Cells.Rows.Count, Col).End(xlUp).Row
        Formule = "=ma_liste!R2C" & Col & ":R" & DL & "C" & Col
        [D8] = "'" & Formule
        ActiveWorkbook.Names("Liste").Delete
        ActiveWorkbook.Names.Add Name:="Liste", RefersToR1C1:=Formule
    End If
Fin:
End Sub
 

Pièces jointes

  • EssaiListe.xlsm
    20.1 KB · Affichages: 2

Sheldor

XLDnaute Occasionnel
Supporter XLD
rebonjour,

toutes mes excuses pour les explications, j'ai un fichier assez volumineux et complexe, j'ai réduit volontairement mon problème à quelque chose de plus digeste pour poser ma question pensant pouvoir adapter (à tort) votre aide à mon fichier

toutes vos réponses m'aident

si je peux abuser et refaire un fichier alors je m'y mets

encore merci
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Même si l'essentiel du travail a été fourni par Sylvanu, n'aies aucune crainte quant à une continuité dans l'entraide.
Donc, oui, on t'encourage a soumettre un nouveau fichier "représentatif" (T'as bien lu???? )
@ te relire
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
C'est surtout l'opacité de la demande qui me pose problème.
Par exemple, répondre aux questions du post #16 pourrait être utile.
Tester la PJ du post #18 donnerait peut être une piste ...
Mettre une PJ claire avec la bonne demande et un attendu serait évidemment le saint graal.
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
(en réalité 500 colonnes de 1 à 20 000 lignes dans 50 feuilles)
Comment repère t-on les feuilles qui contiennent les données ?
Code:
(en réalité 3000 items répartis en 150 listes)
Comment repère t-on où se trouve les listes ?

Donc en désespoir de cause, la PJ marche avec uniquement son contenu, et :
VB:
Sub ChercherIntrus()
Set Liste = Sheets("liste").Range("C11:C" & Sheets("liste").[C1000000].End(xlUp).Row)
With Sheets("data")
    DL = .[B1000000].End(xlUp).Row: Tablo = .Range("A1:I" & DL)
End With
[F2:H100000].ClearContents: Ligne = 2
For L = 5 To UBound(Tablo)
    For C = 2 To UBound(Tablo, 2) Step 2
        If Application.CountIf(Liste, Tablo(L, C)) = 0 Then
            Cells(Ligne, "F") = L: Cells(Ligne, "G") = C
            Cells(Ligne, "H") = Tablo(L, C)
            Ligne = Ligne + 1
        End If
    Next C
Next L
End Sub
A vous de l'adapter à vos listes qui sont quelque part, et à vos valeurs qui sont quelque part.
Mais l'adaptation doit être assez simple, mais ce sera très très long pour faire les calculs.
 

Pièces jointes

  • verif_liste_001.xlsm
    28.2 KB · Affichages: 4

Cousinhub

XLDnaute Barbatruc
Inactif
Re-,
Attention, cette demande de complément n'engage en rien une éventuelle réponse de ma part...
(Quand je disais qu'on changeait de dimension, je ne me trompais pas...)
Dans l'onglet "data" (qui peut donc exister en 50 exemplaires), est-ce que le format du tableau est bien conforme?
Quels seraient les titres de colonnes éventuels?
Est-ce que chaque colonne de données aura une colonne "nombre" à côté?
Est-ce que tu disposes déjà d'une "base" qui relie les colonnes à renseigner avec les listes de validations?
(genre, la colonne B comporte une validation de liste "blob", la C, une liste "carotte")
Est-il possible qu'une donnée "inexacte" dans la série "blob", peut se retrouver dans une autre liste?
(exemple, "intru savoyard" en F22, est incorrect car non présent dans la liste "tartiflette", mais est présent dans une autre liste)
Et enfin, est-ce que les données sont sous forme de Tableaux Structurés?
Bref, comme le dit sylvanu, ça va chauffer....
 

Cousinhub

XLDnaute Barbatruc
Inactif
merci beaucoup à nouveau, je vais pouvoir adapter le code du post 23 en faisant une boucle sur mes feuilles et je ne vous embête pas plus vous m'avez déjà beaucoup aidé

merci encore
bonne soirée
Re-,
Donc, ce cas de figure ne remonte pas, mais ce n'est pas grave?

Bonne soirée
 

Pièces jointes

  • 1712251433631.png
    8.6 KB · Affichages: 2
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…