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 :

Appel d'une macro en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut Appel d'une macro en VBA
    Bonjour la Communauté,

    J'essaie d'activiter ue macro lors du changement de valeur d'une formule dans une excel. Mais je dois a chaque fois lancer le module par la fenêtre VBE.
    Ensuite il effectue le changement et revient à chaque fois dans la fenêtre VBE au lieu de rester dans la feuille où a lieu le changement
    Quelqu'un pourrait-il m'aider svp?

    Un grand merci d'avance

    Habiler

    Sous module1 j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change()
    Call ifFileExists 
    End Sub
    et en module 2 j'ai :

    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
    Sub ifFileExists()
     
        Dim RangeOfCells As Range
        Dim Cell As Range
        Dim songname As String
        Dim Nom As Range
     
        Dim TotalRow As Long
     
        TotalRow = Range("D" & Rows.Count).End(xlUp).Row
     
        Set RangeOfCells = Range("D2:D" & TotalRow)
     ' If Not Application.Intersect(Target, Range("A:l")) Is Nothing Then
        For Each Cell In RangeOfCells
     
            songname = "c:\Habiler\" & _
                       Cell & "\" & Cell.Offset(0, 5) & "_" & Cell.Offset(0, -2) & ".Pdf"
            Debug.Print "Checking: " & songname
            Cell.Font.Color = IIf(Len(Dir(songname)) = 0, vbRed, vbBlack)
     
        Next Cell
      '  End If
        MsgBox "Done, verify data first time"
     
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'essaie d'activiter ue macro lors du changement de valeur d'une formule dans une excel.
    La procédure événementielle dans laquelle vous invoquez la procédure nommée ifFileExists ne s'exécutera qu'à condition que l'on modifie le contenu d'une cellule de la feuille et non au recalcul d'une formule qui s'y trouverait;
    Je ne sais pas ce que vous voulez faire mais dans votre cas, je créerais une fonction personnalisée utilisable directement dans excel

    Quelques liens de tutoriels à lire si vous le souhaitez
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut èmjhhjm
    Le but est effectivement d'activer iffileExists lors d'un changement de valeur dans la feuille.
    Mais qu'entendez-vous par "fonction personnalisée utilisable directement dans excel"?

    bien à vous

    Eric

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut
    J'ai modifié le code comme suit et maintenant cela fonctionne au changement de valeur de la feuille mais toute la colonne D est rouge alors que seules les cellules dont Songname n'existe pas
    dans P:\habiler\ doit ëtre en rouge

    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
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
        Dim RangeOfCells As Range
        Dim Cell As Range
        Dim songname As String
        Dim Nom As Range
     
        Dim TotalRow As Long
     
        TotalRow = Range("D" & Rows.Count).End(xlUp).Row
     
        Set RangeOfCells = Range("D2:D" & TotalRow)
     ' If Not Application.Intersect(Target, Range("A:l")) Is Nothing Then
        For Each Cell In RangeOfCells
            'edit: include artist
            songname = "P:\habiler\" & _
                       Cell & "\" & Cell.Offset(0, 5) & "_" & Cell.Offset(0, -2) & ".Pdf"
            Debug.Print "Checking: " & songname
            Cell.Font.Color = IIf(Len(Dir(songname)) > 0, vbRed, vbBlack)
     
        Next Cell
      '  End If
        MsgBox "Done, verify data first time"
    End Sub

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 179
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mais qu'entendez-vous par "fonction personnalisée utilisable directement dans excel"?
    Si vous aviez consulté les tutoriels que je vous ai conseillé de lire et tout particulièrement le premier, vous auriez la réponse à votre question.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    470
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2009
    Messages : 470
    Par défaut
    Bizarre,

    Hier cela ne fonctionnenait pas je voulais et aujourd'hui sans rien faire cela fonctionne??

    Bizarre, bizarre

    Merci encore

    Habiler

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2018, 17h17
  2. VBA : Appel d'une macro excel à partir d'une macro sur word
    Par GaspardBarrier dans le forum VBA Word
    Réponses: 2
    Dernier message: 25/01/2018, 15h02
  3. [AC-2007] Appel d'une macro 2007 dans une macro en VBA
    Par evema dans le forum IHM
    Réponses: 1
    Dernier message: 13/12/2011, 22h35
  4. [XL-2003] Appel d'une macro VBA directement d'une cellule
    Par Toto_le_héros38 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/01/2011, 00h21
  5. Appeler une dll ou un autre module vba depuis une macro excel vba
    Par technobiz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/11/2008, 14h24

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