Aide sur format heure

Bonjour !

De nouveau en panne sur un fichier de traitement d'heure cumulée, je sèche au niveau de ma macro "enregistrer saisie" sans succès jusqu'ici !

Je m'explique : cette macro enregistre une ligne d'heures pour la copier sur une autre feuille (feuil3) afin que les données soient traitées par la suite. Le problème est que le résultat de la copie est sous forme de "texte" et non de "nombre", dixit le message d'erreur.

Or je n'arrive pas à modifier le format, malgré les nombreux essais trouvés ici et là. Le seul truc qui marche manuellement est de sélectionner la cellule, effacer devant le premier caractère et comme par magie, le contenu de la cellule est de nouveau en nombre.

Je joints au message le fichier pour que mes explication soient plus claires et que vous puissiez m'aider à transformer ces " " de cellules en format heure à partir de la macro.

Merci d'avance pour vos conseils.

Bonjour

Testes cette méthode

Sub enreg_saisie()
Dim Derligne As Long

  With Worksheets("Saisie")

    If .Range("B37") <> "" And .Range("D37") <> "" And .Range("F37") <> "" And .Range("H37") <> "" And _
       .Range("J37") <> "" And .Range("L37") <> "" And .Range("N37") <> "" Then

      With Worksheets("Feuil3")
        Derligne = .Range("c" & Rows.Count).End(xlUp).Row
        .Range("c" & Derligne + 1) = Worksheets("Saisie").Range("B37")
        .Range("d" & Derligne + 1) = Worksheets("Saisie").Range("D37")
        .Range("e" & Derligne + 1) = Worksheets("Saisie").Range("F37")
        .Range("f" & Derligne + 1) = Worksheets("Saisie").Range("H37")
        .Range("g" & Derligne + 1) = Worksheets("Saisie").Range("J37")
        .Range("h" & Derligne + 1) = Worksheets("Saisie").Range("L37")
        .Range("i" & Derligne + 1) = Worksheets("Saisie").Range("N37")
      End With
    End If
  End With
End Sub

Bonjour Banzai64 !

Encore une fois tu me dépannes !!! Merci !

J'ai regardé ta proposition et vu que tu as supprimé les jours de la semaine pour "worhsheets ("saisie"), le problème était là?

Merci pour ton retour.

Bonjour

moi64 a écrit :

le problème était là?

Plus ou moins : Tu avais déclaré ces variables en String et donc tu recopiais des chaînes

Il fallait les transformer avant de les copier

    .Range("c" & Derligne + 1) = CDate(Lundi)
    .Range("d" & Derligne + 1) = CDate(Mardi)
    .Range("e" & Derligne + 1) = CDate(Mercredi)
    .Range("f" & Derligne + 1) = CDate(Jeudi)
    .Range("g" & Derligne + 1) = CDate(Vendredi)
    .Range("h" & Derligne + 1) = CDate(Samedi)
    .Range("i" & Derligne + 1) = CDate(Dimanche)

Ahhhh m....... ! la solution était devant les yeux!

Merci pour la rectification !

Re- bonjour,

Je reviens encore sur ce sujet (quoique ce n'est peut être pas le bon topic) mais je galère à faire exécuter mes volontés à cette macro "enregistrer".

Je m'explique, je souhaite que la macro ne change de ligne qu'une fois la ligne active "C:I" est remplie, (en sachant que remplir samedi et dimanche reste ponctuel) ou ... et je penche plus pour cette solution, que le numéro de semaine en feuille "saisieE10" ne change.

Je n'arrive pas à lier l'une ou l'autre de ces conditions à ma macro et donc besoin un gros besoin de vos lumières...

Merci d'avance !

Bonjour

Expliques

moi64 a écrit :

je souhaite que la macro ne change de ligne qu'une fois la ligne active "C:I" est remplie

Une fois la ligne remplie tu peux encore sauvegarder la même semaine dans une nouvelle ligne ?

Ou une ligne = 1 semaine ?

A toi de préciser

Bonjour,

Pour répondre à ta question, je souhaite qu'une ligne = 1 semaine (soit 4 = 1 mois ).

L'idée étant de remplir jour par jour, en enregistrant à chaque fois, pour qu'à la fin de la semaine, on passe à la ligne suivante.

Merci pour ton retour.

Bonjour

A vérifier

Bonjour,

Merci énormément encore une fois ! Ta macro fonctionne très bien !

Je regarderai ça de plus près dans la journée et reviendrai vers toi pour bien comprendre.

Merci encore

Bonjour à tous,

Je ré-ouvre encore une fois mon sujet car je sèche de nouveau sur mes formules...

Dans mon fichier, onglet "feuil3" se trouve la colonne "cumul mois" que je n'arrive pas à ajuster : je souhaiterai que dans cette colonne apparaisse le cumul de TOTAL MOIS par mois issus de la colonne MOIS REPORT.

Je suis arrivé à faire le cumul d'Octobre mais sans le différencier de novembre... dès que je change de n° de semaine, le TOTAL MOIS s’ajuste seul :

SOMME.SI.ENS(J2:J9;A2:A9;(RECHERCHEV(Feuil2!C43;Feuil2!S3:T14;2)))

Serait-il possible d'avoir une critique de ma formule afin de pouvoir la rectifier?

Le fichier est joint pour faciliter la compréhension, Merci à tous !

Bonjour

Les formules ne sont pas ma tasse de thé

Formule en K2 et à tirer vers le bas

=SI(NB.SI($A$2:A2;A2)=1;SOMME.SI(Mois_report;A2;cumul_mois);"")
Banzai64 a écrit :

Bonjour

Les formules ne sont pas ma tasse de thé

Encore (une fois) merci !!! Cela fonctionne parfaitement !

Ta formule est plus simple que celle que j'avais essayé de réaliser, je ne pensais pas du tout à passer par NB.SI... J'aurai bien tenté une macro cependant une formule me paraissait plus évident.

Merci encore (et à bientôt ! )

Rechercher des sujets similaires à "aide format heure"