Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro Remplacer le format des cellules afin de cumuler les heures

7 réponses
Avatar
Lincé
Bonjour,
J'ai créé une macro pour mettre en page des extractions que je récupère dans
excel.
Jusque là tout va bien. Certaines cellules contiennent des heures cumulées
au-delà de 24h mais lorsque je récupère le fichier dans excel, il y a des
espaces en début de cellule et excel ne reconnait plus le format nombre dans
mes cellules. J'ai donc ajouté dans ma macro une partie qui supprime ses
blancs. Excel reconnait donc le format horaire, mais pour les heures
en-dessous de 24:00 le format est h:mm
alors que pour les heures cumulées au-delà de 24:00 le format est [hh]:mm:ss
je voudrais qu'il me remplace toutes les cellules avec ses formats par un
format unique [hh]:mm
J'ai donc enregistré une macro en faisant l'action rechercher/remplacer dans
excel et voilà le code que j'obtiens en VBA :

Application.FindFormat.NumberFormat = "h:mm"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True
Application.FindFormat.NumberFormat = "[h]:mm:ss"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:=False, SearchFormat:=True, ReplaceFormat:=True

Lorsque j'insère ce code dans ma macro globale de mise en page (ou même dans
une macro avec ce code seul, j'ai testé pour voir) VBA me bloque la macro aux
lignes suivantes :

Application.ReplaceFormat.NumberFormat = "[hh]:mm"

Donc en fait il veut bien rechercher les cellules au format "[hh]:mm:ss"
mais refuse de remplacer les formats par "[hh]:mm"

Ce sont les crochets qui le dérangent apparemment !
Sauf que si j'ote les crochets, je n'obtiens plus le cumul au-delà de 24:00 !

Là j'en perds mon latin car il créé lui-même la macro de cette façon, mais
si je la sors pour la mettre dans une autre, ou même si je la copie
entièrement dans une autre feuille excel, il lance la procédure de débogage !
Quelqu'un pourrait-il m'aider ? J'ai l'impression qu'il ne s'agit que d'un
pb d'écriture, mais je ne suis pas une pro des macros alors j'ai du mal à m'y
retrouver.
Merci d'avance pour votre aide
Lincé

7 réponses

Avatar
FFO
Salut à toi

Je remplacerais ces lignes :

Application.FindFormat.NumberFormat = "h:mm"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"

Par ces lignes :

With Application.FindFormat.NumberFormat
Cells.NumberFormat = "h:mm"
End With
With Application.ReplaceFormat.NumberFormat
Cells.NumberFormat = "[hh]:mm"
End With

Celà devrait mieux faire

Dis moi !!!!!
Avatar
michdenis
Bonjour,

Voici 2 exemples comment utiliser la méthode FindFormat.

Méthode I : Modifier un format de cellule
'---------------------------------------
Sub test()
With Application.FindFormat
.Clear
.NumberFormat = "[hh]:mm:ss"
End With

With Application.ReplaceFormat
.NumberFormat = "[hh]:mm"
End With
'Tu adaptes la plage et le nom de la feuille
With Worksheets("Feuil1").Range("A1:A10")
.Replace What:="", Replacement:="", _
SearchFormat:=True, ReplaceFormat:=True
End With

End Sub
'---------------------------------------

Méthode II : modifie le format et il est possible d'effectuer
une autre intervention sur chacune des cellules
dont on modifie le format.
'----------------------------------------
Sub TrouverFormat()

Dim Rg As Range
Dim LeCellFormat As CellFormat

Set LeCellFormat = Application.FindFormat
'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
.NumberFormat = "[hh]:mm:ss"
'La liste pourrait être plus longue ...
End With

'Détermine la plage de cellules où s'effectue
'la recherche
With Worksheets("Feuil1")
Set Rg = .Range("A:A")
End With

'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
On Error Resume Next
With Rg
Set C = .Find(What:="", SearchFormat:=True)
If Not C Is Nothing Then
adr = C.Address
Do
'Le code que tu veux exécuter avec la cellule trouvée
'Si tu veux modifier le format de la cellule ....
C.NumberFormat = "[hh]:mm"
'pour passer à la cellule suivante ...
Set C = .Find(What:="", after:¬tiveCell, SearchFormat:=True)
Loop Until C.Address = adr
End If
End With
End Sub
'----------------------------------------




"Lincé" a écrit dans le message de groupe de discussion :

Bonjour,
J'ai créé une macro pour mettre en page des extractions que je récupère dans
excel.
Jusque là tout va bien. Certaines cellules contiennent des heures cumulées
au-delà de 24h mais lorsque je récupère le fichier dans excel, il y a des
espaces en début de cellule et excel ne reconnait plus le format nombre dans
mes cellules. J'ai donc ajouté dans ma macro une partie qui supprime ses
blancs. Excel reconnait donc le format horaire, mais pour les heures
en-dessous de 24:00 le format est h:mm
alors que pour les heures cumulées au-delà de 24:00 le format est [hh]:mm:ss
je voudrais qu'il me remplace toutes les cellules avec ses formats par un
format unique [hh]:mm
J'ai donc enregistré une macro en faisant l'action rechercher/remplacer dans
excel et voilà le code que j'obtiens en VBA :

Application.FindFormat.NumberFormat = "h:mm"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True
Application.FindFormat.NumberFormat = "[h]:mm:ss"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True

Lorsque j'insère ce code dans ma macro globale de mise en page (ou même dans
une macro avec ce code seul, j'ai testé pour voir) VBA me bloque la macro aux
lignes suivantes :

Application.ReplaceFormat.NumberFormat = "[hh]:mm"

Donc en fait il veut bien rechercher les cellules au format "[hh]:mm:ss"
mais refuse de remplacer les formats par "[hh]:mm"

Ce sont les crochets qui le dérangent apparemment !
Sauf que si j'ote les crochets, je n'obtiens plus le cumul au-delà de 24:00 !

Là j'en perds mon latin car il créé lui-même la macro de cette façon, mais
si je la sors pour la mettre dans une autre, ou même si je la copie
entièrement dans une autre feuille excel, il lance la procédure de débogage !
Quelqu'un pourrait-il m'aider ? J'ai l'impression qu'il ne s'agit que d'un
pb d'écriture, mais je ne suis pas une pro des macros alors j'ai du mal à m'y
retrouver.
Merci d'avance pour votre aide
Lincé
Avatar
FS
Bonjour,

Je te propose d'utiliser plutôt ce genre de code (l'application d'un
format personnalisé ne pose aucun problème s'il est fait cellule par
cellule) :

'============= Sub RemplaceFormat()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange
Select Case cell.NumberFormat
Case "h:mm", "h:mm;@", "[h]:mm:ss", "[h]:mm:ss;@"
cell.NumberFormat = "[hh]:mm"
Case Else
End Select
Next cell
End Sub
'=============
Ça n'agit que sur la feuille active (mais ça peut s'adapter).
En espérant que tu n'aies pas un trop grand nombre de cellules à passer
dans la moulinette :)

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Lincé a écrit :
Bonjour,
J'ai créé une macro pour mettre en page des extractions que je récupère dans
excel.
Jusque là tout va bien. Certaines cellules contiennent des heures cumulées
au-delà de 24h mais lorsque je récupère le fichier dans excel, il y a des
espaces en début de cellule et excel ne reconnait plus le format nombre dans
mes cellules. J'ai donc ajouté dans ma macro une partie qui supprime ses
blancs. Excel reconnait donc le format horaire, mais pour les heures
en-dessous de 24:00 le format est h:mm
alors que pour les heures cumulées au-delà de 24:00 le format est [hh]:mm:ss
je voudrais qu'il me remplace toutes les cellules avec ses formats par un
format unique [hh]:mm
J'ai donc enregistré une macro en faisant l'action rechercher/remplacer dans
excel et voilà le code que j'obtiens en VBA :

Application.FindFormat.NumberFormat = "h:mm"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True
Application.FindFormat.NumberFormat = "[h]:mm:ss"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True

Lorsque j'insère ce code dans ma macro globale de mise en page (ou même dans
une macro avec ce code seul, j'ai testé pour voir) VBA me bloque la macro aux
lignes suivantes :

Application.ReplaceFormat.NumberFormat = "[hh]:mm"

Donc en fait il veut bien rechercher les cellules au format "[hh]:mm:ss"
mais refuse de remplacer les formats par "[hh]:mm"

Ce sont les crochets qui le dérangent apparemment !
Sauf que si j'ote les crochets, je n'obtiens plus le cumul au-delà de 24:00 !

Là j'en perds mon latin car il créé lui-même la macro de cette façon, mais
si je la sors pour la mettre dans une autre, ou même si je la copie
entièrement dans une autre feuille excel, il lance la procédure de débogage !
Quelqu'un pourrait-il m'aider ? J'ai l'impression qu'il ne s'agit que d'un
pb d'écriture, mais je ne suis pas une pro des macros alors j'ai du mal à m'y
retrouver.
Merci d'avance pour votre aide
Lincé


Avatar
Lincé
Salut grand génie ;)
Ca fonctionne impec ! Merci bcp
Il va falloir que je prenne des cours !
Merci aux autres personnes qui ont pris le tps également de me répondre.
Il n'est pas exclus que je repasse demander de l'aide car je n'en ai pas
terminé avec mes macros, loin s'en faut ...
Encore merci
@+

"FFO" a écrit :

Salut à toi

Je remplacerais ces lignes :

Application.FindFormat.NumberFormat = "h:mm"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"

Par ces lignes :

With Application.FindFormat.NumberFormat
Cells.NumberFormat = "h:mm"
End With
With Application.ReplaceFormat.NumberFormat
Cells.NumberFormat = "[hh]:mm"
End With

Celà devrait mieux faire

Dis moi !!!!!



Avatar
Lincé
Bonjour et merci de m'avoir répondu.
J'ai utilisé le code proposé par FFO et ça marche pour moi.
Je testerai quand même le tien ! histoire d'essayer de comprendre le
fonctionnement des macros.
Bonne journée


"FS" a écrit :

Bonjour,

Je te propose d'utiliser plutôt ce genre de code (l'application d'un
format personnalisé ne pose aucun problème s'il est fait cellule par
cellule) :

'============= > Sub RemplaceFormat()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange
Select Case cell.NumberFormat
Case "h:mm", "h:mm;@", "[h]:mm:ss", "[h]:mm:ss;@"
cell.NumberFormat = "[hh]:mm"
Case Else
End Select
Next cell
End Sub
'============= >
Ça n'agit que sur la feuille active (mais ça peut s'adapter).
En espérant que tu n'aies pas un trop grand nombre de cellules à passer
dans la moulinette :)

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Lincé a écrit :
> Bonjour,
> J'ai créé une macro pour mettre en page des extractions que je récupère dans
> excel.
> Jusque là tout va bien. Certaines cellules contiennent des heures cumulées
> au-delà de 24h mais lorsque je récupère le fichier dans excel, il y a des
> espaces en début de cellule et excel ne reconnait plus le format nombre dans
> mes cellules. J'ai donc ajouté dans ma macro une partie qui supprime ses
> blancs. Excel reconnait donc le format horaire, mais pour les heures
> en-dessous de 24:00 le format est h:mm
> alors que pour les heures cumulées au-delà de 24:00 le format est [hh]:mm:ss
> je voudrais qu'il me remplace toutes les cellules avec ses formats par un
> format unique [hh]:mm
> J'ai donc enregistré une macro en faisant l'action rechercher/remplacer dans
> excel et voilà le code que j'obtiens en VBA :
>
> Application.FindFormat.NumberFormat = "h:mm"
> Application.ReplaceFormat.NumberFormat = "[hh]:mm"
> Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
> xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True
> Application.FindFormat.NumberFormat = "[h]:mm:ss"
> Application.ReplaceFormat.NumberFormat = "[hh]:mm"
> Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
> xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True
>
> Lorsque j'insère ce code dans ma macro globale de mise en page (ou même dans
> une macro avec ce code seul, j'ai testé pour voir) VBA me bloque la macro aux
> lignes suivantes :
>
> Application.ReplaceFormat.NumberFormat = "[hh]:mm"
>
> Donc en fait il veut bien rechercher les cellules au format "[hh]:mm:ss"
> mais refuse de remplacer les formats par "[hh]:mm"
>
> Ce sont les crochets qui le dérangent apparemment !
> Sauf que si j'ote les crochets, je n'obtiens plus le cumul au-delà de 24:00 !
>
> Là j'en perds mon latin car il créé lui-même la macro de cette façon, mais
> si je la sors pour la mettre dans une autre, ou même si je la copie
> entièrement dans une autre feuille excel, il lance la procédure de débogage !
> Quelqu'un pourrait-il m'aider ? J'ai l'impression qu'il ne s'agit que d'un
> pb d'écriture, mais je ne suis pas une pro des macros alors j'ai du mal à m'y
> retrouver.
> Merci d'avance pour votre aide
> Lincé
.



Avatar
Lincé
Bonjour,
Merci pour ton aide.
J'ai utilisé le code proposé par FFO mais merci quand même d'avoir pris le
temps de me répondre.
Bonne journée


"michdenis" a écrit :

Bonjour,

Voici 2 exemples comment utiliser la méthode FindFormat.

Méthode I : Modifier un format de cellule
'---------------------------------------
Sub test()
With Application.FindFormat
.Clear
.NumberFormat = "[hh]:mm:ss"
End With

With Application.ReplaceFormat
.NumberFormat = "[hh]:mm"
End With
'Tu adaptes la plage et le nom de la feuille
With Worksheets("Feuil1").Range("A1:A10")
.Replace What:="", Replacement:="", _
SearchFormat:=True, ReplaceFormat:=True
End With

End Sub
'---------------------------------------

Méthode II : modifie le format et il est possible d'effectuer
une autre intervention sur chacune des cellules
dont on modifie le format.
'----------------------------------------
Sub TrouverFormat()

Dim Rg As Range
Dim LeCellFormat As CellFormat

Set LeCellFormat = Application.FindFormat
'Détermine les caractéristiques
'du format de cellule recherché.
With LeCellFormat
.Clear 'S'assurer d'effacer les critères
'des anciennes recherches
.NumberFormat = "[hh]:mm:ss"
'La liste pourrait être plus longue ...
End With

'Détermine la plage de cellules où s'effectue
'la recherche
With Worksheets("Feuil1")
Set Rg = .Range("A:A")
End With

'Trouve la cellule ayant le bon format pour
'y effectuer une ou des opérations quelconques...
On Error Resume Next
With Rg
Set C = .Find(What:="", SearchFormat:=True)
If Not C Is Nothing Then
adr = C.Address
Do
'Le code que tu veux exécuter avec la cellule trouvée
'Si tu veux modifier le format de la cellule ....
C.NumberFormat = "[hh]:mm"
'pour passer à la cellule suivante ...
Set C = .Find(What:="", after:¬tiveCell, SearchFormat:=True)
Loop Until C.Address = adr
End If
End With
End Sub
'----------------------------------------




"Lincé" a écrit dans le message de groupe de discussion :

Bonjour,
J'ai créé une macro pour mettre en page des extractions que je récupère dans
excel.
Jusque là tout va bien. Certaines cellules contiennent des heures cumulées
au-delà de 24h mais lorsque je récupère le fichier dans excel, il y a des
espaces en début de cellule et excel ne reconnait plus le format nombre dans
mes cellules. J'ai donc ajouté dans ma macro une partie qui supprime ses
blancs. Excel reconnait donc le format horaire, mais pour les heures
en-dessous de 24:00 le format est h:mm
alors que pour les heures cumulées au-delà de 24:00 le format est [hh]:mm:ss
je voudrais qu'il me remplace toutes les cellules avec ses formats par un
format unique [hh]:mm
J'ai donc enregistré une macro en faisant l'action rechercher/remplacer dans
excel et voilà le code que j'obtiens en VBA :

Application.FindFormat.NumberFormat = "h:mm"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True
Application.FindFormat.NumberFormat = "[h]:mm:ss"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True

Lorsque j'insère ce code dans ma macro globale de mise en page (ou même dans
une macro avec ce code seul, j'ai testé pour voir) VBA me bloque la macro aux
lignes suivantes :

Application.ReplaceFormat.NumberFormat = "[hh]:mm"

Donc en fait il veut bien rechercher les cellules au format "[hh]:mm:ss"
mais refuse de remplacer les formats par "[hh]:mm"

Ce sont les crochets qui le dérangent apparemment !
Sauf que si j'ote les crochets, je n'obtiens plus le cumul au-delà de 24:00 !

Là j'en perds mon latin car il créé lui-même la macro de cette façon, mais
si je la sors pour la mettre dans une autre, ou même si je la copie
entièrement dans une autre feuille excel, il lance la procédure de débogage !
Quelqu'un pourrait-il m'aider ? J'ai l'impression qu'il ne s'agit que d'un
pb d'écriture, mais je ne suis pas une pro des macros alors j'ai du mal à m'y
retrouver.
Merci d'avance pour votre aide
Lincé



Avatar
FS
Bonjour,

> J'ai utilisé le code proposé par FFO et ça marche pour moi.

Très bien, mais permets-moi de te faire remarquer que ce code mets
_toutes_ les cellules d'une feuille de calcul au format [hh]:mm et non
pas seulement celles qui sont au format "h:mm" ou "[h]:mm:ss", ce qui
était ta demande. Si tu as des nombres "ordinaires" dans ta feuille de
calcul ou des montants, et pas seulement des heures, tu vas avoir du mal
à t'y retrouver...
Par ailleurs dans le code que tu as retenu, une seule instruction est
utile, c'est
Cells.NumberFormat = "[hh]:mm"
Les autres ne servent à rien. En effet, pour que cette instruction soit
reliée à celles qui cherche (FindFormat) et remplace (ReplaceFormat), et
ne concerne donc que les cellules dont il faut changer le format, il
faudrait qu'elle commence par un point (cf le With...End With)
.Cells.NumberFormat = "[hh]:mm"
Mais ce n'est pas possible, cette syntaxe provoque une erreur.
Donc tu ne mets pas de point. Et pas d'erreur. Mais sans point,
l'instruction s'applique à toute la feuille et à tous les formats quels
qu'ils soient, d'où ma remarque précédente.
Encore une fois, si ça répond à ton besoin, très bien. Mais dans ce cas
tu peux au moins simplifier le code. Avec

Sub essai2()
Cells.NumberFormat = "[hh]:mm"
End Sub

Tu obtiendras exactement le même résultat qu'avec

Sub essai()
With Application.FindFormat.NumberFormat
Cells.NumberFormat = "h:mm"
End With
With Application.ReplaceFormat.NumberFormat
Cells.NumberFormat = "[hh]:mm"
End With
End Sub

Je reste quand même avec l'impression que ça ne répond pas à la question
telle que tu l'avais posée...

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Lincé a écrit :
Bonjour et merci de m'avoir répondu.
J'ai utilisé le code proposé par FFO et ça marche pour moi.
Je testerai quand même le tien ! histoire d'essayer de comprendre le
fonctionnement des macros.
Bonne journée


"FS" a écrit :

Bonjour,

Je te propose d'utiliser plutôt ce genre de code (l'application d'un
format personnalisé ne pose aucun problème s'il est fait cellule par
cellule) :

'============= >> Sub RemplaceFormat()
Dim cell As Range
For Each cell In ActiveSheet.UsedRange
Select Case cell.NumberFormat
Case "h:mm", "h:mm;@", "[h]:mm:ss", "[h]:mm:ss;@"
cell.NumberFormat = "[hh]:mm"
Case Else
End Select
Next cell
End Sub
'============= >>
Ça n'agit que sur la feuille active (mais ça peut s'adapter).
En espérant que tu n'aies pas un trop grand nombre de cellules à passer
dans la moulinette :)

FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/

Lincé a écrit :
Bonjour,
J'ai créé une macro pour mettre en page des extractions que je récupère dans
excel.
Jusque là tout va bien. Certaines cellules contiennent des heures cumulées
au-delà de 24h mais lorsque je récupère le fichier dans excel, il y a des
espaces en début de cellule et excel ne reconnait plus le format nombre dans
mes cellules. J'ai donc ajouté dans ma macro une partie qui supprime ses
blancs. Excel reconnait donc le format horaire, mais pour les heures
en-dessous de 24:00 le format est h:mm
alors que pour les heures cumulées au-delà de 24:00 le format est [hh]:mm:ss
je voudrais qu'il me remplace toutes les cellules avec ses formats par un
format unique [hh]:mm
J'ai donc enregistré une macro en faisant l'action rechercher/remplacer dans
excel et voilà le code que j'obtiens en VBA :

Application.FindFormat.NumberFormat = "h:mm"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True
Application.FindFormat.NumberFormat = "[h]:mm:ss"
Application.ReplaceFormat.NumberFormat = "[hh]:mm"
Cells.Replace What:="", Replacement:="", LookAt:=xlWhole, SearchOrder:= _
xlByColumns, MatchCase:úlse, SearchFormat:=True, ReplaceFormat:=True

Lorsque j'insère ce code dans ma macro globale de mise en page (ou même dans
une macro avec ce code seul, j'ai testé pour voir) VBA me bloque la macro aux
lignes suivantes :

Application.ReplaceFormat.NumberFormat = "[hh]:mm"

Donc en fait il veut bien rechercher les cellules au format "[hh]:mm:ss"
mais refuse de remplacer les formats par "[hh]:mm"

Ce sont les crochets qui le dérangent apparemment !
Sauf que si j'ote les crochets, je n'obtiens plus le cumul au-delà de 24:00 !

Là j'en perds mon latin car il créé lui-même la macro de cette façon, mais
si je la sors pour la mettre dans une autre, ou même si je la copie
entièrement dans une autre feuille excel, il lance la procédure de débogage !
Quelqu'un pourrait-il m'aider ? J'ai l'impression qu'il ne s'agit que d'un
pb d'écriture, mais je ne suis pas une pro des macros alors j'ai du mal à m'y
retrouver.
Merci d'avance pour votre aide
Lincé


.