VBA - ajout de deux lignes de code dans une sub de module de feuille avec 81 feuilles
1 réponse
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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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 ?
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 ?