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 :

Format dans ListBox


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Points : 44
    Points
    44
    Par défaut Format dans ListBox
    Bonjour à tous,

    1)J'ai une date dans une cellulle au format "[$-409]d-mmm-yyyy;@"

    2)Je la copie dans une liste box de la manière suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If j = 6 Then .ListSubItems.Add , , Format(CDate(c.Offset(0, 5)), "[$-409]d-mmm-yyyy;@")

    3)Je copie ensuite cette valeur dans une cellule préalablement formater au format "[$-409]d-mmm-yyyy;@"
    à l'aide de ce code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i + 3, 6).Value = Format(CDate(Me.AffichageSelection.ListItems(i).SubItems(6)), "[$-409]d-mmm-yyyy;@")
    La valeur dans la listbox (2) n'est pas au bon format, ainsi que la valeur de la cellule (3) n'est pas elle non plus au bon format.

    Cependant si je double clique sur la cellule (3) elle se met au bon format.


    Je pense que la valeur de la cellule (3) est une valeur texte et non date ...


    Est ce que quelqu'un a une idée de mon erreur

    En vous remerciant beaucoup

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    with Cells(i + 3, 6)
        .Value = CDate(Me.AffichageSelection.ListItems(i).SubItems(6))
        .numberformat="[$-409]d-mmm-yyyy;@"
    end with
    Regarde l'aide sur Format
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Points : 44
    Points
    44
    Par défaut
    Merci Mercatog et j'avais bon espoir ....

    J'ai le même souci

    NB : au dela du format qui n'est pas celui que je veux lorsque je compare les cellules (3) entre elles , Excel est incapable de faire la comparaison

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour

    1) toujours spécifier la propriété utilisée d'un objet dont on extrait une propriété
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If j = 6 Then .ListSubItems.Add , , Format(CDate(c.Offset(0, 5)), "[$-409]d-mmm-yyyy;@")
    ne précise pas la propriété utilisée de la cellule pointée
    2) Une listbox contient des chaînes de caractères
    Y envoyer donc la propriété Text de la cellule et ne rien formater de cette propriété !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If j = 6 Then .ListSubItems.Add , , c.Offset(0, 5).text
    3) envoyer ce contenu de la listbox à la cellule d'accueil, préalablement formatée [$-409]d-mmm-yyyy;@
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Points : 44
    Points
    44
    Par défaut
    C'est génial ça fonctionne !!!! Merci Merci Merci

    J'ai encore un problème de format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NoM = InputBox("Documents to provide before (DD/MM/YY) : ", "Before DD/MM/YY")
    Or j'ai correctement paramétré ma cellule avec le format "[$-409]d-mmm-yyyy;@"

    Il ne me la met pas à ce format là

    Je suis sur que vous savez pourquoi !!!


    Merciiiii

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut

    Bonjour, bonjour !

    Pourtant toi aussi tu le sais déjà :  du texte ne peut pas être un nombre, la vraie nature d'une date dans Excel ‼
    La solution étant pourtant déjà présente dans les codes proposés !

    Voilà, voilà !

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Stockholm, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  7. #7
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Points : 44
    Points
    44
    Par défaut
    Au tout début, j'ai paramétré ma variable comme une date et c'est lorsque je l'inscris dans F2 qu'elle est considérée comme du texte. C'est pourquoi j'ai voulu appliqué la solution proposée à savoir : paramétrer la variable comme du texte et l'inscrire dans la cellule au préalable formatée au format date.

    Le problème persiste et n'est résolu que lorsque je double clique sur la cellule F2.

    As tu une idée d'où provient le souci ?

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Merci de ne pas citer l'intégralité d'un message juste précédent, cela nuit à la lisibilité !

    Oui encore une fois comme déjà décrit c'est du texte et donc en aucun cas une date ‼

    Juste en consultant l'aide de la fonction InputBox et en vérifiant la variable durant l'exécution du code
    via la fenêtre Variables locales car le code présenté ne correspond pas du tout à cette description
    ni ne reprend même pourtant la solution offerte sur un plateau par unparia (à qui j'adresse mes salutations !) …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Points : 44
    Points
    44
    Par défaut
    Merci pour vos réponse,

    Je souhaitait faire un filtre en fonction de la variable NoM (une date)

    Mon problème venait du format de cette date dans le filtre.

    J'ai donc créé une colonne supplémentaire dans lequel je mets le résultat de ma comparaison entre NoM et les données de la colonne.

    Je filtre ensuite sur "VRAI" ou "FAUX"

  10. #10
    Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    via la fenêtre Variables locales
    Merci Marc pour cette indication je ne connaissais pas cette fenêtre

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

Discussions similaires

  1. Modifier le Format dans un listBox
    Par Beaudelicius dans le forum IHM
    Réponses: 3
    Dernier message: 20/06/2012, 21h14
  2. Réponses: 2
    Dernier message: 29/10/2008, 19h13
  3. Recherche sur Format + resultat dans Listbox de Userform
    Par mater31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/09/2008, 19h01
  4. [C#] Drop dans ListBox
    Par Freeman166 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 26/01/2005, 22h46
  5. Format dans un TLabel
    Par AnneOlga dans le forum C++Builder
    Réponses: 3
    Dernier message: 24/03/2004, 11h53

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