Format Heure Champs de Fusion Word rempli par Excel

Bonjour forum

J'ai besoin de votre aide une autre fois

J'ai un fichier Word que je remplie par un fichier Excel (ce n'est pas du publipostage mais c'est le même principe). Tout marche bien, mais dans mon fichier Excel, j'ai une cellule en format Heure (HH:MM) mais en l'injectant dans le fichier Word, je trouve un nombre décimal.
J'ai essayé de modifier le code de mon champs de cette manière mais toujours j'ai un nombre décimal

{MERGEFIELD "Duree Totale d'intervention" \@ "hh:mm"}

Qqn a une idée ?

Que donne CDate(madate) à l'injection ?

Je n'ai pas compris ta question

Je n'ai pas cette fonction dans mon code.

En effet la cellule Excel est rempli par un TextBox par l'utilisateur, stocké dans le fichier Excel (le format en Excel est bien heure) mais en Word elle se transforme en décimal

Au lieu d'envoyer la valeur de ta Textbox1, essaye d'envoyer CDate(Textbox1.text) ou TextBox1.Object pour voir.

Je l'ai essayé mais au lieu d'avoir la durée saisie j'ai une date . Mais en effet, moi pour l'étape de récupérer la durée saisie dans le textbox dans la cellule Excel sous forme heure je n'ai pas un problème. Mon problème c'est dans l'étape d'injecter cette valeur depuis Excel

15test.docx (14.42 Ko)
16test.xlsm (17.69 Ko)

vers Word.

Voici en PJ un exemple très simplifié de mon code et de mon problème.

Merci pour ton aide :)

Un peu trop simplifié peut-être, chez moi ça plante (appel de routine inexistante). Si cet exemple fonctionne chez toi, on a un pb

Je m'excuse, voici un exemple qui fonctionne mais évidement avec le pb. J'ai ajouté aussi le fichier PDF résultat de l'exécution.

11test.xlsm (23.34 Ko)
5test.docx (14.43 Ko)

Je crois avoir compris ton problème. Les heures sont gérées en interne sous la forme de nombres. Le chiffre que tu vois (0.296666667) c'est une fraction d'un jour. Si tu le multiplie par 24, ça te donnera bien 7.
7 c'est la valeur décimale de 7h00. Si tu avais entré 07:30 tu aurais eu 7,5 en sortie.
Je t'ai mis un petit exemple qui te permettra de convertir ta cellule en chaîne de caractères, c'est cette chaîne qu'il faudra envoyer vers le champ de fusion de Word.

il y a probablement plus rapide et mieux, mais cette solution marche.

34exemple.xlsm (18.86 Ko)

Bonjour, je penses que le code de champs s'écrit sans guillemets et avec des HH majuscules pour le format français (24h)

{MERGEFIELD DureeTotaledintervention \@ HH:mm}

nota aprés avoir basculé une première fois le code de champs pour effectuer la modification ; rebasculer puis clic droit pour mettre à jour le code de champs.

Merci infiniment Optimix ta solution marche, et entre temps une personne de ce forum m'a aussi proposer cette modification de code qui marche aussi .

La voici, s'il peut aider qqn :

If InStr(1, cell.Offset(ligne - 1).NumberFormat, "h") > 0 Then champ.Result.Text = Format(cell.Offset(ligne - 1), "hh:mm")

Merci pour vous tous :)

Rechercher des sujets similaires à "format heure champs fusion word rempli"