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

VB.NET Discussion :

Format hh:mm:ss dans datagridview [Débutant]


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut Format hh:mm:ss dans datagridview
    Bonjour
    Je développe avec vb 2010 express, j'ai crée un programme qui fait un import d'un fichier excel vers un datagridview
    Parmi les données récupérées il y a une colonne ou il y a des valeurs sous format: hh:mm:ss (00:23:04)


    J'utilise le code ci-dessous qui fonctionne très bien.
    Mon problème est que je n'arrive pas à récupérer le bon format de ma colonne ou il y a les hh:mm:ss
    les donnés affichées dans mon datagridview sont sous format: 30/12/1899 00:00 "" je ne comprends pas pourquoi, je pense qu'il y a un pb de formatage qque part"
    Merci de m'aider à trouver une solution afin d'avoir le même format de données dans mon datagridview

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MyConnection = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source= 'C:\Users\YMRABET\Desktop\Matchs\Programme\test.xls';Extended Properties=Excel 8.0;")
     
            MyCommand = New System.Data.OleDb.OleDbDataAdapter("select * from [Resultats$]", MyConnection)
     
            DtSet = New System.Data.DataSet
            MyCommand.Fill(DtSet)
            DataGridView3.DataSource = DtSet.Tables(0)
            MyConnection.Close()

    Merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    vous pouvez, à la suite de votre code ci dessus, formater ladite colonne de votre Datagridview :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.Columns(4).DefaultCellStyle.Format = "hh:mm:ss"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Merci ça marche..
    j'ai juste mis "HH:mm:ss" au lieu "hh:mm:ss"

    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut " hh:mm:ss"
    Bonjour chrismonoye
    Je rencontre maintenant encore un petit pb... j'ai bien cherché mais je n'arrive pas..
    Maintenant j'ai bien dans mon datagridview le bon format hh:mm:ss mais je souhaite le convertir en mm:ss et le mettre dans une combobox
    exemple: si j'ai 01:30:02 je veux le rendre sous format: 90:02 ( format date et non string pour que je puisse la lire via un axvlcplayer)
    J'ai essayé: ComboBox5.Items.Add(Format(CDate(DataGridView7.Rows(k).Cells(5).Value), "mm:ss"))
    mais ce ne marche pas
    Merci encore de votre aide

  5. #5
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par younesssoleil Voir le message
    si j'ai 01:30:02 je veux le rendre sous format: 90:02
    J'ai essayé: [...]"mm:ss"
    mais ce ne marche pas
    Normal, le "mm" représente les minutes entre 0 et 59. Tu ne pourras donc pas utiliser le format pour ce cas là. Rappel sur les chaînes de format date

    Pour ton cas le TimeSpan sera peut-être plus approprié. On ne parle plus de date à un instant T, mais d'un intervalle de temps

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Merci

    As tu un exemple pour mon cas stp?
    Merci

  7. #7
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
               Dim t As New TimeSpan(1, 30, 3)
                MsgBox(t.TotalMinutes.ToString)
    A priori ça devrait afficher 90. A toi de faire une fonction retournant la chaîne attendue.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Impeccable Merci ca marche...
    j'ai juste une dernière question
    j'arrive bien à mettre dans ma ComboBox5 la bonne valeur: 90:03 (mm:ss)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ComboBox5.Items.Add(t.TotalMinutes.ToString() & ":" & seconde)
    J'ai un autre boutton qui doit récupérer le nombre total des seconde dans la ComboBox5 pour lire un AxVLCPlugin21 a partir de cette valeur seconde
    J'ai essayé :
    seconde = Second(ComboBox5.SelectedItem)
    minutes = Minute(ComboBox5.SelectedItem)
    secondetotale = seconde + minutes * 60

    seconde et minute sont déclarée en integer

    J'ai l'erreur suivante: La conversion de la chaîne "90:03" en type 'Date' n'est pas valide.
    désolé et merci encore de ton aide

  9. #9
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par younesssoleil Voir le message
    J'ai essayé :
    seconde = Second(ComboBox5.SelectedItem)
    minutes = Minute(ComboBox5.SelectedItem)
    secondetotale = seconde + minutes * 60
    Dans la même logique que "TotalMinutes", il existe un "TotalSeconds" qui te retourne la somme en secondes.

    Citation Envoyé par younesssoleil Voir le message
    J'ai l'erreur suivante: La conversion de la chaîne "90:03" en type 'Date' n'est pas valide.
    désolé et merci encore de ton aide
    Ici tu dois vouloir mettre ton TotalMinutes sous forme de caractère dans un type DateTime/Date, ce qu'il ne sait effectivement pas faire.. Tu peux créer un nouveau DateTime en lui passant heure/minute/seconde du TimeSpan.

    N'oublie pas qu'il faut utiliser Date/DateTime pour des notions de date (un instant t) et TimeSpan pour des notions de durées, d’intervalles de temps.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    j'explique en mieux mon pb:

    En faite je rempli une combobox5 avec des valeurs de types : 90:03 (mm:ss) '' j'arrive bien à le faire grâce à ton aide"
    Maintenant je souhaite lire une valeur sélectionnée de cette combobox5 : ComboBox5.SelectedItem et la convertir en nb de seconde

    j'aimerai bien utiliser à nouveau TotalSeconds mais je dois récupérer le nb de seconde et minute à partir de ComboBox5.SelectedItem
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    seconde = Second(ComboBox5.SelectedItem)
    minutes = Minute(ComboBox5.SelectedItem)
    TotalSeconds = ts.TotalSeconds.ToString()
    avec :
    Dim ts As New TimeSpan(0, minutes, seconde)

    et c'est la l'erreur: La conversion de la chaîne "90:03" en type 'Date' n'est pas valide.

  11. #11
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim temp As String() = ComboBox5.SelectedItem.ToString().Split(':')
    Dim seconde As Integer = (CInt(temp(0)) * 60) + CInt(temp(1))

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    Merci ça marche
    il y a juste Split(":") au lieu de Split(':')

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut aide
    Bonjour casiii

    Je t'ai envoyé un message en privé pour aide...

    Merci d'avance

  14. #14
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Citation Envoyé par younesssoleil Voir le message
    Je t'ai envoyé un message en privé pour aide...
    Pourquoi ne pas ouvrir un post et en faire profiter les prochaines personnes pouvant rencontrer des soucis similaires? On est sur un forum d'entre-aide quand même

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 136
    Par défaut
    oui tu as raison.. désolé.. mais j'ai un projet a rendre pour la semaine prochaine et je pensais que poser une question direct je pouvais avoir une réponse rapide.

    Merci à Tous et désolé encore

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

Discussions similaires

  1. [Débutant] Symbole € et format monétaire dans datagridview
    Par jeremyvb11 dans le forum VB.NET
    Réponses: 17
    Dernier message: 29/12/2012, 11h25
  2. formater un champ date dans un select
    Par sbeu dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 24/04/2006, 16h44
  3. [VBA-E]changer le format d'une cellule dans un spreadsheet
    Par delamarque dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 13/02/2006, 11h12
  4. Format de données numériques dans une requête
    Par Aurèl90 dans le forum Access
    Réponses: 1
    Dernier message: 16/11/2005, 10h40
  5. [VB.NET] vérifier le format d'un champ dans un datatable
    Par HULK dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/10/2005, 16h13

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