IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Créer une double condition pour verifier le contenu de 2 colonnes sur une meme ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut Créer une double condition pour verifier le contenu de 2 colonnes sur une meme ligne
    Bonjour

    j'ai un tableau avec plusieurs colonnes, notamment A et B.
    Je souhaite retourner le numero de la ligne qui contient mes deux valeurs donc un "ET" dans ma condition.

    ma condition est donc "colonne A contient toto" ET "colonne B contient tata"
    Je prefererai ne pas faire de loop de tout le fichier car trop gros.

    dans mon code si dessous, je ne sais faire que la premiere partie de ma condition, comment puis-je y integrer la seconde partie avec un ET (et pas un OU)

    merci d'avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set FoundCell = monWs.Range("A:A").Find(what:="toto", lookat:=xlWhole)
    If Not FoundCell Is Nothing Then
        MsgBox ("toto trouvé " & FoundCell.Row)
    Else
        MsgBox ("toto pas trouvé")
    End If
    mais j'aurai voulu doubler ma condition
    Colonne A = "toto" ET colonne B = "tata"
    mais je n'arrive pas a faire ce ET dans ma condition.
    quelqu"un a-t-il une idee ?

  2. #2
    Membre chevronné Avatar de pasdechances
    Homme Profil pro
    Alternant, Ingénieur en systèmes Informatiques et Industriels
    Inscrit en
    Septembre 2015
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant, Ingénieur en systèmes Informatiques et Industriels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 218
    Par défaut
    Coucou,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Set FoundCelltata = monWs.Range("B:B").Find(what:="tata", lookat:=xlWhole)
    Set FoundCelltoto = monWs.Range("A:A").Find(what:="toto", lookat:=xlWhole)
     
    If Not FoundCelltoto Is Nothing and not FoundCelltata  is nothing Then
        MsgBox ("toto et tata trouvé " & FoundCell.Row)
        MsgBox (" tata est en " & FoundCelltata.Row)
        MsgBox (" toto est en " & FoundCelltoto.Row)
    Else
        MsgBox ("toto pas trouvé")
    End If
    PS : code pas tester

  3. #3
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut
    merci mais non cette option n'est pas valable pour moi

    je peux avoir
    Colonne A Colonne B
    toto blahablh
    toto tata
    zerzer tata

    or je ne veux retenir QUE la ligne 2 d'où le ET à ma condition

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    le ET est respecté dans mon code

  5. #5
    Membre chevronné Avatar de pasdechances
    Homme Profil pro
    Alternant, Ingénieur en systèmes Informatiques et Industriels
    Inscrit en
    Septembre 2015
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Alternant, Ingénieur en systèmes Informatiques et Industriels
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Septembre 2015
    Messages : 218
    Par défaut
    et oui Bbil est c'est le big master xD
    souvient toi yaya_la_rafale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if x < y then 
        if y < z then
     
        end if
    end if
    c'est pareil que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if x < y and y < z then
     
    end if
    et le OU c'est plutot çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if x < y then 
     
    end if
    if y < z then
     
    end if
    ou ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if x < y or y < z then
     
    end if

  6. #6
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut
    merci bbil, je n'avais pas vu ta réponse.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF FoundCell.Offset(0,1)="tata" then
    mais où est-ce que je spécifie chercher tata sur la colonne B ?

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu teste pas pour chaque colonne ou tu as trouvé toto en A tu regarde s'il y as tata dans la cellule présente colonne de droite Offset(0,1) soit la B..

  8. #8
    Membre confirmé Avatar de yaya_la_rafale
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 92
    Par défaut
    génial ca marche bien.

    mes vraies colonnes sont O et A ce qui est donc pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cibleTrouve.Offset(0, -14)
    j'aurai trouvé plus simple de nommer la colonne elle meme, mais bon génial comme ca !
    merci beaucoup !

  9. #9
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour,

    utilise Offset pour tester le contenu de ta colonne B..


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Set FoundCell = monWs.Range("A:A").Find(what:="toto", lookat:=xlWhole)
    If Not FoundCell Is Nothing Then
       IF FoundCell.Offset(0,1)="tata" then
        MsgBox ("toto et tata trouvé " & FoundCell.Row)
      end if
    Else
        MsgBox ("toto pas trouvé")
    End If

Discussions similaires

  1. Double conditions pour verrouiller une action
    Par ThSPB dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/02/2011, 12h14
  2. Réponses: 0
    Dernier message: 25/01/2010, 14h16
  3. Comment créer une double condition
    Par PPLILH2008 dans le forum Excel
    Réponses: 5
    Dernier message: 24/06/2008, 14h07
  4. ouverture d'un formulaire sur une double condition
    Par mat75019 dans le forum Access
    Réponses: 6
    Dernier message: 27/10/2006, 16h13
  5. Réponses: 8
    Dernier message: 02/05/2006, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo