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 :

VBA EXCEL - extraire au bon format date la valeur d'une Listbox [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Comptable
    Inscrit en
    Août 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Août 2016
    Messages : 17
    Par défaut VBA EXCEL - extraire au bon format date la valeur d'une Listbox
    Bonjour chers forumeurs,

    Je ne trouve nulle part comment répondre à cette question !! ça me décourage :'(

    J'aimerais, à partir d'une listbox1 où sont notés des dates de stages, inscrire dans la listbox2 quelques informations sur les participants (l'id, le nom, le prénom et leur n° de téléphone).

    Pour cela, j'ai un formulaire avec multipage, sur la page 2 sont les informations relatives aux stages, et donc mes listbox 1 et 2.

    - Ma listbox1 récupère les dates des stages sur une feuille DATA.
    - Sur une feuille STAGES, sont inscrites les dates des stages en colonne 1 et l'id des participants en colonne 2
    - Sur une feuille ADHERENTS sont inscrites toutes les informations relatives à l'adhérent.
    - sur ces deux feuilles, les données sont dans des tableaux

    Je souhaite donc, lorsque une ligne de ma listbox1 est sélectionné, afficher en listbox2 tous les participants au stage
    [et ensuite extraire dans des textbox ces informations + d'autres complémentaires (mais ça je gère ) ]

    Ps: lorsque ma listbox1 récupère les dates, je les fais passer au format "ddd dd mmm yyyy"
    et de suite après, je n'arrive pas du tout à revenir sur un format "dd/mm/yyyy"
    Ps2 : je ne comprends absolument rien aux tableau VBA, malgré tous les tutos.. ça me décourage aussi ça.. :'( :'( :'(

    MERCI A VOUS, âme charitable qui dans mon désespoir, vienne me redonner de l'espoir !!
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 674
    Par défaut
    Bonjour,


    Bienvenue sur DVP

    une solution simple pour ton histoire de dates,
    tu les stockes dans une plage de donnees avec le format que tu souhaites et tu fais pointer la rowsource sur la plage en question.

    Autre petit point, concernant les pieces jointes. On recommande de ne pas mettre de PJ des le debut de l a conversation, car cela nuit a la bonne comprehension du sujet (trop d'informations d'un coup vs. un sujet precis avec un bout de code ou une image...)
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Comptable
    Inscrit en
    Août 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Août 2016
    Messages : 17
    Par défaut
    Merci jpcheck pour ton message,

    Citation Envoyé par jpcheck Voir le message
    une solution simple pour ton histoire de dates,
    tu les stockes dans une plage de donnees avec le format que tu souhaites et tu fais pointer la rowsource sur la plage en question.
    Le problème ne vient pas de l'incrémentation de ma listbox1 (ou alors partiellement).
    Les dates qu'elle me ressort sont bonnes. Et le format correspond bien à celui que je veux. C'est quand je veux réutiliser la valeur d'une de ses lignes que ça ne fonctionne pas, et je ne comprend absolument pas pourquoi... :oops :

    Ma listbox1 s'alimente de cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub MàJ_Listbox1()
    Dim dl As Long, i As Long
     
    UserForm1.ListBox1.Clear
    With Worksheets("DATA")
        dl = .Range("D" & Rows.Count).End(xlUp).Row
        For i = dl To 2 Step -1
        UserForm1.ListBox1.AddItem Format(.Cells(i, 4).Value, "ddd dd mmmm yyyy")
        Next
    End With
     
    End Sub


    Citation Envoyé par jpcheck Voir le message
    Autre petit point, concernant les pieces jointes. On recommande de ne pas mettre de PJ des le debut de l a conversation, car cela nuit a la bonne comprehension du sujet (trop d'informations d'un coup vs. un sujet precis avec un bout de code ou une image...)
    Ah !? ok. Donc plutôt du code à la place du fichier ??

    Mon code n'est pas vraiment fait puisque je beugue en ayant testé x codes différents, alors je pensais que mon fichier aurait été d'une plus grande aide mais je le saurai à l'avenir

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 674
    Par défaut
    Attention, la fonction Format renvoie du texte, pour que tu gardes la date, il faut eventuellement passer par du CDate().

    Le code sera toujours une meilleure source d'information pour nous pour t'aider =]
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Homme Profil pro
    Comptable
    Inscrit en
    Août 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Août 2016
    Messages : 17
    Par défaut
    Merci, effectivement c'est ce qu'il me semblait, mais je voudrais donc :
    - la voir au format ddd dd mmm yyyy pour ma listbox1
    - puis la voir au format dd/mm/yyyy dans la textbox correspondante, une fois bien sûr qu'elle a été sélectionnée dans ma listbox1

    Une idée ? une piste ?? car pour le moment, le Cdate() ne me donne rien de bien beau..

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 674
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.TxtBox1.Value = Format(CDate(Me.Listbox1.Value),"dd/mm/yyyy")
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Membre averti
    Homme Profil pro
    Comptable
    Inscrit en
    Août 2016
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Comptable

    Informations forums :
    Inscription : Août 2016
    Messages : 17
    Par défaut
    Merci encore jpcheck

    J'avais testé ça, mais ça ne marchait pas..

    J'ai trouvé une solution qui.. ma foi.. me convient parfaitement pour le moment !!

    La voici :
    - j'ai créé 2 colonnes, une pour la vrai date relevé, l'autre pour la date en format string
    - je ne fais apparaitre que la 2e (où le format est string) : largeur de la 1e colonne = 0
    - je ne me sert que de la 1e pour tous mes autres controles

    voici le petit bout de code qui m'a aidé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub ListBox1_Click()
    Dim i As Long
     
    For i = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i) = True Then
    TextBox31.Value = ListBox1.List(i)
    End If
    Next i
    Le plus dur maintenant va être de chercher à remplir la listbox2

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

Discussions similaires

  1. [XL-2007] Modifier une valeur d'une listbox (VBA Excel)
    Par leyjah dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 22/04/2013, 18h32
  2. [VBA-EXCEL] Gestion des erreurs et manipulation du contenu d'une cellule
    Par Froggy007 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/09/2008, 21h42
  3. VBA/Excel: lecture d'un son a l'ouverture d'une boite de dialogue
    Par Raph.c dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/05/2008, 03h04
  4. [VBA EXCEL]comment utiliser les boites a outils control sur une feuille excel
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 13/02/2007, 20h04
  5. [VBA excel] Extraire une chaine de caract. d'une cellule.
    Par Mourne dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 17/01/2007, 09h35

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