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 Automatique [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut Macro Automatique
    Bonjour,

    Je suis tout nouveau sur ce forum. J'ai quelques bases sur VBA.
    J'ai utiliser la fonction recherche du forum pour essayer de résoudre mon problème mais je n'ai rien trouver de concluant.

    Le problème est assez simple. Sur une feuille, j'ai une liste déroulante dans une cellule et un chiffre correspondant au nom sélectionné dans la liste dans la cellule à coté.

    Je tente de tout programmé sous vba bien entendu. J'aimerais juste pour le moment que lorsque le contenu de la cellule de la liste est modifié manuellement, la cellule lié soit modifiée automatiquement.
    Pour lié les 2 cellules, j'ai simplement utilisé formule If-ElseIf

    Merci

  2. #2
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour Sibuxian,

    j'ai supposé que la liste de validation est sur la feuille 2 cellule C2
    et que la formule est à coté en D2,
    j'ai nommé la plage no. "plgNo" et la plage nom correspondant "plgNom"

    par formule:
    =INDEX(plgNom;EQUIV(C2;plgNo;0))

    et par vba :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Sheets("Feuil2")
    .Range("D2") = Application.Index([plgNom], Application.Match(.Range("C2"), [plgNo], 0))
    End With
    isabelle

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    bonjour et merci pour ta réponse.

    Mais enfaite ma question se résume plus à comment lancer la macro VBA en permanence. Je comprends ton code (je pense). Mais lorsque je modifie le contenue de la cellule de la liste déroulante, la cellule à coté ne se modifie pas directement, il faut que je lance la macro.

    Sinon oui en passant directement par excel, la modification sera instantanée. Mais je voulais savoir si c'était possible de le faire que sous VBA.

  4. #4
    Membre émérite Avatar de sabzzz
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 748
    Par défaut
    bonjour Sibuxian,

    voila,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
    Set cel = Application.Intersect(Target, Range("C2"))
     If Not cel Is Nothing Then
      Range("D2") = Application.Index([plgNom], Application.Match(Range("C2"), [plgNo], 0))
     End If
    End Sub
    isabelle

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    C'est parfait, merci beaucoup, je ne connaissais pas.

  6. #6
    Membre averti
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    51
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2010
    Messages : 51
    Par défaut
    Bon enfaite, ca marche bien. même trop bien ^^.
    Enfaite, j'ai essayer de combiner le code pour que cela se fasse sur plusieurs cellules mais maintenant, cela produit une boucle infinie.
    J'ai peut être mal définie mes variables.

    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
    19
    20
    21
    22
    23
    24
    25
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim HQ1_GlobalCost As Integer
    Dim HQ2_GlobalCost As Integer
     
    'HQ 1
    Set cel = Application.Intersect(Target, Range("A5"))
     If Not cel Is Nothing Then
      Range("B5") = Application.Index(Sheets(strSheet2).Range("A2:B5"), Application.Match(Range("A5"), Sheets(strSheet2).Range("A2:A5"), 0), 2)
     End If
     
    HQ1_GlobalCost = Application.Sum(Range("D7:K7"))
    Range("B6") = HQ1_GlobalCost
     
     
    'HQ 2
    Set cel = Application.Intersect(Target, Range("A9"))
     If Not cel Is Nothing Then
      Range("B9") = Application.Index(Sheets(strSheet2).Range("A2:B5"), Application.Match(Range("A9"), Sheets(strSheet2).Range("A2:A5"), 0), 2)
     End If
     
    HQ2_GlobalCost = Application.Sum(Range("D11:K11"))
    Range("B10") = HQ2_GlobalCost
     
    End Sub
    Enfaite, c'est les 2 dernières lignes qui me bloquent en boucle infinie. Si je les retire, tout va bien.

    Merci

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

Discussions similaires

  1. [Powerpoint] : Lancement Macro automatique
    Par vampyrx dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 07/03/2017, 09h58
  2. Réponses: 1
    Dernier message: 26/08/2007, 20h07
  3. [Excel] Afterupdate / Macro automatique
    Par Jah78 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/08/2006, 18h25
  4. [VBA-E] Macro automatique ouverture Excel
    Par P50 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 03/04/2006, 11h42
  5. Réponses: 4
    Dernier message: 19/05/2005, 11h51

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