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 :

Lancer macro sur base du résultat d'une cellule (avec formule IF) [XL-2010]


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
    Banque - comptabilité
    Inscrit en
    Janvier 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Banque - comptabilité
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 28
    Par défaut Lancer macro sur base du résultat d'une cellule (avec formule IF)
    Bonjour,

    J'ai une drop-down list qui va des cellules fusionnées G27 à O27.

    5 choix sont possibles dans mon "data validation", chacun génère un résultat de 1 à 5 dans la cellule R27 sur base de qui est choisi dans le menu déroulant grâce à la formule IF (dans R27 donc).

    J'aimerais qu'une macro se lance automatiquement lorsque la valeur de la cellule R27 change.

    Pouvez-vous m'aider sur le code nécessaire? Je suis novice en VBA.

    Ou alors s'il y a une façon plus simple?

    Merci d'avance pour votre aide.

  2. #2
    Invité
    Invité(e)
    Dernière modification par AlainTech ; 19/03/2016 à 18h04. Motif: Suppression de la citation inutile

  3. #3
    Membre averti
    Homme Profil pro
    Banque - comptabilité
    Inscrit en
    Janvier 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Banque - comptabilité
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 28
    Par défaut
    Bonjour rdurupt,

    Merci pour le lien, j'ai testé les solutions proposées et j'ai pas mal cherché mais cela ne fonctionne que si je change manuellement la valeur de la cellule R27.
    Or dans cette cellule il y a la formule "IF" (Excel en anglais) qui donne un résultat entre 0 et 5 sur base du choix du menu déroulant des cellules fusionnées G27 à O27.

    Voici le code que j'ai utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$R$26" Then
        Call FinancialDetails
        End If
    End Sub
    Le but de macro c'est de faire apparaître des lignes cachées qui se trouvent en dessous de G27 uniquement si le résultat de la cellule R27 est = à 2,3,4 ou 5 (et de les cacher si le résultat est 1 ou 0)

    Voici le code:

    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
    17
    18
    Sub FinancialDetails()
     
         If Range("R26").Value = "0" Or Range("R26").Value = "1" Then
            Range("G30,G32,K30,K32:M32,Q30").Select
            Selection.Locked = True
            Rows("30:32").Select
            Selection.EntireRow.Hidden = True
            Range("G26").Select
     
        ElseIf Range("R26").Value = "2" Or Range("R26").Value = "3" Or Range("R26").Value = "4" Or Range("R26").Value = "5" Then
             Range("G30,G32,K30,K32:M32,Q30").Select
            Selection.Locked = False
            Rows("30:32").Select
            Selection.EntireRow.Hidden = False
            Range("G26").Select
        End If  
     
    End Sub

    Quelqu'un sait s'il y a une façon de faire en sorte que la macro se lance sur base du résultat de la formule? Uniquement lors d'un changement de son résultat donc.
    Ou peut-être qu'il y a une autre façon plus simple?


    Merci d'avance!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    With Range("G30,G32,K30,K32:M32,Q30")
        Select Case Range("R26").Value
           Case 0 To 1
                .Locked = True
                .EntireRow.Hidden = True
           Case 2 To 5
                .Locked = False
                .EntireRow.Hidden = False
        End Select
     End With

  5. #5
    Membre averti
    Homme Profil pro
    Banque - comptabilité
    Inscrit en
    Janvier 2016
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Banque - comptabilité
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2016
    Messages : 28
    Par défaut
    Re-bonjour rdurupt,

    Merci pour ton code qui simplifie grandement mes "IF, ElseIF", mais mon problème c'est plutôt comment faire en sorte que la macro se lance automatiquement quand le résultat de la cellule R26 change?

    • Si je change manuellement sa valeur ça marche
    • Si la valeur change via la formule IF (celle d'Excel pas VBA) cela ne marche pas



    Pour info voici la formule IF de la cellule R26
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =IF(G26="","0",IF(G26=Sheet2!M3,1,IF(G26=Sheet2!M4,2,IF(G26=Sheet2!M5,3,IF(G26=Sheet2!M6,4,5)))))

  6. #6
    Membre Expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Par défaut
    Essaye sur l'event suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Calculate()
     
    End Sub

  7. #7
    Invité
    Invité(e)
    Par défaut
    regarde le fichier joint!
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. [XL-2007] Calculer le contenu d'une cellule avec formule
    Par Bulveye dans le forum Excel
    Réponses: 1
    Dernier message: 11/02/2014, 17h54
  2. Réponses: 7
    Dernier message: 17/09/2010, 10h21
  3. lancer une macro lors de la saisie d'une cellule
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/01/2009, 09h52
  4. Excel macro validation résultats d'une cellule
    Par mikske dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 13/06/2008, 16h17
  5. Réaliser une macro qui enregistre le résultat d'une requête
    Par boulette85 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/02/2007, 18h36

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