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 :

Problème de format dans une cellule excel


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 16
    Points
    16
    Par défaut Problème de format dans une cellule excel
    Salut tout le monde,
    J'ai un grand problème je cherche déjà depuis des heures pour trouver une solution.

    J'explique:

    Je récupère une cellule dans excel. Je mets la valeur dans un variable Dim val.
    Je montre la valeur avec msgbox je voie 0.65123 dans excel la cellule a une valeur de 17:45.
    Comment faire pour garder exactement la même valeur.

    Merci a vous
    David

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Bonjour,

    "val" est une variable de quel type. Peux-tu poster ton code?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Oui désolé
    Voici le code:
    http://vbnet.pastebin.com/m20e9ac4a

    J'ai essayé avec: workSheet.Cells(row, col).Numberformat = "h:mm" mais rien ne change.

    J'ai mis val en String en object et rien ne change.
    Voici les donnés dans excel:
    16:46
    15:00
    16:00
    7:00
    5:23
    10:23

    Merci
    David

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Bonjour,
    essaye de remplacer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = workSheet.Cells(row, col).Value
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    val = workSheet.Cells(row, col).Value2
    Bien à toi

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    ça ne change rien.

    bizarre

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    J'avais le même problème que toi. J'ai également chercher pendant un moment comment récupérer la valeur au format "h:mm:ss".
    Il semble cependant que ce soit impossible.
    J'ai finalement trouvé une solution au problème.

    La valeur renvoyée par excel correspond à un pourcentage calculé de la manière suivante :

    1) Excel convertit l'heure en secondes (63900 pour 17:45:00 soit [(17*3600) + (45*60) + 0])
    2) Excel divise ce nombre par le nombre de secondes contenues dans une journée (86400 soit [24 * 3600])

    Tu obtiens donc un nombre compris entre 0 pour "0:00:00" et 1 pour "24:00:00".
    Pour exploiter ce résultat, il te suffit donc de faire le calcul inverse.

    Tu dois donc multiplier le résultat obtenu par 86400 pour avoir le nombre de secondes qu'il représente.
    Ensuite il te suffit de récupérer les heures, minutes et secondes de la manière suivante :

    1) pour les heures, fais "val / 3600" => (63900/3600 = 17,75)
    2) pour les minutes, fais "(val mod 3600)/ 60" => ((63900 mod 3600)/60 = 45)
    3) pour les secondes, fais "(val mod 60)" => (63900 mod 60 = 0)

    Attention à bien assigné le résultat du calcul des heures et des minutes à des variables de type DOUBLE car ces calculs peuvent donner une valeur décimale.

    Ensuite, il ne reste plus qu'à mettre le tout en forme dans une variable de type STRING à l'aide de la fonction MID pour récupérer la partie entière de l'heure et des minutes et rajouter un 0 devant les minutes et les secondes si elles sont inférieures à 10.


    Je ne sais pas si ça pourra encore te servir mais je poste quand même ce message au cas où d'autres personnes rencontreraient ce problème.

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Merci c'est toujours bon à savoir

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/01/2014, 09h28
  2. [C#][Excel] Problème pour écrire dans une cellule
    Par MoscoBlade dans le forum C#
    Réponses: 1
    Dernier message: 24/02/2010, 16h54
  3. Problème d'affichage d'une formule dans une cellule excel
    Par casho dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/07/2007, 17h58
  4. [VBA-PP]fonction qui écrit un chiffre dans une cellule excel
    Par alpking dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 26/04/2006, 19h34
  5. Réponses: 4
    Dernier message: 15/04/2005, 15h25

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