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 :

Utiliser une macro pour une condition


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    assistante
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : assistante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Points : 5
    Points
    5
    Par défaut Utiliser une macro pour une condition
    Re-bonjour,

    Je remets la réponse reçue d'Eric dans un nouveau post, suite à sa demande.
    Car dans le tableau ci-joint il y a des colonnes règlements prévus et règlements effectués : pour clients et fournisseurs.

    Donc comment faire pour qu'une fois que le règlement est effectué (et la date entrée dans règlements effectués), cela efface la date règlements prévus. Et ce pour clients et fournisseurs ?
    Je n'ai jamais fait de macro, donc je n'arrive pas à comprendre le process demandé par Eric.
    Pourriez-vous m'aider ?

    Merci à vous
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par boyol Voir le message
    Je n'ai jamais fait de macro, donc je n'arrive pas à comprendre le process demandé par Eric.
    Bonjour,

    Le fichier joint contient les macros (modifiées) indiquées dans le précédent message. Celles-ci on été modifiées pour prendre en compte le cas où une date de paiement réel aurait déjà été saisi et qu'une nouvelle date de prévision serait de nouveau saisie.

    Dans le module de l'onglet Factures clients

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim ColEcheancePrevue As Long, ColEcheanceReelle As Long
     
        If Target.Count > 1 Then Exit Sub
     
        On Error GoTo Fin
     
        ColEcheancePrevue = Range("EcheanceClientPREVU").Column
        ColEcheanceReelle = Range("EcheanceClientsREEL").Column
     
        If Not Intersect(Target, Range("EcheanceClientsREEL")) Is Nothing Then
            Application.EnableEvents = False
            If IsDate(Target) Then
                Target.Offset(0, ColEcheancePrevue - ColEcheanceReelle).ClearContents
                GoTo Fin
            End If
        End If
     
        If Not Intersect(Target, Range("EcheanceClientPREVU")) Is Nothing Then
            Application.EnableEvents = False
            If Target.Offset(0, ColEcheanceReelle - ColEcheancePrevue) <> "" Then
                MsgBox "Une date réelle de paiement est déjà saisie !", vbCritical
                Target.ClearContents
                GoTo Fin
            End If
        End If
     
    Fin:
     
        Application.EnableEvents = True
     
     
    End Sub
    Dans le module de l'onglet Fournisseurs

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    Option Explicit
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim ColEcheancePrevue As Long, ColEcheanceReelle As Long
     
        If Target.Count > 1 Then Exit Sub
     
        On Error GoTo Fin
     
        ColEcheancePrevue = Range("EcheanceFournisseurs").Column
        ColEcheanceReelle = Range("FrsRegltFAIT").Column
     
        If Not Intersect(Target, Range("FrsRegltFAIT")) Is Nothing Then
           Application.EnableEvents = False
           If IsDate(Target) Then
              Target.Offset(0, ColEcheancePrevue - ColEcheanceReelle).ClearContents
              GoTo Fin
           End If
        End If
     
        If Not Intersect(Target, Range("EcheanceFournisseurs")) Is Nothing Then
           Application.EnableEvents = False
           If Target.Offset(0, ColEcheanceReelle - ColEcheancePrevue) <> "" Then
              MsgBox "Une date réelle de paiement est déjà saisie !", vbCritical
              Target.ClearContents
              GoTo Fin
           End If
        End If
     
    Fin:
     
        Application.EnableEvents = True
     
     
    End Sub
    Ces exemples vous permettront d'entrevoir l'intérêt de ce langage, mais leur mise en place nécessite un minimum de connaissances en langage VBA. Si le sujet vous intéresse, je vous conseille d'utiliser les différents tutoriels sur le VBA Excel de ce forum.

    Le fichier joint, contient également des cellules asservies à des listes de validation pour la saisie des dates sans quoi vos prévisions de trésorerie à la décade risquent d'être erronées. Il vous faut donc regarder comment réaliser une liste de validation avant d'aborder le VBA.

    Pièce jointe 291148
    Dernière modification par Invité ; 04/07/2017 à 06h29.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    assistante
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : assistante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Waouhhh c'est exactement ce qu'il me fallait !!
    Un grand merci pour votre aide.

    Oui je sais qu'Excel est vaste et un programme à fort potentiel. J'ai déjà eu quelques formations mais jamais sur VBA.
    Lorsque je pourrai j'irai en effet découvrir ce qui tant de miracles.

    Merci encore

  4. #4
    Futur Membre du Club
    Femme Profil pro
    assistante
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : assistante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Points : 5
    Points
    5
    Par défaut et l'année d'après ? Problème de dates
    Bonjour,
    J'arrive en fin d'année avec mon prévisionnel, mais il bloque sur 2018 avec le message : "un utilisateur a restreint les valeurs que peut prendre cette cellule"

    Comment modifier pour qu'il reporte aussi les autres dates que 2017 des onglets sur l'onglet prévisionnel ?

    Merci à nouveau pour votre aide

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par boyol Voir le message
    Bonjour,

    Il vous faut étendre votre tableau prévisionnel sur 2018, compléter la ligne 45 et modifier l'aire de la zone nommée "EchéancierTresorerie".

  6. #6
    Futur Membre du Club
    Femme Profil pro
    assistante
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : assistante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Il vous faut étendre votre tableau prévisionnel sur 2018, compléter la ligne 45 et modifier l'aire de la zone nommée "EchéancierTresorerie".

    MAGIQUE !!! Merci à vous

  7. #7
    Futur Membre du Club
    Femme Profil pro
    assistante
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : assistante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Je constate sur mon tableau que la macro ne fonctionne plus uniquement dans l'onglet clients de mon tableau : une fois que le règlement est effectué (et la date entrée dans "règlements effectués"), cela devait effacer la date "règlements prévus". Mais cela fonctionne dans l'onglet Fournisseurs...

    Jusqu'à présent tout fonctionnait impec, mais là... ! Et pourtant quand je vais dans Echéanciers Clients, je vois bien la macro :
    Nom : macro.jpg
Affichages : 104
Taille : 70,8 Ko

    Merci de votre aide

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par boyol Voir le message
    Bonjour,

    Il vous faut sans doute mettre à jour la zone EcheancierTresorerie.

  9. #9
    Futur Membre du Club
    Femme Profil pro
    assistante
    Inscrit en
    Juin 2017
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : assistante
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2017
    Messages : 13
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Il vous faut sans doute mettre à jour la zone EcheancierTresorerie.


    C'est en effet cela !
    J'avais vérifié et voyais que c'était sélectionné, mais j'ai re-sélectionné toute la zone et en effet, cela fonctionne !
    Merci à vous

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

Discussions similaires

  1. Utilisation des Macro pour une copie et mise en forme
    Par Stephane59 dans le forum VBA Word
    Réponses: 6
    Dernier message: 09/02/2013, 15h07
  2. utiliser une macro dans une macro
    Par Calimero33 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/07/2010, 17h48
  3. Réponses: 7
    Dernier message: 24/06/2010, 16h38
  4. problème sur une macro pour une conversion en VB6.3
    Par Zoldick dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/06/2008, 14h41
  5. comment utiliser un programme comme une fonction dans une macro exel
    Par ERICKO dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/10/2007, 23h39

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