-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:
be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
be1101c3ecb5$52779430$a601280a@phx.gbl...
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo
-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,
4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
b65201c3ec7c$3e787f50$a001280a@phx.gbl...
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo
-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
ad2d01c3ec07$552f3830$a401280a@phx.gbl...
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo
-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message de news: a89501c3ebfd$96ddd700
$a001280a@phx.gbl...
Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345
et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT
(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:
be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:
be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
be1101c3ecb5$52779430$a601280a@phx.gbl...
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo
-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,
4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
b65201c3ec7c$3e787f50$a001280a@phx.gbl...
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo
-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
ad2d01c3ec07$552f3830$a401280a@phx.gbl...
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo
-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message de news: a89501c3ebfd$96ddd700
$a001280a@phx.gbl...
Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345
et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT
(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:
be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
Re..
Oui, là tu pourras faire un contrôle de format sur la cellule précédente
et
ne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" a écrit dans le message
news:
bec601c3ecc0$67a0e720$
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel enregistrement
en fin de tableau qui doit être formaté lors de la saisie;
donc ne pourrais-t-on pas imaginer formater uniquement la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!Si une cellule contient un valeur, quelle soit déjà
formaté ou non, seramodifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'oul'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encorenon formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffreset lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
Re..
Oui, là tu pourras faire un contrôle de format sur la cellule précédente
et
ne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit dans le message
news:
bec601c3ecc0$67a0e720$a601280a@phx.gbl...
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel enregistrement
en fin de tableau qui doit être formaté lors de la saisie;
donc ne pourrais-t-on pas imaginer formater uniquement la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
be1101c3ecb5$52779430$a601280a@phx.gbl...
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo
-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,
4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
b65201c3ec7c$3e787f50$a001280a@phx.gbl...
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo
-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
ad2d01c3ec07$552f3830$a401280a@phx.gbl...
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo
-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message de news: a89501c3ebfd$96ddd700
$a001280a@phx.gbl...
Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345
et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT
(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
Re..
Oui, là tu pourras faire un contrôle de format sur la cellule précédente
et
ne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" a écrit dans le message
news:
bec601c3ecc0$67a0e720$
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel enregistrement
en fin de tableau qui doit être formaté lors de la saisie;
donc ne pourrais-t-on pas imaginer formater uniquement la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle que
tu as enlevé!Si une cellule contient un valeur, quelle soit déjà
formaté ou non, seramodifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'oul'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encorenon formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3, 4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add & "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la colonne D
qui devrait se formater dès que l'on saisi les chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffreset lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
-----Message d'origine-----
Salut Freedo
Teste ce code et regarde s'il te convient
Dans le module de la feuille(clique droit sur l'onglet de
la
feuille/visualisé le code et copier ceci)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'*****Si la ligne ne demarre pas en "d1", change les
2 "d1" ci dessous*****
For Each c In Range("d1", Range("d1").End(xlDown))
If Target.Column = 4 And c <> "" And Len(c) <> 19 Then
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c, 3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
End If
Next
End Sub
Salutations
JJ
"Jacky" a écrit dans le
message news:
#Re..
Oui, là tu pourras faire un contrôle de format sur la
cellule précédente
etne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" a écrit
dans le message
news:bec601c3ecc0$67a0e720$
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel
enregistrement
en fin de tableau qui doit être formaté lors de la
saisie;
donc ne pourrais-t-on pas imaginer formater uniquement
la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle
que
tu as enlevé!Si une cellule contient un valeur, quelle soit déjà
formaté ou non, seramodifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'oul'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encorenon formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci
pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui
avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la
colonne D
qui devrait se formater dès que l'on saisi les
chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu
insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a
écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela
dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-
"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a
écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffreset lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)
&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
.
-----Message d'origine-----
Salut Freedo
Teste ce code et regarde s'il te convient
Dans le module de la feuille(clique droit sur l'onglet de
la
feuille/visualisé le code et copier ceci)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'*****Si la ligne ne demarre pas en "d1", change les
2 "d1" ci dessous*****
For Each c In Range("d1", Range("d1").End(xlDown))
If Target.Column = 4 And c <> "" And Len(c) <> 19 Then
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c, 3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
End If
Next
End Sub
Salutations
JJ
"Jacky" <Jackyenlevez.jaeg@wanadoo.fr> a écrit dans le
message news:
#WmbaHM7DHA.3648@TK2MSFTNGP11.phx.gbl...
Re..
Oui, là tu pourras faire un contrôle de format sur la
cellule précédente
et
ne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message
news:
bec601c3ecc0$67a0e720$a601280a@phx.gbl...
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel
enregistrement
en fin de tableau qui doit être formaté lors de la
saisie;
donc ne pourrais-t-on pas imaginer formater uniquement
la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle
que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
be1101c3ecb5$52779430$a601280a@phx.gbl...
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci
pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui
avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo
-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7,
4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
b65201c3ec7c$3e787f50$a001280a@phx.gbl...
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la
colonne D
qui devrait se formater dès que l'on saisi les
chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo
-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu
insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c,
3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" <anonymous@discussions.microsoft.com> a
écrit
dans le message news:
ad2d01c3ec07$552f3830$a401280a@phx.gbl...
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela
dans
une macro automatique?
merci de suivre,
Freedo
-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-
"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" <anonymous@discussions.microsoft.com> a
écrit
dans le message de news: a89501c3ebfd$96ddd700
$a001280a@phx.gbl...
Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345
et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)
&"-
"&STXT
(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
.
-----Message d'origine-----
Salut Freedo
Teste ce code et regarde s'il te convient
Dans le module de la feuille(clique droit sur l'onglet de
la
feuille/visualisé le code et copier ceci)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'*****Si la ligne ne demarre pas en "d1", change les
2 "d1" ci dessous*****
For Each c In Range("d1", Range("d1").End(xlDown))
If Target.Column = 4 And c <> "" And Len(c) <> 19 Then
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c, 3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
End If
Next
End Sub
Salutations
JJ
"Jacky" a écrit dans le
message news:
#Re..
Oui, là tu pourras faire un contrôle de format sur la
cellule précédente
etne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" a écrit
dans le message
news:bec601c3ecc0$67a0e720$
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel
enregistrement
en fin de tableau qui doit être formaté lors de la
saisie;
donc ne pourrais-t-on pas imaginer formater uniquement
la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle
que
tu as enlevé!Si une cellule contient un valeur, quelle soit déjà
formaté ou non, seramodifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'oul'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encorenon formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci
pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui
avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la
colonne D
qui devrait se formater dès que l'on saisi les
chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu
insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a
écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela
dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-
"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a
écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffreset lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)
&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
.
Pour que la macro fonctionne je dois enlever le end if, et
cela fonctionne.
N'y aurait-il pas un test à faire dans la macro pour
palier à ce problème où cela me laisserait quand-même la
-----Message d'origine-----
Salut Freedo
Teste ce code et regarde s'il te convient
Dans le module de la feuille(clique droit sur l'onglet de
la
feuille/visualisé le code et copier ceci)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'*****Si la ligne ne demarre pas en "d1", change les
2 "d1" ci dessous*****
For Each c In Range("d1", Range("d1").End(xlDown))
If Target.Column = 4 And c <> "" And Len(c) <> 19 Then
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c, 3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
End If
Next
End Sub
Salutations
JJ
"Jacky" a écrit dans le
message news:
#Re..
Oui, là tu pourras faire un contrôle de format sur la
cellule précédente
etne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" a écrit
dans le message
news:bec601c3ecc0$67a0e720$
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel
enregistrement
en fin de tableau qui doit être formaté lors de la
saisie;
donc ne pourrais-t-on pas imaginer formater uniquement
la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle
que
tu as enlevé!Si une cellule contient un valeur, quelle soit déjà
formaté ou non, seramodifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'oul'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encorenon formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci
pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui
avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la
colonne D
qui devrait se formater dès que l'on saisi les
chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu
insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a
écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela
dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-
"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a
écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffreset lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)
&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
.
Pour que la macro fonctionne je dois enlever le end if, et
cela fonctionne.
N'y aurait-il pas un test à faire dans la macro pour
palier à ce problème où cela me laisserait quand-même la
-----Message d'origine-----
Salut Freedo
Teste ce code et regarde s'il te convient
Dans le module de la feuille(clique droit sur l'onglet de
la
feuille/visualisé le code et copier ceci)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'*****Si la ligne ne demarre pas en "d1", change les
2 "d1" ci dessous*****
For Each c In Range("d1", Range("d1").End(xlDown))
If Target.Column = 4 And c <> "" And Len(c) <> 19 Then
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c, 3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
End If
Next
End Sub
Salutations
JJ
"Jacky" <Jackyenlevez.jaeg@wanadoo.fr> a écrit dans le
message news:
#WmbaHM7DHA.3648@TK2MSFTNGP11.phx.gbl...
Re..
Oui, là tu pourras faire un contrôle de format sur la
cellule précédente
et
ne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message
news:
bec601c3ecc0$67a0e720$a601280a@phx.gbl...
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel
enregistrement
en fin de tableau qui doit être formaté lors de la
saisie;
donc ne pourrais-t-on pas imaginer formater uniquement
la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo
-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle
que
tu as enlevé!
Si une cellule contient un valeur, quelle soit déjà
formaté ou non, sera
modifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'ou
l'intérêt du contrôle.
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encore
non formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
be1101c3ecb5$52779430$a601280a@phx.gbl...
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci
pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui
avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo
-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7,
4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,
vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" <anonymous@discussions.microsoft.com> a écrit
dans le message news:
b65201c3ec7c$3e787f50$a001280a@phx.gbl...
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la
colonne D
qui devrait se formater dès que l'on saisi les
chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo
-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu
insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c,
3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" <anonymous@discussions.microsoft.com> a
écrit
dans le message news:
ad2d01c3ec07$552f3830$a401280a@phx.gbl...
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela
dans
une macro automatique?
merci de suivre,
Freedo
-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-
"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" <anonymous@discussions.microsoft.com> a
écrit
dans le message de news: a89501c3ebfd$96ddd700
$a001280a@phx.gbl...
Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffres
et lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345
et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)
&"-
"&STXT
(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
.
Pour que la macro fonctionne je dois enlever le end if, et
cela fonctionne.
N'y aurait-il pas un test à faire dans la macro pour
palier à ce problème où cela me laisserait quand-même la
-----Message d'origine-----
Salut Freedo
Teste ce code et regarde s'il te convient
Dans le module de la feuille(clique droit sur l'onglet de
la
feuille/visualisé le code et copier ceci)
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'*****Si la ligne ne demarre pas en "d1", change les
2 "d1" ci dessous*****
For Each c In Range("d1", Range("d1").End(xlDown))
If Target.Column = 4 And c <> "" And Len(c) <> 19 Then
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c, 3, 4) & "-" &
Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
End If
Next
End Sub
Salutations
JJ
"Jacky" a écrit dans le
message news:
#Re..
Oui, là tu pourras faire un contrôle de format sur la
cellule précédente
etne plus formater si elles sont identiques
Mais , demain ou la semaine prochaine
JJ
"Freedo" a écrit
dans le message
news:bec601c3ecc0$67a0e720$
Re...Jacky,
Oui je me doutais bien que c'était comme cela mais je ne
pouvais pas laisser le classeur comme cela à mes
collaborateurs.
ceci dit, en fait c'est toujours le nouvel
enregistrement
en fin de tableau qui doit être formaté lors de la
saisie;
donc ne pourrais-t-on pas imaginer formater uniquement
la
cellule (D..) au momment ou j'ajoute l'enregistrement.
Je pourrais dans un premier temps utiliser la première
macro pour formater tout le tableau existant et puis la
désactiver pour utiliser finalement la nouvelle macro (à
créer)sur la dernière cellule.
A voir !
merci pour le suivi et de continuer,
Freedo-----Message d'origine-----
Re..
Mon code nécessite une demande de confirmation, celle
que
tu as enlevé!Si une cellule contient un valeur, quelle soit déjà
formaté ou non, seramodifiée, puisque le contrôle se fait par:
si colonne "D" et "Cellule non vide"
Une cellule dans la colonne "D" non vide peut être déjà
formaté, d'oul'intérêt du contrôle.rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
Sinon je ne vois pas comment faire un contrôle
automatique sur format encorenon formaté.
Mais un "grand" prendra peut-être le relais.
JJ
"Freedo" a écrit
dans le message news:be1101c3ecb5$52779430$
Bonjour Jacky,
merci pour la réponse, et jai du modifier comme ceci
pour
voir le format désiré :
'Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)
Private Sub Worksheet_Change(ByVal Target As Range)
Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then _
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7, 4) _
& "-" & Mid(c, 11, 5)
ActiveCell.Value = c
End Sub
'
Seulement Voilà, si je reviens sur une cellule qui
avait
déjà été formaté, cela reformate de nouveau et là! ce
n'est plus bon.
Une autre idée ?
Merci de suivre,
Freedo-----Message d'origine-----
ou un autre exemple
Private Sub Worksheet_SelectionChange(ByVal Target As
Excel.Range)Add = ActiveCell.Address
ad = Mid(Add, 2, 1)
c = ActiveCell.Value
If ad = "D" And c <> "" Then
c = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid(c, 3,
4)
& "-" & Mid(c, 7,4) & "-" & Mid(c, 11, 5)
rep = MsgBox("Voulez-vous modifier la cellule " & Add
& "
en: " & c,vbYesNo, "Confirmation")
If rep = 6 Then ActiveCell.Value = c
End If
End Sub
Salutations
JJ
"freedo" a écrit
dans le message news:b65201c3ec7c$3e787f50$
Bonjour Jacky,
bien que ta solution fonctionne, cela implique que je
doive actionne la macro moi-meme et de plus il va
reformater toute la plage à chaque fois.
Ce qui à déjà été formaté ne doit plus l'être.
donc c'est uniquement la cellule active dans la
colonne D
qui devrait se formater dès que l'on saisi les
chiffres
dans la cellule.
Peux-tu voir un peu plus ? merci
Freedo-----Message d'origine-----
Salut freedo
Nomme tes cellules "plage" (menu
insertion/nom/definir)
et lance ce code
Sub teste()
For Each c In [plage]
c.Value = Left(c, 1) & "-" & Mid(c, 2, 1) & "-" & Mid
(c,
3, 4) & "-" &Mid(c, 7, 4) & "-" & Mid(c, 11, 5)
Next
End Sub
Salutations
JJ
"Freedo" a
écrit
dans le message news:ad2d01c3ec07$552f3830$
Bonjour Pierre CFI,
Merci pour ta solution, mais comment présenter cela
dans
une macro automatique?
merci de suivre,
Freedo-----Message d'origine-----
bonjour
Gauche c'est Left, STXT c'est Mid
au lieu des ; tu mets des ,
LEFT(D66,1)&"-"&MID(D66,2,1)&"-"&MID(D66,3,4)&"-
"&MID
(D66,7,4)&"-"&MID(D66,11,5)
--
Pierre CFI
MVP Microsoft Access
Mail : http://cerbermail.com/?z0SN8cN53B
Site pour bien commencer
http://users.skynet.be/mpfa/
Site perso
http://access.cfi.free.fr
"Freedo" a
écrit
dans le message de news: a89501c3ebfd$96ddd700
$Bonjour à Toutes et à Tous,
Lorsque je'entre dans la colonne D une série de
chiffreset lettres, j'aimerais que le format se fasse
automatiquement.
exemple : je saisi dans la cellule D66 ceci
4B0001123412345et le format devrait donner 4-B-0001-1234-12345
bien que la formule cidessous fonctionne
Comment transformer cette formule en VBA afin
d'automatiser le format d'affichage de la saisie
=GAUCHE(D66;1)&"-"&STXT(D66;2;1)&"-"&STXT(D66;3;4)
&"-
"&STXT(D66;7;4)&"-"&STXT(D66;11;5)
Merci de suivre,
Freedo
.
.
.
.
.