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 :

Problème date VBA sur procédure évenementielle


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut Problème date VBA sur procédure évenementielle
    Bonjour,

    Je souhaite filtrer un TCD grâce à une procédure évènementielle sur changement d'une cellule d'une feuille.
    Plus précisément, lorsque je renseigne une date dans la cellule D3, je souhaite que cette date soit reportée dans le filtre de mon TCD.
    J'ai conscience qu'il s'agit d'un problème de format. J'ai testé plusieurs conversions : Cdate, CStr, Format(date, "dd/mm/yyyy") et aussi à l'américaine "m/d/yyyy" sans succès.

    Je vous mets le fichier en PJ. Le code est contenu dans la feuille TCD.

    Merci d'avance pour votre aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Bonjour,
    Et en utilisant un segment?
    Nom : Capture d'écran 2024-09-29 173036.png
Affichages : 101
Taille : 65,6 Ko

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    L'idée c'est que la cellule en jaune contienne une formule qui va chercher une date calculée dans un autre tableau.
    C'est la raison pour laquelle je n'utilise pas de segment dans cette feuille.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 317
    Par défaut
    Re-,
    Donc, l'énoncé du problème était erroné....

    Je souhaite filtrer un TCD grâce à une procédure évènementielle sur changement d'une cellule d'une feuille.
    Plus précisément, lorsque je renseigne une date dans la cellule D3, je souhaite que cette date soit reportée dans le filtre de mon TCD.
    Tu ne modifies aucunement cette cellule D3.
    Et la procédure événementielle n'est donc plus un "Change", mais un "Calculate"?

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut
    Re,
    Oui, au départ, j’ai testé avec Calculate.
    Mon problème n’est pas lié à l’événement mais au passage de la date dans le filtre du TCD. Un problème de format pour lequel j’ai testé plusieurs options, comme je l’explique dans mon premier message.
    Dans le fichier joint, j’ai mis un exemple avec un événement sur Change pour des tests plus simples, je modifie manuellement la cellule D3.
    Merci pour votre aide à tous.

  6. #6
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 221
    Par défaut
    Hello,

    ça sent l'IA générative cette procédure
    et comme souvent (pour ne pas dire autre chose) c'est plein de concetés

    ça n'est certainement pas avec la propriété ".Name" que vous allez récupérer la valeur qui est dans le champ mais plutôt ".Value"
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim TCD As PivotTable       'TCD à modifier
        Dim FILTRE As PivotField    'Champ de filtre à modifier
        Dim ValeurFiltre As String  'Valeur filtre de la cellule D3
        Dim Item As PivotItem
     
         'Définir la feuille contenant le TCD
        Set FEUILLE = Sheets("TCD") 'Nom de la feuille
     
         'Vérifier si la cellule modifiée est celle qui déclenche le filtre (ici, D3)
        If Not Intersect(Target, FEUILLE.Range("D3")) Is Nothing Then
     
            If Not IsDate(Target.Value) Then
     
                MsgBox "La valeur dans la cellule D3 n'est pas une date valide.", vbExclamation
                Application.EnableEvents = False
                FILTRE.ClearAllFilters
                Application.EnableEvents = True
                Exit Sub ' pas propre mais simple
     
            End If
     
            ' Formate la date comme attendue
            ValeurFiltre = Format(Target.Value, "m/d/yyyy")
     
            'Définir le TCD et le champ de FILTRE
            Set TCD = FEUILLE.PivotTables("TCD_VENDEUR") 'Nom du TCD
            Set FILTRE = TCD.PivotFields("Date Facture")     'Nom du champ mis dans la zone filtre
     
             'Vérifier si la valeur existe dans le champ de filtre
            For Each Item In FILTRE.PivotItems
     
                If Item.Value = ValeurFiltre Then
     
                    ' applique le filtre et sort de la procédure
                    Application.EnableEvents = False
                    FILTRE.CurrentPage = ValeurFiltre
                    Application.EnableEvents = True
                    Exit Sub ' pas propre mais simple
     
                End If
     
            Next Item
     
            MsgBox "La valeur dans la cellule D3 n'existe pas dans la liste.", vbExclamation
     
            'Effacer le filtre actuel
            Application.EnableEvents = False
            FILTRE.ClearAllFilters
            Application.EnableEvents = True
     
        End If
    End Sub

  7. #7
    Futur Membre du Club
    Femme Profil pro
    Formateur en informatique
    Inscrit en
    Juin 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 4
    Par défaut MERCI !
    Merci Nain porte koi
    Oui démasqué, j'ai fait appel à l'IA...
    Merci pour la précision, cela fonctionne très bien !
    Marilo

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

Discussions similaires

  1. [AC-2007] Probleme de date en vba sur une requete update
    Par tyjez dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 28/05/2013, 07h58
  2. [XL-2010] Traitement de date null sur vba et excel
    Par juju05 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/07/2012, 16h44
  3. [AC-2007] Erreur VBA sur format date
    Par Mopagano dans le forum VBA Access
    Réponses: 2
    Dernier message: 28/01/2011, 11h15
  4. Pb de syntaxe SQL en VBA sur la sélection d'une date
    Par rch05 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 18/09/2010, 17h58
  5. [VBA] Sur une saisie oui/non, stocker la date
    Par PhNou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2008, 10h42

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