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

VBA - ajout de deux lignes de code dans une sub de module de feuille avec 81 feuilles

1 réponse
Avatar
twinley
Bonjour à tous,

Je messplic...

J'ai un classeur qui comptabilise les heures passées pour chaque client.
Quand j'ai conçu le prog, j'ai bêtement pensé que personne ne
travaillerait plus de 9h59' par jour sur un client. Or il y a des
stakanovistes partout et il faut que je modifie le bazard.

J'ai 81 feuilles dans un classeur et la modif à faire est l'ajout de
deux lignes dans une sub de module de feuille.
Et j'ai plusieurs classeurs sur plusieurs machines, ces classeurs sont
déjà partiellement remplis de données.

Voici la partie de sub à modifier (le truc qui permet de saisir 15 et
d'obtenir 00:15 automatiquement) :

l'ancienne version :

With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 5 = 00:05
.Value = "00:0" & .Value
Case 2 ' e.g., 15 = 00:15
.Value = "00:" & .Value
Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
End If
End With

qui doit devenir

With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 5 = 00:05
.Value = "00:0" & .Value
Case 2 ' e.g., 15 = 00:15
.Value = "00:" & .Value
Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case 4 ' e.g., 1245 = 12:45
.Value = Left(.Value, 2) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
End If
End With

soit l'ajout du Case 4

Ma question :
Je ne vois pas de manière élégante de procéder à cette modif autrement
que manuellement dans les 81 pages des 6 classeurs qui sont dans la nature.

Auriez vous une solution plus performante, un truc automatic tout
électric, ou bien une façon de mieux placer les subs ?


Merci pour votre aide.
--
à+twinley

1 réponse

Avatar
René Delcourt
Tu trouveras ton bonheur là : http://dj.joss.free.fr/ecrisub.htm
--
René Delcourt



Bonjour à tous,

Je messplic...

J'ai un classeur qui comptabilise les heures passées pour chaque client.
Quand j'ai conçu le prog, j'ai bêtement pensé que personne ne
travaillerait plus de 9h59' par jour sur un client. Or il y a des
stakanovistes partout et il faut que je modifie le bazard.

J'ai 81 feuilles dans un classeur et la modif à faire est l'ajout de
deux lignes dans une sub de module de feuille.
Et j'ai plusieurs classeurs sur plusieurs machines, ces classeurs sont
déjà partiellement remplis de données.

Voici la partie de sub à modifier (le truc qui permet de saisir 15 et
d'obtenir 00:15 automatiquement) :

l'ancienne version :

With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 5 = 00:05
.Value = "00:0" & .Value
Case 2 ' e.g., 15 = 00:15
.Value = "00:" & .Value
Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
End If
End With

qui doit devenir

With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' e.g., 5 = 00:05
.Value = "00:0" & .Value
Case 2 ' e.g., 15 = 00:15
.Value = "00:" & .Value
Case 3 ' e.g., 145 = 1:45
.Value = Left(.Value, 1) & ":" & Right(.Value, 2)
Case 4 ' e.g., 1245 = 12:45
.Value = Left(.Value, 2) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
End If
End With

soit l'ajout du Case 4

Ma question :
Je ne vois pas de manière élégante de procéder à cette modif autrement
que manuellement dans les 81 pages des 6 classeurs qui sont dans la nature.

Auriez vous une solution plus performante, un truc automatic tout
électric, ou bien une façon de mieux placer les subs ?


Merci pour votre aide.
--
à+twinley