XL 2019 Si cette cellule ne contient pas (X , Y, Z) alors la cacher

Kushi

XLDnaute Nouveau
Bonjour à tous,

Je suis débutant VBA et je vous demande de l'aide après plusieurs heures de recherche...

J'ai un tableau suivant A1:E(nb lignes variant)
et je souhaiterais faire un tri comme expliqué ci dessous:

Je veux que dans la colonne E s'affiche "OK" si dans la colonne D il y à le texte "VIS" ou "ECROU" ou "RIVET" ... ou "RONDELLE" ( par exemple )
S'il n'y a pas ces valeurs je souhaiterai cacher la ligne correspondante.

Alors avec ce que j'ai pu chercher sur internet j'ai trouvé comment faire une sorte de boucle mais ça ne fonctionne pas car je n'arrive pas a installer le pack de fonction Xlp...

Le code en question :

dim tableauVIS, tableauECROU, tableauRIVET
dim i as integer

do while Range("A" & i+2).value <>""
i = i + 1
loop

tableauVIS = cellsSearch(Range("D1: D" & i+2 ), "VIS")
tableauECROU = cellsSearch(Range("D1: D" & i+2 ), "ECROU")
tableauRIVET = cellsSearch(Range("D1: D" & i+2 ), "RIVET")

Do while i<0
if tableauVIS(i) = "D" & i+2 then
Range("E" & i+2).value = "OK"

elseif tableauECROU(i) = "D" & i+2 then
Range("E" & i+2).value = "OK"

elseif tableauRIVET(i) = "D" & i+2 then
Range("E" & i+2).value = "OK"

else
row(i+2).hide
end if

i = i - 1
Loop

Merci de m'aider rapidement ^^
 
Dernière édition:
Solution
Hello
j'ai mis la colonne O au hasard
je viens de modifier pour faire de la liste un tableau structuré qui s'appelle "Critères"
je l'ai mis dans une feuille "Listes"
il te suffit de déplacer ce tableau où tu le souhaites;
la seule modif à faire dans le code, c'est au cas où tu changes le nom de la feuille
VB:
   .Range.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("Listes").ListObjects("Critères").Range, Unique:=False

exemple, si tu déplaces le tableau de la feuille "Listes" vers une feuille qui s'appelle "AutreNom"
tu dois mettre à jour la ligne de code avec le nouveau nom

VB:
    .Range.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("AutreNom").ListObjects("Critères").Range, Unique:=False

vgendron

XLDnaute Barbatruc
Bonjour et bienvenu

déjà. aider rapidement.. c'est si on veut: si tu relis la charte, tu verras qu'il n'y aucune obligation de résultat et de temps imparti: c'est un site de bénévoles. donc. c'est au bon vouloir des intervenants
et demander aux gens de faire vite.. je pense que ca a exactement l'effet inverse.. ca ne donne pas envie..


maintenant, pour t'aider, il faut que tu postes un fichier exemple.. parce que on ne va pas recréer un fichier qui a peu de chance de correspondre à ton fichier.
fichier exemple = fichier qui représente la structure de ton fichier original SANS aucune données confidentielles. que des données bidons mais exploitables.

pourquoi souhaites tu installer le "pack de fonction Xlp": pour ce qui semble etre une fonction spécifique "CellsSearch" ?? VBA a déjà tout ce qu'il faut pour chercher quelque chose dans des cellules..
 

Kushi

XLDnaute Nouveau
Bonjour et bienvenu

déjà. aider rapidement.. c'est si on veut: si tu relis la charte, tu verras qu'il n'y aucune obligation de résultat et de temps imparti: c'est un site de bénévoles. donc. c'est au bon vouloir des intervenants
et demander aux gens de faire vite.. je pense que ca a exactement l'effet inverse.. ca ne donne pas envie..


maintenant, pour t'aider, il faut que tu postes un fichier exemple.. parce que on ne va pas recréer un fichier qui a peu de chance de correspondre à ton fichier.
fichier exemple = fichier qui représente la structure de ton fichier original SANS aucune données confidentielles. que des données bidons mais exploitables.

pourquoi souhaites tu installer le "pack de fonction Xlp": pour ce qui semble etre une fonction spécifique "CellsSearch" ?? VBA a déjà tout ce qu'il faut pour chercher quelque chose dans des cellules..
Bonjour et Merci ,

Oui excuse moi pour la contrainte de temps que j'ai "imposé" je ne le voyais pas comme ça...

Le fichier exemple est donc ci-joint.

Je souhaitais installer le pack de fonction Xlp car c'est une méthode que j'ai trouvé le plus couramment sur les forums tant dis que s'il y a des fonctions recherches sur VBA je ne l'ai vu que très rarement et je n'ai pas réussi à le mettre en relation sur mon exemple...
 

Pièces jointes

  • Fichier Exemple.xlsx
    11.1 KB · Affichages: 4

vgendron

XLDnaute Barbatruc
Hello
j'ai mis la colonne O au hasard
je viens de modifier pour faire de la liste un tableau structuré qui s'appelle "Critères"
je l'ai mis dans une feuille "Listes"
il te suffit de déplacer ce tableau où tu le souhaites;
la seule modif à faire dans le code, c'est au cas où tu changes le nom de la feuille
VB:
   .Range.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("Listes").ListObjects("Critères").Range, Unique:=False

exemple, si tu déplaces le tableau de la feuille "Listes" vers une feuille qui s'appelle "AutreNom"
tu dois mettre à jour la ligne de code avec le nouveau nom

VB:
    .Range.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("AutreNom").ListObjects("Critères").Range, Unique:=False
 

Pièces jointes

  • Fichier Exemple.xlsm
    24.2 KB · Affichages: 4

Kushi

XLDnaute Nouveau
Hello
j'ai mis la colonne O au hasard
je viens de modifier pour faire de la liste un tableau structuré qui s'appelle "Critères"
je l'ai mis dans une feuille "Listes"
il te suffit de déplacer ce tableau où tu le souhaites;
la seule modif à faire dans le code, c'est au cas où tu changes le nom de la feuille
VB:
   .Range.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("Listes").ListObjects("Critères").Range, Unique:=False

exemple, si tu déplaces le tableau de la feuille "Listes" vers une feuille qui s'appelle "AutreNom"
tu dois mettre à jour la ligne de code avec le nouveau nom

VB:
    .Range.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Sheets("AutreNom").ListObjects("Critères").Range, Unique:=False
D’accord c’est super je te remercie pour le temps que tu as pu m’accorder 😊!
 

Discussions similaires

Réponses
12
Affichages
801

Statistiques des forums

Discussions
315 098
Messages
2 116 202
Membres
112 684
dernier inscrit
alarriere