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 :

Impossible de grouper cette sélection [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Impossible de grouper cette sélection
    Bonjour,
    Je vous remercie d'avance de m'aider à trouver une solution pour ce problème de format de date. Je rappelle en passant que j'ai essayer de chercher sur le forum, si quelqu'un avait déjà eu ce problème et que ça avait été résolu sans trouver. Je ne suis qu'un débutant dans le programmation vba.
    Voici mon problème:
    Lorsque j'essaie de grouper les dates dans le Tableau croisé dynamique pour sortir un graphique, j'ai le message "Impossible de grouper ce sélection". Et lorsque je ressaisie la date dans la feuille avec un date picker, le problème est corrigé et je peux grouper. Pourtant la date est saisie depuis un masque de saisie et un validation est faite. voici le code vba.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If IsDate(Me.txtDate) = False Then MsgBox "Entrez une date valide au format jj.mm.aaaa ": Me.txtDate.SetFocus: Exit Sub _
                  Sheets("Article").Range("B" & DL) = Format(CDate(Me.txtDate.Value), "dd.mm.yyyy")
    Est ce qu'il y aurait un moyen de forcer le format de date dans la cellule pour que je puisse le grouper dans le tableau croisé dynamique sans être obligé d'aller modifier avec un DatePicker. Je pourrai avoir plus de 10000 entrée dans mon tableau. ça me parait impossible de les parcourir pour modifier la date.

    Cordialement

  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 114
    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 114
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu n'as pas trouvé sur les forums parce-que vraisemblablement tu t'es focalisé sur le fait que le regroupement des dates était refusé dans les tableaux croisés dynamiques.
    Le problème ne vient évidemment pas du tableau croisé dynamique mais la manière dont tu écris les valeurs provenant d'un TextBox dans les cellules d'excel

    Il suffit de regarder les cellules contenant des dates dans excel pour repérer le problème.
    Si l'alignement se fait à gauche, 90% de chance que ce soit du texte et pas une date (les 10 % restant ce serait un alignement forcé par l'utilisateur)

    Une autre manière de vérifier et en supposant que la date soit en B2, c'est d'insérer cette fonction
    si elle ne renvoie pas VRAI, excel ne pourra en aucun cas l'interpréter comme une date et donc le tableau croisé dynamique ne pourra pas regrouper du texte en année, mois et jour

    La valeur contenue dans un contrôle TextBox est de type String or une date dans excel est de type Double donc il faut juste passer par une conversion d'une chaîne de caractères en date soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Article").Range("B" & DL).Value = CDate(Me.txtDate.Value)
    Le test pour vérifier si une date a bien été encodée dans le TextBox est une autre affaire

    A lire pour en savoir plus sur les dates dans excel et le VBA


    [EDIT]
    J'ai oublié cette partie de réponse.
    Dans cette portion de ligne de code, tu convertis en date la chaîne de caractères contenue dans txtDate que tu reconvertis aussitôt en chaîne de caractères avec le format dd.mm.yyyy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(CDate(Me.txtDate.Value), "dd.mm.yyyy")
    Si tu regardes l'aide de VBA, la fonction Format a pour but de convertir une valeur numérique (1er argument) en chaîne de caractères dans un format particulier définit par le 2ème argument
    La fonction d'excel qui fait exactement la même chose est TEXTE
    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 averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2009
    Messages : 33
    Par défaut Merci Philippe
    Merci infiniment pour la promptitude, la réponse, et surtout la pédagogie. En faisant les modifications telles que suggérées, ça a résolu le problème. Cordialement.

  4. #4
    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 114
    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 114
    Billets dans le blog
    53
    Par défaut
    Bonjour et merci pour ton retour
    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

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 20/01/2023, 18h05
  2. [sawtooth] Impossible d'utiliser cette fonction
    Par jojo_ol76 dans le forum MATLAB
    Réponses: 3
    Dernier message: 14/11/2007, 17h32
  3. Réponses: 5
    Dernier message: 17/10/2007, 18h17
  4. impossible de comprendre cette excetion log4j
    Par decksroy dans le forum Logging
    Réponses: 10
    Dernier message: 26/10/2006, 15h33
  5. Réponses: 1
    Dernier message: 25/08/2006, 14h21

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