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 :

[VBA-E]question simple


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 16
    Points : 14
    Points
    14
    Par défaut [VBA-E]question simple
    Bonjour à tous,

    Je suis un grand débutant en VBA et j'aimerai avoir un petit tuyau qui vous emblera peut être très simple. J'aimerai savoir comment fait-on pour déclencher une fonction ou une macro lorsque la valeur d'une cellule est changée (dans ce cas la valeur de la cellule est changée par un programme Python). Peut être qu'il faut utiliser une notion d'évenement...?
    En clair, mon programme Python change la valeur d'une cellule Excel, et j'aimerai que cela déclenche une "sub" dans le VBA d'Excel. Si vous avez la réponse soyez clair dans vos explications SVP je débute seulement.

    Je vous remercie d'avance

    Edit
    Change ton titre. Un titre explicite permet à ceux qui le lisent de savoir s'ils peuvent répondre, et ensuite, facilite une recherche de tous ceux qui poseront la même question que toi.
    Je te propose : macro lors d'un changement de cellule
    edit par ouskel'n'or

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    c'est cela un événement... passe dans l'éditeur VBE (Alt-F11) puis dans l'arborescence de droite tu doit trouver le feuille excel concerné, clic droit dessus puis code...puis utilise les combobox en haut pour aller dans la sub et choisi Worksheet et Change ce qui t'améne à la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    End Sub
    ...
    tu peu ensuite "tester" target.. pour savoir si la cellule modifié appartient aux cellules surveillée , par exemple pour la colonne D:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If Not Intersect(Target, Range("D:D")) Is Nothing Then
      MsgBox "Changement de valeur colonne d : " & Target.Address & " .. Valeur " & Target
    End If

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    puis dans l'arborescence de droite tu doit trouver le feuille excel concerné
    Comme je l'ai à gauche je précise :
    Dans l'éditeur VB -> Affichage -> Explorateur de projet
    Affiche la liste des classeurs ouverts.
    Sélectionne le nom de ton fichier - Fait apparaître les noms de tes feuilles de calcul si ce n'est pas déjà fait.
    Deux clics sur le nom de la feuille affiche la page de code de la feuille
    Pour le reste, voir ce que te dit bbil

    A+

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Merci à tous c'est ce que je voulais. Je vous remercie de vos réponses claires (de vous mettre au niveau des plus faibles). Juste pour être un peu chiant, ta méthode surveille une colonne, on peut surveiller uniquement une cellule?

    Excusez moi pour le nom du sujet qui n'était pas clair!

  5. #5
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    Ben oui: tu remplaces par ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(numligne, numcolonne)

  6. #6
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 16
    Points : 14
    Points
    14
    Par défaut
    Merci beaucoup, j'avais essayé un truc de ce genre là mais j'ai du faire des erreurs de synthaxes. Désolé du dérangement et merci encore.

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Excusez moi pour le nom du sujet qui n'était pas clair!
    Tu peux le changer en sélectionnant Editer en haut à droite de la fenêtre

    A+

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

Discussions similaires

  1. Question simple VBA.
    Par monf29 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 15/06/2007, 13h01
  2. Question simple sur la libération des objets
    Par gibet_b dans le forum Langage
    Réponses: 2
    Dernier message: 12/07/2004, 10h01
  3. DTS : Question simple sur sources de données
    Par guignol dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/05/2004, 12h09
  4. [LG]Choix du pascal ou autre ? Questions simples...
    Par vlacq dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2004, 23h42
  5. Question simple sur les threads :)
    Par momox dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/06/2003, 04h13

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