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

Appel au secours des pros codes

22 réponses
Avatar
George
Hello a tous.

Il y a qq temps, j'ai reçu pour faire un tableau, un code à insérer.

Jusqu'à hier, et multiples changements dans mon tableau (pas le code), je
n'avais aucun problème.

Ce code sert principalement à changer le format 3.30 en 3: 30 (format
horaire)

Mais voilà.

J'ai envoyé cette feuille Excel et je l'ai reçue en retour sans le code.
J'ai trouvé judicieux de le remettre, mais voilà. Toutes mes pages excels me
changent le "." en ":"

Mais à la base, cette action n'aurait dû être active que sur une seule
feuille et non tout Excel.

Qui pourrait m'aider à trouver une solution pour corriger mon erreur.

Salutations et merci à tous.

George

10 réponses

1 2 3
Avatar
Philippe.R
Bonsoir George,
Peux tu ici copier le code en question, histoire d'en voir un peu plus avant de dire une conceté ?
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"George" a écrit dans le message de
news:
Hello a tous.

Il y a qq temps, j'ai reçu pour faire un tableau, un code à insérer.

Jusqu'à hier, et multiples changements dans mon tableau (pas le code), je
n'avais aucun problème.

Ce code sert principalement à changer le format 3.30 en 3: 30 (format
horaire)

Mais voilà.

J'ai envoyé cette feuille Excel et je l'ai reçue en retour sans le code.
J'ai trouvé judicieux de le remettre, mais voilà. Toutes mes pages excels me
changent le "." en ":"

Mais à la base, cette action n'aurait dû être active que sur une seule
feuille et non tout Excel.

Qui pourrait m'aider à trouver une solution pour corriger mon erreur.

Salutations et merci à tous.

George




Avatar
George
Hello Philippe R.

Sans problème.....

Dans le module de cette feuille il faut copier le code ci-dessous:

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If Intersect(zz, Range("A1:A10")) Is Nothing Then Exit Sub
If IsError(Application.Find(".", zz.Value)) Then 'saisie d'un entier =>
heure
Application.EnableEvents = False
zz = zz & ":"
Application.EnableEvents = True
End If
On Error Resume Next
Application.AutoCorrect.DeleteReplacement "."
End Sub

Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If Intersect(zz, Range("A1:A10")) Is Nothing Then
On Error Resume Next
Application.AutoCorrect.DeleteReplacement "."
Exit Sub
End If
Application.AutoCorrect.AddReplacement ".", ":"
End Sub

Et voilà....

Salutations

George


"Philippe.R" a écrit dans le message de
news:
Bonsoir George,
Peux tu ici copier le code en question, histoire d'en voir un peu plus
avant de dire une conceté ?

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"George" a écrit dans le message de
news:
Hello a tous.

Il y a qq temps, j'ai reçu pour faire un tableau, un code à insérer.

Jusqu'à hier, et multiples changements dans mon tableau (pas le code),
je


n'avais aucun problème.

Ce code sert principalement à changer le format 3.30 en 3: 30 (format
horaire)

Mais voilà.

J'ai envoyé cette feuille Excel et je l'ai reçue en retour sans le code.
J'ai trouvé judicieux de le remettre, mais voilà. Toutes mes pages
excels me


changent le "." en ":"

Mais à la base, cette action n'aurait dû être active que sur une seule
feuille et non tout Excel.

Qui pourrait m'aider à trouver une solution pour corriger mon erreur.

Salutations et merci à tous.

George








Avatar
Philippe.R
Bonsoir George,
Ce code, probablement signé AV, si tu prends soin de le copier exclusivement dans le module de la
feuille concernée (pour ce faire, clic droit sur l'onglet, visualiser le code et coller dans la fenêtre
qui s'ouvre) assure le remplacement du point par un format horaire (:) pour la plage a1:a10 de la
feuille concernée.
Chez moi, sur un classeur vierge test, ça fonctionne à merveille.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre facilement le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"George" a écrit dans le message de news:
Hello Philippe R.

Sans problème.....

Dans le module de cette feuille il faut copier le code ci-dessous:

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If Intersect(zz, Range("A1:A10")) Is Nothing Then Exit Sub
If IsError(Application.Find(".", zz.Value)) Then 'saisie d'un entier =>
heure
Application.EnableEvents = False
zz = zz & ":"
Application.EnableEvents = True
End If
On Error Resume Next
Application.AutoCorrect.DeleteReplacement "."
End Sub

Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If Intersect(zz, Range("A1:A10")) Is Nothing Then
On Error Resume Next
Application.AutoCorrect.DeleteReplacement "."
Exit Sub
End If
Application.AutoCorrect.AddReplacement ".", ":"
End Sub

Et voilà....

Salutations

George


"Philippe.R" a écrit dans le message de
news:
Bonsoir George,
Peux tu ici copier le code en question, histoire d'en voir un peu plus
avant de dire une conceté ?

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"George" a écrit dans le message de
news:
Hello a tous.

Il y a qq temps, j'ai reçu pour faire un tableau, un code à insérer.

Jusqu'à hier, et multiples changements dans mon tableau (pas le code),
je


n'avais aucun problème.

Ce code sert principalement à changer le format 3.30 en 3: 30 (format
horaire)

Mais voilà.

J'ai envoyé cette feuille Excel et je l'ai reçue en retour sans le code.
J'ai trouvé judicieux de le remettre, mais voilà. Toutes mes pages
excels me


changent le "." en ":"

Mais à la base, cette action n'aurait dû être active que sur une seule
feuille et non tout Excel.

Qui pourrait m'aider à trouver une solution pour corriger mon erreur.

Salutations et merci à tous.

George












Avatar
George
Hello Philippe,

Effectivement, je vois que tu as reconnu la patte Du Grand Maître Alain.

Mais voilà, au début cela fonctionnait bien.

Ma question alors est:
Comme j'ai envoyé un fichier Excel à une connaissance, que le l'ai reçu en
retour par mail. J'ai ouvert ce fichier (avec déjà plusieurs fichiers Excel
ouvert) et coller le code dans la fenêtre que tu m'as indiquée.

Serait-il possible que ce problème viendrait de là?
Collé un code avec plusieurs feuilles ouvertes?

Salutations

George


"Philippe.R" a écrit dans le message de
news:%23zM7$
Bonsoir George,
Ce code, probablement signé AV, si tu prends soin de le copier
exclusivement dans le module de la

feuille concernée (pour ce faire, clic droit sur l'onglet, visualiser le
code et coller dans la fenêtre

qui s'ouvre) assure le remplacement du point par un format horaire (:)
pour la plage a1:a10 de la

feuille concernée.
Chez moi, sur un classeur vierge test, ça fonctionne à merveille.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre facilement le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"George" a écrit dans le message de
news:

Hello Philippe R.

Sans problème.....

Dans le module de cette feuille il faut copier le code ci-dessous:

Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If Intersect(zz, Range("A1:A10")) Is Nothing Then Exit Sub
If IsError(Application.Find(".", zz.Value)) Then 'saisie d'un entier =>
heure
Application.EnableEvents = False
zz = zz & ":"
Application.EnableEvents = True
End If
On Error Resume Next
Application.AutoCorrect.DeleteReplacement "."
End Sub

Private Sub Worksheet_SelectionChange(ByVal zz As Range)
If zz.Count > 1 Then Exit Sub
If Intersect(zz, Range("A1:A10")) Is Nothing Then
On Error Resume Next
Application.AutoCorrect.DeleteReplacement "."
Exit Sub
End If
Application.AutoCorrect.AddReplacement ".", ":"
End Sub

Et voilà....

Salutations

George


"Philippe.R" a écrit dans le message de
news:
Bonsoir George,
Peux tu ici copier le code en question, histoire d'en voir un peu plus
avant de dire une conceté ?

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002

"George" a écrit dans le message de
news:
Hello a tous.

Il y a qq temps, j'ai reçu pour faire un tableau, un code à insérer.

Jusqu'à hier, et multiples changements dans mon tableau (pas le
code),




je
n'avais aucun problème.

Ce code sert principalement à changer le format 3.30 en 3: 30
(format




horaire)

Mais voilà.

J'ai envoyé cette feuille Excel et je l'ai reçue en retour sans le
code.




J'ai trouvé judicieux de le remettre, mais voilà. Toutes mes pages
excels me


changent le "." en ":"

Mais à la base, cette action n'aurait dû être active que sur une
seule




feuille et non tout Excel.

Qui pourrait m'aider à trouver une solution pour corriger mon
erreur.





Salutations et merci à tous.

George
















Avatar
George
Cher Philippe,

voilà que je viens de réessayer de mettre ma macro dans le tableau. Cela
fonctionne
mais voilà, elle me change aussi la boite de dialogue "Correction
Automatique" (le point en double point).

En fait ce n'est pas ce que je voudrais, le truc que je voudrais c'est que
cette macro ne soit active que dans la feuille de calcul sélectionnée et non
pas dans tous les programmes offices.

devrais-je faire des réglages au niveau des acceptations de macros dans
outil. Là, je suis complétement perdu.

C'est la deuxième fois que j'enlève dans "Correction automatique" cette
commande.

Salutations

George

P.S.

AV, cela fait déjà qq jours que je ne le vois plus ici.
Avatar
George
Je viens de remarquer aussi que le fait de supprimer la "Correction
automatique" (depuis la boite de dialogue) et de rouvrir le tableau avec la
macro,
me réinsère la correction automatique dans tous Excel.

Vraiment je suis perdu

George


"George" a écrit dans le message de
news:%
Cher Philippe,

voilà que je viens de réessayer de mettre ma macro dans le tableau. Cela
fonctionne
mais voilà, elle me change aussi la boite de dialogue "Correction
Automatique" (le point en double point).

En fait ce n'est pas ce que je voudrais, le truc que je voudrais c'est que
cette macro ne soit active que dans la feuille de calcul sélectionnée et
non

pas dans tous les programmes offices.

devrais-je faire des réglages au niveau des acceptations de macros dans
outil. Là, je suis complétement perdu.

C'est la deuxième fois que j'enlève dans "Correction automatique" cette
commande.

Salutations

George

P.S.

AV, cela fait déjà qq jours que je ne le vois plus ici.




Avatar
Michel Gaboly
Bonjour George,

Il y a plusieurs insuffisances de conception : seule une partie
des cas sont traités, et certains remplacement sont faits à
tort (remplacement des ":" par un point si on entre dans une
cellule de la plage A1:A10 du texte comportant un point).

Le principe est que si on sélectionne une cellule (et une seule)
de la plage A1:A10, on modifie les règles de correction automa-
tique pour remplacer le point, "." par deux points, ":".

Les défauts sont les suivants :

Si on sélectionne ensuite une plage de plusieurs cellules, la cor-
rection auto n'est pas annulée, à cause d'une sortie intempestive
de la procédure _SelectionChange() :

If zz.Count > 1 Then Exit Sub

Par ailleurs, si après avoir entré quelque chose dans une cellule
de la plage A1:A10, on sélectionne une autre feuille du même clas-
seur ou un autre classeur, la correction n'est pas non + annulée,
car l'événement SelectionChange ne survient pas. L'événement est
alors Deactivate de la feuille ou du classeur, qui ne sont gérés ni
l'un ni l'autre, celui du classeur devant l'être dans le module
ThisWorkbook.

D'autre part, si on entre une même valeur dans plusieurs cellules
à la fois de la plage A1:A10, un horaire initial comme 9.30 par
exemple, le remplacement n'est pas non + fait, à cause de la même
sortie de la procédure, cette fois dans _Change() :

If zz.Count > 1 Then Exit Sub

Enfin, _SelectionChange() touche à la correction automatique sans
se préoccuper des options antérieures : si sur un poste existe une
correction auto qui remplace le point par une virgule (par exemple),
cette correction sera détruite.


Le plus simple consiste probablement à abandonner :

- La correction automatique, pour ne pas remettre en cause l'exis-
tant, ni l'appliquer à une saisie de texte.

- L'appel à SelectionChange() qui implique de gérer aussi l'événe-
ment Deactivate de la feuille et celui du classeur pour avoir un
résultat correct.


Voici ce que je te propose :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Application.WorksheetFunction.Substitute(c, ".", "")) Then
Application.EnableEvents = False
If IsError(Application.Find(".", c)) Then
c = c & ":" ' Heure entière
Else
c = Application.WorksheetFunction.Substitute(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Application.WorksheetFunction.Substitute est utilisé pour des raisons de
compatibilé avec Excel 97 et les versions Mac (Excel 98 à Excel 2004).

Sur PC, avec Excel 2000 ou + récent, tu peux rempacer Application.
WorksheetFunction.Substitute par Replace, ce qui donne :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, ".", "")) Then
Application.EnableEvents = False
If IsError(Application.Find(".", c)) Then
c = c & ":" ' Heure entière
Else
c = Replace(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Tu peux également modifier la procédure en faisant que c'est le point
ou la virgule qui est remplacée, selon le séparateur décimal défini sur
le poste, ce qui donne (version avec Replace)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sep as string, c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, Sep, "")) Then
Application.EnableEvents = False
If IsError(Application.Find(Sep, c)) Then
c = c & ":" ' Heure entière
Else
c = Replace(c, Sep, ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Malheureusement Application.WorksheetFunction.Substitute (pas
testé avec Replace) traite mal les dizaines de minutes : 9,2 ou 9,20
aboutissent à 9:02.

Une correction s'impose alors. Voici dans ces conditions le contenu
final du module (version avec Application.WorksheetFunction.
Substitute) :

Option Explicit
Dim Sep As String, Dizaine As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Sep = Application.International(xlDecimalSeparator)
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(c) Then
Application.EnableEvents = False
If IsError(Cells.Find(Sep, c)) Then
c = c & ":" ' Heure entière
MsgBox Sep
Else
CorrectionDizaine c
c = Application.WorksheetFunction.Substitute(c, Sep, ":")
' Si on entre 9,2 ou 9,20, le résultat est 9:02 au lieu de 9:20
' il faut donc rajouter 9 fois le nb erroné de minutes pour passer
' de 2 à 20. Une unité représentant 1 jour, il faut diviser par
' 1440 (24 *60, nb de minutes par jour), pour ajouter des
' minutes.
If Dizaine Then
c = c + (Minute(c) * 9) / 1440
End If
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub

Private Sub CorrectionDizaine(c As Range)
Dim Pos As Integer, Minutes As Long
Dizaine = False
Pos = Application.WorksheetFunction.Search(Sep, c)
Minutes = Mid(c, Pos + 1, 99)
If Minutes <= 6 And Mid(c, Pos + 1, 1) <> 0 Then
Dizaine = True
End If
End Sub


Dis-moi si cela te convient.



Cher Philippe,

voilà que je viens de réessayer de mettre ma macro dans le tableau. Cela
fonctionne
mais voilà, elle me change aussi la boite de dialogue "Correction
Automatique" (le point en double point).

En fait ce n'est pas ce que je voudrais, le truc que je voudrais c'est que
cette macro ne soit active que dans la feuille de calcul sélectionnée et non
pas dans tous les programmes offices.

devrais-je faire des réglages au niveau des acceptations de macros dans
outil. Là, je suis complétement perdu.

C'est la deuxième fois que j'enlève dans "Correction automatique" cette
commande.

Salutations

George

P.S.

AV, cela fait déjà qq jours que je ne le vois plus ici.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com

Avatar
George
Cher Maître Gaboly,

Un grand merci pour tes explications.

Je dois t'avouer que tu me parles un langage que je vais devoir prendre du
temps et passer au mois des mois à comprendre ce que tu m'as écrit. Non sans
mauvaise volonté, mais que je n'y ai absolument rien compris. (suis encore
et toujours nul en code et formules complexes).

Par contre, je vais essayer de m'y atteler dans les prochaines semaines,
mais je ne garantirais pas les résultats pour le début. Mon soucis, c'est
que maintenant suivant tes explicatifs, les lignes de codes que tu m'as
données, auront-elles les résultats que je souhaite ?

1. Ultra simplicité pour saisir, les chiffres horaires ([h]:mm) selon le
pavé numérique
(donc changement du double point à la place point en ayant le double point
qui s'inscrit) [est-ce que je me suis bien fait comprendre??]

2. Cette façon de faire, sera t'elle uniquement possible sur le "Classeur
Excel" et les feuilles qui s'y rapportent, sans être automatiquement
répercutées sur les autres documents?

3. Selon tes explications, mon soucis actuelle vient du fait que tu m'as
embrouillée sur la compatibilité entre Excel 97 , Excel 2000 et XP ainsi que
2003.
(ce fichier serait utilisable sur 4 pc différents: 1. sous Excel 97 avec Win
98 / 2. sous Excel XP avec Win Xp / 3. sous win2k avec Excel 2003 (le mien)
/ 4. sous win2k avec Excel 2000 ) snif !!!! gros soucis suite à ce que tu
m'as dit avant.

4. Les cellules auquel se rapportent ce code sont C9 : AG 30 (pour la
version définitive)

Je choisis quoi? Je pensais qu'il suffisait juste "Enregistrer sous.... "
version précédente, pour avoir mes quatre copies de fichiers que
j'installerais par la suite sur les autres PC.


Cher Michel, je réitère encore mes remerciements pour tes lumières.

Salutations

George






"Michel Gaboly" a écrit dans le message de
news:
Bonjour George,

Il y a plusieurs insuffisances de conception : seule une partie
des cas sont traités, et certains remplacement sont faits à
tort (remplacement des ":" par un point si on entre dans une
cellule de la plage A1:A10 du texte comportant un point).

Le principe est que si on sélectionne une cellule (et une seule)
de la plage A1:A10, on modifie les règles de correction automa-
tique pour remplacer le point, "." par deux points, ":".

Les défauts sont les suivants :

Si on sélectionne ensuite une plage de plusieurs cellules, la cor-
rection auto n'est pas annulée, à cause d'une sortie intempestive
de la procédure _SelectionChange() :

If zz.Count > 1 Then Exit Sub

Par ailleurs, si après avoir entré quelque chose dans une cellule
de la plage A1:A10, on sélectionne une autre feuille du même clas-
seur ou un autre classeur, la correction n'est pas non + annulée,
car l'événement SelectionChange ne survient pas. L'événement est
alors Deactivate de la feuille ou du classeur, qui ne sont gérés ni
l'un ni l'autre, celui du classeur devant l'être dans le module
ThisWorkbook.

D'autre part, si on entre une même valeur dans plusieurs cellules
à la fois de la plage A1:A10, un horaire initial comme 9.30 par
exemple, le remplacement n'est pas non + fait, à cause de la même
sortie de la procédure, cette fois dans _Change() :

If zz.Count > 1 Then Exit Sub

Enfin, _SelectionChange() touche à la correction automatique sans
se préoccuper des options antérieures : si sur un poste existe une
correction auto qui remplace le point par une virgule (par exemple),
cette correction sera détruite.


Le plus simple consiste probablement à abandonner :

- La correction automatique, pour ne pas remettre en cause l'exis-
tant, ni l'appliquer à une saisie de texte.

- L'appel à SelectionChange() qui implique de gérer aussi l'événe-
ment Deactivate de la feuille et celui du classeur pour avoir un
résultat correct.


Voici ce que je te propose :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If
IsNumeric(Application.WorksheetFunction.Substitute(c, ".", "")) Then

Application.EnableEvents = False
If IsError(Application.Find(".", c)) Then
c = c & ":" ' Heure entière
Else
c Application.WorksheetFunction.Substitute(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Application.WorksheetFunction.Substitute est utilisé pour des raisons de
compatibilé avec Excel 97 et les versions Mac (Excel 98 à Excel 2004).

Sur PC, avec Excel 2000 ou + récent, tu peux rempacer Application.
WorksheetFunction.Substitute par Replace, ce qui donne :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, ".", "")) Then
Application.EnableEvents = False
If IsError(Application.Find(".", c)) Then
c = c & ":" ' Heure entière
Else
c = Replace(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Tu peux également modifier la procédure en faisant que c'est le point
ou la virgule qui est remplacée, selon le séparateur décimal défini sur
le poste, ce qui donne (version avec Replace)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sep as string, c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, Sep, "")) Then
Application.EnableEvents = False
If IsError(Application.Find(Sep, c)) Then
c = c & ":" ' Heure entière
Else
c = Replace(c, Sep, ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Malheureusement Application.WorksheetFunction.Substitute (pas
testé avec Replace) traite mal les dizaines de minutes : 9,2 ou 9,20
aboutissent à 9:02.

Une correction s'impose alors. Voici dans ces conditions le contenu
final du module (version avec Application.WorksheetFunction.
Substitute) :

Option Explicit
Dim Sep As String, Dizaine As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Sep = Application.International(xlDecimalSeparator)
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(c) Then
Application.EnableEvents = False
If IsError(Cells.Find(Sep, c)) Then
c = c & ":" ' Heure entière
MsgBox Sep
Else
CorrectionDizaine c
c Application.WorksheetFunction.Substitute(c, Sep, ":")
' Si on entre 9,2 ou 9,20, le résultat
est 9:02 au lieu de 9:20

' il faut donc rajouter 9 fois le nb
erroné de minutes pour passer

' de 2 à 20. Une unité représentant 1
jour, il faut diviser par

' 1440 (24 *60, nb de minutes par
jour), pour ajouter des

' minutes.
If Dizaine Then
c = c + (Minute(c) * 9) / 1440
End If
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub

Private Sub CorrectionDizaine(c As Range)
Dim Pos As Integer, Minutes As Long
Dizaine = False
Pos = Application.WorksheetFunction.Search(Sep, c)
Minutes = Mid(c, Pos + 1, 99)
If Minutes <= 6 And Mid(c, Pos + 1, 1) <> 0 Then
Dizaine = True
End If
End Sub


Dis-moi si cela te convient.



Cher Philippe,

voilà que je viens de réessayer de mettre ma macro dans le tableau. Cela
fonctionne
mais voilà, elle me change aussi la boite de dialogue "Correction
Automatique" (le point en double point).

En fait ce n'est pas ce que je voudrais, le truc que je voudrais c'est
que


cette macro ne soit active que dans la feuille de calcul sélectionnée et
non


pas dans tous les programmes offices.

devrais-je faire des réglages au niveau des acceptations de macros dans
outil. Là, je suis complétement perdu.

C'est la deuxième fois que j'enlève dans "Correction automatique" cette
commande.

Salutations

George

P.S.

AV, cela fait déjà qq jours que je ne le vois plus ici.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com





Avatar
Michel Gaboly
Re,

Le Maître est de trop, à moins qu'il soit ironique, ce que j'espère ;-))

1 - Tu devrais avoir l'"ultra simplicité" réclamée.

2 - Le code n'aura d'effet que sur les feuilles dont le module associé
contiendra le code indiqué, rien sur les éventuelles autres feuilles
du ou des classeur(s) concerné(s), ni sur rien d'autre.

3 - La fonction Replace n'est disponible en VBA qu'à partir d'Excel
2000, et uniquement pour les versions Windows. C'est pourquoi
avec Excel 97 ou une version Mac, il faut faire appel à la fonction
SUBSTITUE() disponible dans les feuilles de calcul, à laquelle on
accède ainsi :

Application.WorksheetFunction.Substitute()

qui peut également être utilisée dans les versions ultérieures. La prin-
cipale raison d'utiliser plutôt Replace est qu'on obtient ainsi un code +
concis, mais inutilisable avec Excel 97 et Excel Mac.

4 - Pour que le code fonctionne sur les 4 machines, dont 1 sous Excel
97, tu ne peux donc pas utiliser la fonction Replace, ce qui ne t'empêche
nullement d'avoir une version unique pour les 4 postes. Simplement,
cette version devra utiliser Application.WorksheetFunction.Substitute()


Copie ceci (qui tient compte de la plage C9:AG30), dans le module associé
à la feuille concernée. Si plusieurs feuilles sont concernées, le code doit
être copié dans chacune module associé à l'une des feuilles en question :


Option Explicit
Dim Sep As String, Dizaine As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Pos As Integer
Sep = Application.International(xlDecimalSeparator)
For Each c In Target
If Not Intersect(c, Range("C9:AG30")) Is Nothing Then
If IsNumeric(c) Then
Application.EnableEvents = False
On Error Resume Next
Pos = Application.WorksheetFunction.Search(Sep, c)
If Pos = 0 And c <> "" Then
c = c & ":" ' Heure entière
Else
CorrectionDizaine c
c = Application.WorksheetFunction. _
Substitute(c, Sep, ":")
' Si on entre 9,2 ou 9,20, le résultat est 9:02 au lieu de 9:20
' il faut donc rajouter 9 fois le nb erroné de minutes pour passer
' de 2 à 20. Une unité représentant 1 jour, il faut diviser par
' 1440 (24 *60, nb de minutes par jour), pour ajouter des minutes.
If Dizaine Then
c = c + (Minute(c) * 9) / 1440
End If
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub

Private Sub CorrectionDizaine(c As Range)
Dim Pos As Integer, Minutes As Long
Dizaine = False
Pos = Application.WorksheetFunction.Search(Sep, c)
Minutes = Mid(c, Pos + 1, 99)
If Minutes <= 10 And Mid(c, Pos + 1, 1) <> 0 Then
Dizaine = True
End If
End Sub

Je viens de tester ce code (légèrement modifié), sur Excel 98 (MacOS 9.1),
homologue d'Excel 97 sur PC et sur un poste sous Win 98 et Excel 2000.
Semble bien fonctionner dans les 2 cas.

Ensuite, tu pourras faire 3 "Enregistrer sous..." pour avoir les 3 exem-
plaires destinés aux autres postes.


Cher Maître Gaboly,

Un grand merci pour tes explications.

Je dois t'avouer que tu me parles un langage que je vais devoir prendre du
temps et passer au mois des mois à comprendre ce que tu m'as écrit. Non sans
mauvaise volonté, mais que je n'y ai absolument rien compris. (suis encore
et toujours nul en code et formules complexes).

Par contre, je vais essayer de m'y atteler dans les prochaines semaines,
mais je ne garantirais pas les résultats pour le début. Mon soucis, c'est
que maintenant suivant tes explicatifs, les lignes de codes que tu m'as
données, auront-elles les résultats que je souhaite ?

1. Ultra simplicité pour saisir, les chiffres horaires ([h]:mm) selon le
pavé numérique
(donc changement du double point à la place point en ayant le double point
qui s'inscrit) [est-ce que je me suis bien fait comprendre??]

2. Cette façon de faire, sera t'elle uniquement possible sur le "Classeur
Excel" et les feuilles qui s'y rapportent, sans être automatiquement
répercutées sur les autres documents?

3. Selon tes explications, mon soucis actuelle vient du fait que tu m'as
embrouillée sur la compatibilité entre Excel 97 , Excel 2000 et XP ainsi que
2003.
(ce fichier serait utilisable sur 4 pc différents: 1. sous Excel 97 avec Win
98 / 2. sous Excel XP avec Win Xp / 3. sous win2k avec Excel 2003 (le mien)
/ 4. sous win2k avec Excel 2000 ) snif !!!! gros soucis suite à ce que tu
m'as dit avant.

4. Les cellules auquel se rapportent ce code sont C9 : AG 30 (pour la
version définitive)

Je choisis quoi? Je pensais qu'il suffisait juste "Enregistrer sous.... "
version précédente, pour avoir mes quatre copies de fichiers que
j'installerais par la suite sur les autres PC.

Cher Michel, je réitère encore mes remerciements pour tes lumières.

Salutations

George

"Michel Gaboly" a écrit dans le message de
news:
Bonjour George,

Il y a plusieurs insuffisances de conception : seule une partie
des cas sont traités, et certains remplacement sont faits à
tort (remplacement des ":" par un point si on entre dans une
cellule de la plage A1:A10 du texte comportant un point).

Le principe est que si on sélectionne une cellule (et une seule)
de la plage A1:A10, on modifie les règles de correction automa-
tique pour remplacer le point, "." par deux points, ":".

Les défauts sont les suivants :

Si on sélectionne ensuite une plage de plusieurs cellules, la cor-
rection auto n'est pas annulée, à cause d'une sortie intempestive
de la procédure _SelectionChange() :

If zz.Count > 1 Then Exit Sub

Par ailleurs, si après avoir entré quelque chose dans une cellule
de la plage A1:A10, on sélectionne une autre feuille du même clas-
seur ou un autre classeur, la correction n'est pas non + annulée,
car l'événement SelectionChange ne survient pas. L'événement est
alors Deactivate de la feuille ou du classeur, qui ne sont gérés ni
l'un ni l'autre, celui du classeur devant l'être dans le module
ThisWorkbook.

D'autre part, si on entre une même valeur dans plusieurs cellules
à la fois de la plage A1:A10, un horaire initial comme 9.30 par
exemple, le remplacement n'est pas non + fait, à cause de la même
sortie de la procédure, cette fois dans _Change() :

If zz.Count > 1 Then Exit Sub

Enfin, _SelectionChange() touche à la correction automatique sans
se préoccuper des options antérieures : si sur un poste existe une
correction auto qui remplace le point par une virgule (par exemple),
cette correction sera détruite.


Le plus simple consiste probablement à abandonner :

- La correction automatique, pour ne pas remettre en cause l'exis-
tant, ni l'appliquer à une saisie de texte.

- L'appel à SelectionChange() qui implique de gérer aussi l'événe-
ment Deactivate de la feuille et celui du classeur pour avoir un
résultat correct.


Voici ce que je te propose :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If
IsNumeric(Application.WorksheetFunction.Substitute(c, ".", "")) Then

Application.EnableEvents = False
If IsError(Application.Find(".", c)) Then
c = c & ":" ' Heure entière
Else
c > Application.WorksheetFunction.Substitute(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Application.WorksheetFunction.Substitute est utilisé pour des raisons de
compatibilé avec Excel 97 et les versions Mac (Excel 98 à Excel 2004).

Sur PC, avec Excel 2000 ou + récent, tu peux rempacer Application.
WorksheetFunction.Substitute par Replace, ce qui donne :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, ".", "")) Then
Application.EnableEvents = False
If IsError(Application.Find(".", c)) Then
c = c & ":" ' Heure entière
Else
c = Replace(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Tu peux également modifier la procédure en faisant que c'est le point
ou la virgule qui est remplacée, selon le séparateur décimal défini sur
le poste, ce qui donne (version avec Replace)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sep as string, c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, Sep, "")) Then
Application.EnableEvents = False
If IsError(Application.Find(Sep, c)) Then
c = c & ":" ' Heure entière
Else
c = Replace(c, Sep, ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Malheureusement Application.WorksheetFunction.Substitute (pas
testé avec Replace) traite mal les dizaines de minutes : 9,2 ou 9,20
aboutissent à 9:02.

Une correction s'impose alors. Voici dans ces conditions le contenu
final du module (version avec Application.WorksheetFunction.
Substitute) :

Option Explicit
Dim Sep As String, Dizaine As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Sep = Application.International(xlDecimalSeparator)
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(c) Then
Application.EnableEvents = False
If IsError(Cells.Find(Sep, c)) Then
c = c & ":" ' Heure entière
MsgBox Sep
Else
CorrectionDizaine c
c > Application.WorksheetFunction.Substitute(c, Sep, ":")
' Si on entre 9,2 ou 9,20, le résultat
est 9:02 au lieu de 9:20

' il faut donc rajouter 9 fois le nb
erroné de minutes pour passer

' de 2 à 20. Une unité représentant 1
jour, il faut diviser par

' 1440 (24 *60, nb de minutes par
jour), pour ajouter des

' minutes.
If Dizaine Then
c = c + (Minute(c) * 9) / 1440
End If
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub

Private Sub CorrectionDizaine(c As Range)
Dim Pos As Integer, Minutes As Long
Dizaine = False
Pos = Application.WorksheetFunction.Search(Sep, c)
Minutes = Mid(c, Pos + 1, 99)
If Minutes <= 6 And Mid(c, Pos + 1, 1) <> 0 Then
Dizaine = True
End If
End Sub


Dis-moi si cela te convient.



Cher Philippe,

voilà que je viens de réessayer de mettre ma macro dans le tableau. Cela
fonctionne
mais voilà, elle me change aussi la boite de dialogue "Correction
Automatique" (le point en double point).

En fait ce n'est pas ce que je voudrais, le truc que je voudrais c'est
que


cette macro ne soit active que dans la feuille de calcul sélectionnée et
non


pas dans tous les programmes offices.

devrais-je faire des réglages au niveau des acceptations de macros dans
outil. Là, je suis complétement perdu.

C'est la deuxième fois que j'enlève dans "Correction automatique" cette
commande.

Salutations

George

P.S.

AV, cela fait déjà qq jours que je ne le vois plus ici.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com



Avatar
George
Hello Michel,

je te remercie de tes explications.

Donc, je réitère ce que je comprends selon les explications que tu me
fournis.

Dans le classeur, qui comprends 1 onglet, je copie le code que tu me
fournis.

Mais voilà une question de plus, l'onglet 1 porte par exemple le nom de
Martine,
je désire recopier la feuille tel-quelle en plusieurs autres feuille du
classeur que je nomme par la suite Brigitte, Nadia, Claudine, etc...

Dois-je copier le code à chaque fois à chaque onglet ou la copie est
uniforme à tous les noms?

Salutations

George



"Michel Gaboly" a écrit dans le message de
news:
Re,

Le Maître est de trop, à moins qu'il soit ironique, ce que j'espère ;-))

1 - Tu devrais avoir l'"ultra simplicité" réclamée.

2 - Le code n'aura d'effet que sur les feuilles dont le module associé
contiendra le code indiqué, rien sur les éventuelles autres feuilles
du ou des classeur(s) concerné(s), ni sur rien d'autre.

3 - La fonction Replace n'est disponible en VBA qu'à partir d'Excel
2000, et uniquement pour les versions Windows. C'est pourquoi
avec Excel 97 ou une version Mac, il faut faire appel à la fonction
SUBSTITUE() disponible dans les feuilles de calcul, à laquelle on
accède ainsi :

Application.WorksheetFunction.Substitute()

qui peut également être utilisée dans les versions ultérieures. La prin-
cipale raison d'utiliser plutôt Replace est qu'on obtient ainsi un code +
concis, mais inutilisable avec Excel 97 et Excel Mac.

4 - Pour que le code fonctionne sur les 4 machines, dont 1 sous Excel
97, tu ne peux donc pas utiliser la fonction Replace, ce qui ne t'empêche
nullement d'avoir une version unique pour les 4 postes. Simplement,
cette version devra utiliser Application.WorksheetFunction.Substitute()


Copie ceci (qui tient compte de la plage C9:AG30), dans le module associé
à la feuille concernée. Si plusieurs feuilles sont concernées, le code
doit

être copié dans chacune module associé à l'une des feuilles en question :


Option Explicit
Dim Sep As String, Dizaine As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range, Pos As Integer
Sep = Application.International(xlDecimalSeparator)
For Each c In Target
If Not Intersect(c, Range("C9:AG30")) Is Nothing Then
If IsNumeric(c) Then
Application.EnableEvents = False
On Error Resume Next
Pos = Application.WorksheetFunction.Search(Sep, c)
If Pos = 0 And c <> "" Then
c = c & ":" ' Heure entière
Else
CorrectionDizaine c
c = Application.WorksheetFunction. _
Substitute(c, Sep, ":")
' Si on entre 9,2 ou 9,20, le résultat est
9:02 au lieu de 9:20

' il faut donc rajouter 9 fois le nb erroné de
minutes pour passer

' de 2 à 20. Une unité représentant 1 jour, il
faut diviser par

' 1440 (24 *60, nb de minutes par jour), pour
ajouter des minutes.

If Dizaine Then
c = c + (Minute(c) * 9) / 1440
End If
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub

Private Sub CorrectionDizaine(c As Range)
Dim Pos As Integer, Minutes As Long
Dizaine = False
Pos = Application.WorksheetFunction.Search(Sep, c)
Minutes = Mid(c, Pos + 1, 99)
If Minutes <= 10 And Mid(c, Pos + 1, 1) <> 0 Then
Dizaine = True
End If
End Sub

Je viens de tester ce code (légèrement modifié), sur Excel 98 (MacOS 9.1),
homologue d'Excel 97 sur PC et sur un poste sous Win 98 et Excel 2000.
Semble bien fonctionner dans les 2 cas.

Ensuite, tu pourras faire 3 "Enregistrer sous..." pour avoir les 3 exem-
plaires destinés aux autres postes.


Cher Maître Gaboly,

Un grand merci pour tes explications.

Je dois t'avouer que tu me parles un langage que je vais devoir prendre
du


temps et passer au mois des mois à comprendre ce que tu m'as écrit. Non
sans


mauvaise volonté, mais que je n'y ai absolument rien compris. (suis
encore


et toujours nul en code et formules complexes).

Par contre, je vais essayer de m'y atteler dans les prochaines semaines,
mais je ne garantirais pas les résultats pour le début. Mon soucis,
c'est


que maintenant suivant tes explicatifs, les lignes de codes que tu m'as
données, auront-elles les résultats que je souhaite ?

1. Ultra simplicité pour saisir, les chiffres horaires ([h]:mm) selon le
pavé numérique
(donc changement du double point à la place point en ayant le double
point


qui s'inscrit) [est-ce que je me suis bien fait comprendre??]

2. Cette façon de faire, sera t'elle uniquement possible sur le
"Classeur


Excel" et les feuilles qui s'y rapportent, sans être automatiquement
répercutées sur les autres documents?

3. Selon tes explications, mon soucis actuelle vient du fait que tu m'as
embrouillée sur la compatibilité entre Excel 97 , Excel 2000 et XP ainsi
que


2003.
(ce fichier serait utilisable sur 4 pc différents: 1. sous Excel 97 avec
Win


98 / 2. sous Excel XP avec Win Xp / 3. sous win2k avec Excel 2003 (le
mien)


/ 4. sous win2k avec Excel 2000 ) snif !!!! gros soucis suite à ce que
tu


m'as dit avant.

4. Les cellules auquel se rapportent ce code sont C9 : AG 30 (pour la
version définitive)

Je choisis quoi? Je pensais qu'il suffisait juste "Enregistrer sous....
"


version précédente, pour avoir mes quatre copies de fichiers que
j'installerais par la suite sur les autres PC.

Cher Michel, je réitère encore mes remerciements pour tes lumières.

Salutations

George

"Michel Gaboly" a écrit dans le message de
news:
Bonjour George,

Il y a plusieurs insuffisances de conception : seule une partie
des cas sont traités, et certains remplacement sont faits à
tort (remplacement des ":" par un point si on entre dans une
cellule de la plage A1:A10 du texte comportant un point).

Le principe est que si on sélectionne une cellule (et une seule)
de la plage A1:A10, on modifie les règles de correction automa-
tique pour remplacer le point, "." par deux points, ":".

Les défauts sont les suivants :

Si on sélectionne ensuite une plage de plusieurs cellules, la cor-
rection auto n'est pas annulée, à cause d'une sortie intempestive
de la procédure _SelectionChange() :

If zz.Count > 1 Then Exit Sub

Par ailleurs, si après avoir entré quelque chose dans une cellule
de la plage A1:A10, on sélectionne une autre feuille du même clas-
seur ou un autre classeur, la correction n'est pas non + annulée,
car l'événement SelectionChange ne survient pas. L'événement est
alors Deactivate de la feuille ou du classeur, qui ne sont gérés ni
l'un ni l'autre, celui du classeur devant l'être dans le module
ThisWorkbook.

D'autre part, si on entre une même valeur dans plusieurs cellules
à la fois de la plage A1:A10, un horaire initial comme 9.30 par
exemple, le remplacement n'est pas non + fait, à cause de la même
sortie de la procédure, cette fois dans _Change() :

If zz.Count > 1 Then Exit Sub

Enfin, _SelectionChange() touche à la correction automatique sans
se préoccuper des options antérieures : si sur un poste existe une
correction auto qui remplace le point par une virgule (par exemple),
cette correction sera détruite.


Le plus simple consiste probablement à abandonner :

- La correction automatique, pour ne pas remettre en cause l'exis-
tant, ni l'appliquer à une saisie de texte.

- L'appel à SelectionChange() qui implique de gérer aussi l'événe-
ment Deactivate de la feuille et celui du classeur pour avoir un
résultat correct.


Voici ce que je te propose :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If
IsNumeric(Application.WorksheetFunction.Substitute(c, ".", "")) Then

Application.EnableEvents = False
If IsError(Application.Find(".", c))
Then



c = c & ":" ' Heure entière
Else
c > > Application.WorksheetFunction.Substitute(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Application.WorksheetFunction.Substitute est utilisé pour des raisons
de



compatibilé avec Excel 97 et les versions Mac (Excel 98 à Excel 2004).

Sur PC, avec Excel 2000 ou + récent, tu peux rempacer Application.
WorksheetFunction.Substitute par Replace, ce qui donne :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, ".", "")) Then
Application.EnableEvents = False
If IsError(Application.Find(".", c))
Then



c = c & ":" ' Heure entière
Else
c = Replace(c, ".", ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Tu peux également modifier la procédure en faisant que c'est le point
ou la virgule qui est remplacée, selon le séparateur décimal défini
sur



le poste, ce qui donne (version avec Replace)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sep as string, c As Range
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(Replace(c, Sep, "")) Then
Application.EnableEvents = False
If IsError(Application.Find(Sep, c))
Then



c = c & ":" ' Heure entière
Else
c = Replace(c, Sep, ":")
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub


Malheureusement Application.WorksheetFunction.Substitute (pas
testé avec Replace) traite mal les dizaines de minutes : 9,2 ou 9,20
aboutissent à 9:02.

Une correction s'impose alors. Voici dans ces conditions le contenu
final du module (version avec Application.WorksheetFunction.
Substitute) :

Option Explicit
Dim Sep As String, Dizaine As Boolean

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Sep = Application.International(xlDecimalSeparator)
For Each c In Target
If Not Intersect(c, Range("A1:A10")) Is Nothing Then
If IsNumeric(c) Then
Application.EnableEvents = False
If IsError(Cells.Find(Sep, c)) Then
c = c & ":" ' Heure entière
MsgBox Sep
Else
CorrectionDizaine c
c > > Application.WorksheetFunction.Substitute(c, Sep, ":")
' Si on entre 9,2 ou 9,20, le
résultat



est 9:02 au lieu de 9:20
' il faut donc rajouter 9 fois le
nb



erroné de minutes pour passer
' de 2 à 20. Une unité
représentant 1



jour, il faut diviser par
' 1440 (24 *60, nb de minutes par
jour), pour ajouter des

' minutes.
If Dizaine Then
c = c + (Minute(c) * 9) /
1440



End If
End If
Application.EnableEvents = True
End If
End If
Next c
End Sub

Private Sub CorrectionDizaine(c As Range)
Dim Pos As Integer, Minutes As Long
Dizaine = False
Pos = Application.WorksheetFunction.Search(Sep, c)
Minutes = Mid(c, Pos + 1, 99)
If Minutes <= 6 And Mid(c, Pos + 1, 1) <> 0 Then
Dizaine = True
End If
End Sub


Dis-moi si cela te convient.



Cher Philippe,

voilà que je viens de réessayer de mettre ma macro dans le tableau.
Cela




fonctionne
mais voilà, elle me change aussi la boite de dialogue "Correction
Automatique" (le point en double point).

En fait ce n'est pas ce que je voudrais, le truc que je voudrais
c'est




que
cette macro ne soit active que dans la feuille de calcul
sélectionnée et




non
pas dans tous les programmes offices.

devrais-je faire des réglages au niveau des acceptations de macros
dans




outil. Là, je suis complétement perdu.

C'est la deuxième fois que j'enlève dans "Correction automatique"
cette




commande.

Salutations

George

P.S.

AV, cela fait déjà qq jours que je ne le vois plus ici.


--
Cordialement,

Michel Gaboly
http://www.gaboly.com





--
Cordialement,

Michel Gaboly
http://www.gaboly.com







1 2 3