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 une macro lors de la modif d'une case excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut Lancer une macro lors de la modif d'une case excel
    Peut-on lancer une macro lorsque je modifie la valeur d'une case ( vénement modif???), je souhaite appliquer cela à un certain nb de cases.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 24
    Par défaut
    Peut-être pourrais-tu tester si les cases à modifier sont sélectionnées puis le cas échéant tu vérifies si le résultats de la case et identique ke précédemment. En gros dés qu'une case est sélectionnée, tu enregistres sont son contenu puis lorsque la case n'est plus sélectionnée tu testes si il y a égalité entre le contenu initial et le nouveau. Si ce n'est pas le cas tu lances la maccro.
    Bon je suis débutant alors un membre plus chevronné te donnera ptet une solution plus efficace mais c'est une piste logique.
    Bon courage

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tiens j'ai eu la même question avant-hier... voir événement Worksheet_change :

    [VBA-E] condition dans les cellules



  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut complément d'infos
    Je suis allé sur le post mentionné, et j'ai trouvé le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Worksheet_Change(ByVal Target As Range)
     
      'On surveille cellule C1..
     
      If Not (Intersect(Target, [C1]) Is Nothing) Then
        If Target.Address = [C1].Address And [C1] = "a" Then
                Range("C2:C20").Value = "a"
        End If
     
      End If
     
    End Sub
    Par contre je souhaite le faire évoluer de la façon suivante, la zone à surveiller est a14:a59, par contre je souhaite récupérer la case modifiée car j'en ai besoin pour générer la modification de la case sur la même ligne mais 2 colonnes aprés en lancant une macro.

    Merci de m'aider à modifier ce code car je n'arrive pas à trouver la solution

  5. #5
    Membre émérite
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Par défaut
    Regarde le profil de la fonction Worksheet_Change, tu verras qu'il met en oeuvre le paramètre Target...

  6. #6
    Membre expérimenté Avatar de conconbrr
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    La cellule que tu viens de modifier a pour range "Target"
    Exemple si tu modifies "A1" alors Target vaut : Range("A1")

    Si tu veux surveiller une zone ça ne pose aucun souci, il suffit de vérifier que la case que tu changes (Target) n'intersecte pas ta zone de surveillance, c'est à dire range("a14:a59")

    Edit:Moi-même grillé par catbull

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Target est une cellule.

    Il te suffit de t'y référer avec un offset.

    Edit --> grillé par le cucurbitacé.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2005
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 98
    Par défaut
    Aves l'aide en ligne j'ai compris le fonctionnement de Intersect mais pon probléme réside plutôt dans la syntaxe, j'ai essayé la suivante mais cela ne passe pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Not (Intersect(Target, [a14:a59]) Is Nothing) Then
        If Target.Address = [a14:a59].Address And [a14:a59] = "VIDE" Then
                Range(C2).Value = "a"    End If
                
      End If
    probléme d'incompatibilté de type pour la zone en rouge


    merci

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

Discussions similaires

  1. Déclenchement d'une macro lors de la modification d'une cellule
    Par bohemian dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/06/2012, 11h01
  2. Déclenchement d'une macro lors de la modification d'une cellule
    Par mirmae dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/06/2012, 15h28
  3. Lancement d'une macro lors de la modification d'une cellule
    Par Gerardd dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/06/2010, 11h04
  4. [XL-2003] Exécution d'une macro lors de la modification d'une plage de cellules
    Par martinmacfly dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 08/01/2010, 10h51
  5. 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

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