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

XL 2016 VBA : action si une cellule contient un texte

QuentinV12

XLDnaute Nouveau
Bonjour,

je recherche un code, une formule qui me permettrait de déclencher une action si une colonne contient une certaine valeur. exemple :

la colonne B contient des chaines de textes comme ATP - JUI - LOP ou ATP - LOP

j'ai une comobox avec en valeur ATP ou JUI ou LOP. je voudrais une fonction qui fait que si je sélectionne ATP dans ma comobox, ma colonne A n'affiche que les lignes contenant ATP dans la colonne B. Donc une formule qui m'affiche les lignes qui affichent la sélection du userform

je vous joins un fichier exemple

merci d'avance pour votre aide

Quentin
 

Pièces jointes

  • testcondition.xlsm
    18.6 KB · Affichages: 32

Dranreb

XLDnaute Barbatruc
Bonjour.
Ceci a l'air de marcher :
VB:
Option Explicit
Private Sub UserForm_Initialize()
   ComboBox1.List = Feuil2.[B4:B7].Value
   End Sub
Private Sub ComboBox1_Change()
   Feuil1.AutoFilter.Range.AutoFilter Field:=2, Criteria1:="=*" & ComboBox1.Text & "*", Operator:=xlAnd
   End Sub
 

QuentinV12

XLDnaute Nouveau

est-ce qu'il y a moyen d'avoir quelque chose dans le genre mais avec une condition if (enfait c'est la syntaxe de la condition que je ne trouve pas..)

merci d'avance
 

Dranreb

XLDnaute Barbatruc
Vous vouliez qu'elles soient juste affichées. Si en plus vous voulez qu'elle soient colpiées et collées ailleurs, ajoutez les instructions qui font ça. Aidez vous de l'enregistreur de macro pour le brouillon.
 

QuentinV12

XLDnaute Nouveau
Vous vouliez qu'elles soient juste affichées. Si en plus vous voulez qu'elle soient colpiées et collées ailleurs, ajoutez les instructions qui font ça. Aidez vous de l'enregistreur de macro pour le brouillon.

Mais en utilisant une condition (souvent utiles pour d’autres actions) est ce qu’il y a moyen d’ecrire Juste le If ... Then ? (Je m’occupe du reste)
 

Dranreb

XLDnaute Barbatruc
Là ne sont affichées que les lignes contenant la valeur de la ComboBox1
Si vous préférez ne plus filtrer et passer en revue toutes les lignes vous pouvez faire
VB:
Private Sub ComboBox1_Change()
   Dim Z$, T(), L&
   Z = "*" & ComboBox1.Text & "*"
   T = Feuil1.AutoFilter.Range.Value
   For L = 1 To UBound(T, 1)
      If T(L, 2) Like Z Then
         …
         End If: Next L
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…