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 :

Déclenchement de macro - conflit entre deux macro [XL-2013]


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
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut Déclenchement de macro - conflit entre deux macro
    Bonjour,

    Je viens vers vous car je fais face à un problème et j'ai beau me creuser la tête et d'utiliser google. Je n'arrive pas à m'en sortir ...

    J'ai une feuille Excel avec un menu déroulant (Bouton active X : combobox1) qui déclenche une macro et qui colle des données sur une plage de A9 à K1000 dès que la valeur change.
    Sur cette feuille là, je surveille aussi tout changement de valeur sur la plage E10 à K200 et qui déclenche une autre macro.

    La première question, pourquoi lorsque je change ma valeur du menu déroulant, cela active la seconde macro. Est-ce que c'est parce que je viens coller des valeurs dans les cellules qui sont censé déclenché la seconde macro?

    Voici le premier 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
    Private Sub ComboBox1_Change()
     
    Dim DernLigne As Long
     
    'SearchRisk
    Sheets("Feuille1").Cells(1, 1).Value = ComboBox1.Text
     
    'Search the protocole
    Sheets("Feuille1").Cells(1, 10).AutoFilter field:=10, Criteria1:=ComboBox1.Text
     
     
        Application.ScreenUpdating = False
     
        DernLigne = Sheets("Feuille1").Range("F1").End(xlDown).Row + 1
     
    Sheets("Risks_Monitoring").Range("Z1:Z1000").Copy Sheets("Feuille2").Range("K9")
     
    End Sub
    Voici le second code de la feuille 2:

    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
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim ValeurLigneFollow As Long
    Dim ValeurLigneMonitoring As Long
     
    If Not Intersect(Target, Range("E10:E200")) Is Nothing Then
    'MsgBox "bonjour" & Target.Row
     
    ValeurLigneFollow = Range("A" & Target.Row).Value
    ValeurLigneFollow = ValeurLigneFollow + 1
     
     
    Sheets("Feuille1").Range("T" & ValeurLigneFollow) = Target
     
     
    End If
     
    End Sub
    j'ai pu essayer les deux codes séparément, ils fonctionnent mais lorsque j'essaie de les regrouper .... (erreur d'exécution 13 : incompatibilité de type)

    Si ça vous ais déjà arrivé, j'aimerais bien avoir votre feedback svp

    bonne journée

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    je pense que pendant l'exécution de

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub ComboBox1_Change()
    il faut que tu désactive les macros événementielles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents = False  au debut de la macro Private Sub ComboBox1_Change()
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.EnableEvents = true à la fin

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut
    ça à l'air de fonctionner, un grand merci.
    Je n'y avais pas penser ...

    a_diard


    je regarde retest en entier mon code et je vous confirme le bon déroulement

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2015
    Messages : 50
    Par défaut
    Je n'ai pas retrouvé le problème merci beaucoup

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 681
    Par défaut
    Bonjour,

    pourquoi lorsque je change ma valeur du menu déroulant, cela active la seconde macro.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Worksheet_Change
    Parce que c'est ce que tu lui demande de faire ?
    Ta combobox colle des données, donc change des valeurs donc déclenche ta macro évènementielle.
    Pour l'éviter tu peux ajouter application.enableevents = false au début de ton code, puis le même = true à la fin, pour désactiver TOUTES les macros évènementielle

    j'ai pu essayer les deux codes séparément, ils fonctionnent mais lorsque j'essaie de les regrouper .... (erreur d'exécution 13 : incompatibilité de type)
    Sur quelle ligne ? As tu vérifier le type / contenu de tes variables au moment de l'erreur ?

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

Discussions similaires

  1. [XL-2007] Erreur d'execution '13' entre deux macro
    Par INFINITY100 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/05/2015, 06h07
  2. [XL-2010] macro calcul entre deux TCD
    Par varik dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 04/06/2012, 10h38
  3. [MySQL] conflit entre deux fonction while
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/12/2006, 12h56
  4. [MySQL] Conflit entre deux fonction WHILE
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2006, 18h15
  5. Réponses: 3
    Dernier message: 07/07/2006, 18h00

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