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 sous condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut Macro sous condition
    Bonjour à tous,

    Mon soucis est le suivant (j'espère me faire bien comprendre)

    J'aimerais exécuter une macro sous condition

    Si la caption du bouton équivaut au donné de la colonne A de ma feuille1 alors elle effectuera mon premier code vba
    sinon elle effectuera mon deuxième code vba

    Exemple:
    en colonne A j'ai des familles (Bières, Limonade, café, etc.)
    dans les autres colonnes ses mes produits

    Si je clic sur le bouton ou sa caption est bière alors elle effectue mon premier code
    si la caption n'ai pas repris dans la colonne A alors elle effectue mon deuxième code

    du style:
    if commandbutton1.caption = Feuil1 Rang(A4:A10) alors premier code
    else deuxième code

    J'espère m'être fais bien comprendre

    En vous remerciant

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut re
    Hello,

    Peut être en utilisant la fonction find de vba
    Si la caption du commandbutton1 est trouve dans Colonne À alors...
    Ajouter dans ton commandbutton et remplacer les msgbox par des appels à tes différentes macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Dim x As Range
    Dim sCriteria as String
     
    sCriteria= Commandbutton1.caption
     
    Set x = Range("A1:A100").Find(sCriteria, , xlValues, xlWhole, , , False)
      If Not x Is Nothing Then
        MsgBox "trouvé en " & x.Address 
      Else
       MsgBox "n'existe pas..."
      End If

  3. #3
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,

    Essayes cette méthode par exemple si ton bouton est sur la feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Sheets("Feuil1")
        If Application.IsNA(Application.Match(.CommandButton1.Caption, .Range("A:A"), 0)) Then
        ' deuxième code
        Else
        ' premier code
        End If
    End With

  4. #4
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut
    Bonjour mfoxy et anasecu,

    Je tiens tous d’abord à vous remercier de votre temps pour mon souci.

    Anasecu, mon bouton ce trouve dans un userform

    Mfoxy, j’ai essayé ton code il ma l’aire de marché, mais je crois que je l’utilise mal. Le code ne marche que sur mon premier bouton et non sur les autres qui sont à la suite.

    Je me permets de mettre ci-joint un exemple, en vous remerciant encore

    https://www.cjoint.com/c/HDbs5XNAspy

  5. #5
    Membre Expert
    Inscrit en
    Septembre 2007
    Messages
    1 142
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 142
    Par défaut
    Bonjour,

    Citation Envoyé par _flori_ Voir le message
    Anasecu, mon bouton ce trouve dans un userform
    Il suffit d'adapter comme ceci par exemple.

    Cependant comme tu veux fonctionner avec de nombreux boutons, ce n'est pas la bonne formule.
    Il te faut gérer avec un module de classe et tu n'auras qu'un seul code qui fonctionnera sur tous tes boutons.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut
    Bonjour Anasecu,

    J’ai changé en ce que tu me proposé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton2_Click()
    Dim x As Range
    Dim sCriteria As String
     
    sCriteria = CommandButton1.Caption
     
    Set x = Sheets("Familles").Range("A1:A100").Find(sCriteria, , xlValues, xlWhole, , , False)
      If Not x Is Nothing Then
        UserForm2.Show
      Else
       TextBox1.Value = "eau"
      End If
    End Sub

    Par :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton2_Click()
        If Application.IsNA(Application.Match(Me.CommandButton2.Caption, Sheets("Général").Range("A:A"), 0)) Then
            TextBox1.Value = "eau"
        Else
            UserForm2.Show
        End If
    End Sub

    Cependant, ça reste pareil

    Je deviens fou mais vais continuer à chercher

    Je te remercie

  7. #7
    Membre confirmé
    Homme Profil pro
    independant
    Inscrit en
    Février 2018
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : independant

    Informations forums :
    Inscription : Février 2018
    Messages : 74
    Par défaut
    Bonjour Anasecu,

    J'ai trouvé ce qu'il n'allais pas

    voila le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim x As Range
    Dim sCriteria As String
    sCriteria = CommandButton1.Caption
    Set x = Sheets("Familles").Range("A1:A100").Find(sCriteria, , xlValues, xlWhole, , , False)
     
    If Not x Is Nothing Then
    UserForm1.Show
    Else
    TextBox1.Value = "Eau"
    End If
    End Sub
    Je devais juste changer le nom de la caption commandbutton dans scritera
    si bouton 1 alors sCriteria = CommandButton1.Caption
    si bouton 2 alors sCriteria = CommandButton2.Caption

    Est-ce que je peux abuser de ton temps

    comme tu peux voir:
    si la caption est dans l'onglet Familles, la macro ouvre un userform (pour ce code userform1)
    si la caption n'est pas dans l'onglet familles, la macro écrit "Eau" dans mon textbox1

    Ce que j'aimerais, si c'est possible
    c'est qu'au lieu d'ouvrir l'userform1, elle ouvre l'userform qui conviens

    Exemple
    si la caption est Bière alors elle m'ouvre mon userform Bière
    si la caption est Limonade alors elle m'ouvre mon userform Limonde
    est non à chaque fois mon userform1

    J'espère m'être fais bien comprendre

    Je te remercie encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Macros sous condition dans une autre macro
    Par vvl_5 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/12/2013, 20h14
  2. [AC-2007] ERREUR 0 : Lancer une macro sous condition avec "ExecuterMacro"
    Par Octo LPO dans le forum Macros Access
    Réponses: 2
    Dernier message: 01/02/2013, 15h31
  3. exécution macro sous condition
    Par arthour973 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/12/2011, 10h37
  4. impossible de démarrer macro sous condition
    Par ric009 dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 07/05/2011, 22h24
  5. [AC-97] Macro sous condition
    Par julio79 dans le forum IHM
    Réponses: 0
    Dernier message: 28/05/2009, 18h17

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