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 :

Userform format heure


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Assistant de projet plannification
    Inscrit en
    Août 2018
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Assistant de projet plannification
    Secteur : Transports

    Informations forums :
    Inscription : Août 2018
    Messages : 15
    Par défaut Userform format heure
    Bonjour à tous,
    Je me permet de vous demander un peu d'indulgence car je suis débutant en excel et vba. Je travail dans une entreprise de transport public ou nos heures sont irrégulières avec des bonifications de temps et des indemnités d'argents selon les heures ou les jours fériés. Mon employeur n'est pas très doué à nous verser et faire nos décompte juste. Etant représentant du personnel j'aimerai mettre un classeur avec formulaire où les employés peuvent rentrer facilement leurs heures et ainsi vérifier le décompte avec celui de l'employeur.

    Premier pas est de rentrer dans un tableau les services à effectuer (Service selon graphique)Tous dépassements de ces temps va générer un temps supplémentaire (mais cela se fera sur un autre tableau).

    Un problème après l'autre

    Mon problème est que quand je rentre mes heures dans l'userform et qu'elle s'inscrive dans un tableau excel, elles ne sont pas sous la bon format?(Formule mis dans les textboxes trouvée dans un tuto de Patricktoulon membre du site écrit le 11.11.17)
    exemple de service à rentrer: 2018/ A /Nav2 /heures début: 16:00 /heures de fin: 00:15 /et 01:00 pour chaque pause.
    Quand je rentre les chiffres directement dans le tableau cela fonctionne très bien.

    Je ne sais pas si c'est un problème vba ou de formule dans le tableau?

    Merci de votre aide et de votre patience. J'espère que mes explication sont claires

    Je travaille sous office 2016
    Meilleures salutations Mat
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    214
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 214
    Par défaut
    Regarde si ca peut te suffire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    Private Sub CbenregistrerService_Click()
    ' Enregistrer les services dans le tableau
     
        Dim dl As Integer
            dl = Sheets("Service").Range("E1000").End(xlUp).Row + 1
            Sheets("Service").Range("b" & dl) = Me.TxtbxAnn?e
            Sheets("Service").Range("c" & dl) = Me.TxtbxPeriode
            Sheets("Service").Range("d" & dl) = Me.TxtbxNomDuService
            Sheets("Service").Range("f" & dl).Value = CompleteH(Me.TxtboxDebutService)
            Sheets("Service").Range("G" & dl) = CompleteH(Me.TxtboxFindeService)
            Sheets("Service").Range("I" & dl) = CompleteH(Me.TextbxPauseDeduite)
            Sheets("Service").Range("J" & dl) = CompleteH(Me.TxtboxPauseCompensee)
     
    End Sub
     
    Function CompleteH(myH As String) As String
    'par d?faut on consi?re que ce sont les heures qui sont saisis et non les mn
        Select Case Len(myH)
            Case 0: CompleteH = "00:00"
            Case 1: CompleteH = "0" & myH & ":00"
            Case 2: CompleteH = myH & ":00"
            Case 3: CompleteH = myH & "00"
            Case 4: CompleteH = myH & "0"
            Case 5: CompleteH = myH
        End Select
    End Function
    Mais perso je trouve le code plus sympa à l'utilisation
    Fichiers attachés Fichiers attachés

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    c'est parce que tu mets une chaine (un textbox donne du texte) au lieu d'un nombre dans tes cellules.
    C'est comme si tu mettais "deux" au lieu de 2.
    Pour chaque heure à convertir utilise Cdate(). Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Service").Range("f" & dl) = CDate(Me.TxtboxDebutService)
    Si ça avait été un nombre quelconque autre qu'un temps ou qu'une date il aurait fallu utiliser CDbl()
    eric

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour
    c'est tres étonant avec office 2007 le format dans les cellule est bon chez moi
    en regardant le format de cellule tu est bien en "hh:mm"
    il est ou le smilblick?
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour patrick,

    le format n'importe pas si tu mets du texte.
    Et c'est ce que fait sa macro "8:00" et non 8:00 si tu ajoutes une ligne avec. Normal avec un textbox.
    eric

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    oui ce que j'ai voulu dire c'est que son fichier tel quel fonctionne chez moi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

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

Discussions similaires

  1. [XL-2007] Format heure:minute dans Userform.
    Par Eric_du_87 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/10/2013, 19h37
  2. format heure dans userform
    Par maoricio dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 25/08/2007, 13h00
  3. probleme format heures access
    Par nath-nancy dans le forum Access
    Réponses: 9
    Dernier message: 28/11/2005, 16h36
  4. Convertir une chaine en format heure
    Par Lars dans le forum ASP
    Réponses: 3
    Dernier message: 24/05/2005, 11h44
  5. Format heure dans Interbase
    Par Battomura dans le forum InterBase
    Réponses: 2
    Dernier message: 14/03/2003, 13h17

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