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 :

Macro fonction qui combine deux conditions


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 36
    Par défaut Macro fonction qui combine deux conditions
    Bonjour,

    Je suis assez novice sur les fonctions VBA, le plus souvent je travaille avec des SI et SIERREUR mais là j'ai besoin de passer à une fonction pour me faciliter la vie.

    J'ai quatre colonnes : Colonne 1 (id) Colonne 2 Colonne 3 Colonne 4


    je voudrai remplire la colonne 4 sous conditions de ce qui aura dans colonne 2 et colonne 3 combinés !
    Voici un fichier excel ou je vous ai mis un exemple, merci d’avanceà automatiser.xlsx de votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    254
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2018
    Messages : 254
    Par défaut
    Bonjour à toi,

    Je t'invite à lire ceci

    https://www.developpez.net/forums/d8...s-discussions/

    Pour faire ce que tu as besoin ça fonctionne quasiment comme sur les fonctions natives d'Excel


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If 'Condition1' And/Or 'Condition2
     
    'Procédure
     
    End if

  3. #3
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 36
    Par défaut
    Merci de la précieuse aide Trystan et bonne journée.

    Dans l'attente d'une réponse un peu plus élaborée et expliqué, je vous remercie d'avance.

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    quelles seraient les conditions et actions à entreprendre ?

    suivant la/les quantités, une structrue If/ElseIf/Else/End If ou Select Case sera privilégiées

    voir même, si ce sont des conditions/actions plus basiques, en passant par l'injection d'une formule sur l'ensemble de la colonne 4, et remplacement des formules par leur valeur

  5. #5
    Membre averti
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2018
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Septembre 2018
    Messages : 36
    Par défaut
    Je voudrai vérifier avec un vlookup si un mot apparait dans la colonne 2 et si oui regarder si un autre mot apparait dans la colonne 3 et de ce fait remplir la colonne 4 avec un nombre désigné "1" par exemple.
    de toute manière dans les colonnes 2 et 3 je ne peux avoir que 3 choses dans chacunes des deux : Colonne 2( "x";"y";vide) et colonne 3("a";"b";vide). et tout dépend de ce que j'aurai dans les deux pour remplire la colonne 4 qui pourrait donc avoir 4 valeurs differentes suivant les valeurs de col 2 et 3 ( 4 et pas 9 car si j'ai un vide je ne fais rien ).

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    un exemple adapté au classeur exemple, qui utilise une formule matricielle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub toto()
    Dim Plage As Range, Cell As Range
     
        With Feuil1.Cells(1, 1).CurrentRegion
            Set Plage = .Columns(4).Resize(.Rows.Count - 1, 1).Offset(1, 0)
        End With
     
        For Each Cell In Plage.Cells
            Cell.FormulaArray = "=IF(AND(COUNTIF(RC[-2],""*non*"")=0,COUNTIF(RC[-1],""*ok*"")=0),"""",SUM(IF(NOT(ISERROR(SEARCH(""non"",RC[-2]))),1,3))+SUM(IF(NOT(ISERROR(SEARCH(""ok"",RC[-1]))),0,1)))"
            Cell.Value = Cell.Value
        Next Cell
     
    End Sub
    avec une structure If/End if

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Sub toto()
    Dim Plage As Range, Cell As Range, Compteur As Long
     
        With Feuil1.Cells(1, 1).CurrentRegion
            Set Plage = .Columns(4).Resize(.Rows.Count - 1, 1).Offset(1, 0)
        End With
     
        For Each Cell In Plage.Cells
            Compteur = 0
            If Cell.Offset(0, -2).Value Like "*non*" Then Compteur = 1 Else Compteur = 3
            If Not Cell.Offset(0, -1).Value Like "*ok*" Then Compteur = Compteur + 1
     
            Cell.Value = Compteur
        Next Cell
     
    End Sub

Discussions similaires

  1. [XL-2007] Fonction "SI" avec deux conditions
    Par sporyous dans le forum Excel
    Réponses: 3
    Dernier message: 27/03/2017, 01h52
  2. fonction qui return deux tableau
    Par 1google dans le forum Images
    Réponses: 6
    Dernier message: 13/04/2011, 21h48
  3. Réponses: 3
    Dernier message: 02/07/2009, 10h46
  4. Fonction qui renvoie deux valeurs
    Par Sarune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/11/2008, 16h33
  5. Fonction qui renvoie deux valeurs
    Par Fractal LLG dans le forum Caml
    Réponses: 4
    Dernier message: 22/03/2008, 17h45

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