Je me permets d'insister en demandant un complement de reponse.
Dans le fil "Ajouter un caractere invisible (VBA)" un peu plus bas, AV
m'a transmis une macro qui fonctionne impecablement bien pour rajouter
automatiquement un 0 devant les nombres <100 lors d'une saisie, ce qui
correspondait a la premiere partie de ma demande. Merci encore AV,
merci beaucoup.
Pour la seconde partie j'aimerais que ce 0 ne soit pas visible. Je
saisis 56A, la macro transforme en 056A mais l'affichage reste a 56A.
Je ne sais pas si cela est possible (peut-etre en ecrivant le 0 en
blanc sur blanc...?). J'aurais besoin de cela pour ne pas creer de
confusion dans l'esprit des personnes appelees a saisir ces donnees
(056A existant par ailleurs).
Si cette manip' est impossible, merci de me le dire, j'arreterai les
recherches!
Sinon, merci a tous pour vos idees. Moi je ne sais pas faire.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Count = 1 Then Application.EnableEvents = False If Len(Target) < 4 Then Target = "'" & String(4 - Len(Target), "0") & Target End If Target.Font.ColorIndex = 0 i = 1 Do While i < Len(Target) And Mid(Target, i, 1) = "0" Target.Characters(Start:=i, Length:=1).Font.ColorIndex = Target.Interior.ColorIndex i = i + 1 Loop Application.EnableEvents = True End If End Sub
JB
Bonsoir tout le monde,
Je me permets d'insister en demandant un complement de reponse.
Dans le fil "Ajouter un caractere invisible (VBA)" un peu plus bas, AV m'a transmis une macro qui fonctionne impecablement bien pour rajouter automatiquement un 0 devant les nombres <100 lors d'une saisie, ce qui correspondait a la premiere partie de ma demande. Merci encore AV, merci beaucoup.
Pour la seconde partie j'aimerais que ce 0 ne soit pas visible. Je saisis 56A, la macro transforme en 056A mais l'affichage reste a 56A. Je ne sais pas si cela est possible (peut-etre en ecrivant le 0 en blanc sur blanc...?). J'aurais besoin de cela pour ne pas creer de confusion dans l'esprit des personnes appelees a saisir ces donnees (056A existant par ailleurs).
Si cette manip' est impossible, merci de me le dire, j'arreterai les recherches!
Sinon, merci a tous pour vos idees. Moi je ne sais pas faire.
Pierre.M
Ajoute des 0 invisibles:
http://cjoint.com/?irn1baU4Fa
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Application.EnableEvents = False
If Len(Target) < 4 Then
Target = "'" & String(4 - Len(Target), "0") & Target
End If
Target.Font.ColorIndex = 0
i = 1
Do While i < Len(Target) And Mid(Target, i, 1) = "0"
Target.Characters(Start:=i, Length:=1).Font.ColorIndex =
Target.Interior.ColorIndex
i = i + 1
Loop
Application.EnableEvents = True
End If
End Sub
JB
Bonsoir tout le monde,
Je me permets d'insister en demandant un complement de reponse.
Dans le fil "Ajouter un caractere invisible (VBA)" un peu plus bas, AV
m'a transmis une macro qui fonctionne impecablement bien pour rajouter
automatiquement un 0 devant les nombres <100 lors d'une saisie, ce qui
correspondait a la premiere partie de ma demande. Merci encore AV,
merci beaucoup.
Pour la seconde partie j'aimerais que ce 0 ne soit pas visible. Je
saisis 56A, la macro transforme en 056A mais l'affichage reste a 56A.
Je ne sais pas si cela est possible (peut-etre en ecrivant le 0 en
blanc sur blanc...?). J'aurais besoin de cela pour ne pas creer de
confusion dans l'esprit des personnes appelees a saisir ces donnees
(056A existant par ailleurs).
Si cette manip' est impossible, merci de me le dire, j'arreterai les
recherches!
Sinon, merci a tous pour vos idees. Moi je ne sais pas faire.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 1 And Target.Count = 1 Then Application.EnableEvents = False If Len(Target) < 4 Then Target = "'" & String(4 - Len(Target), "0") & Target End If Target.Font.ColorIndex = 0 i = 1 Do While i < Len(Target) And Mid(Target, i, 1) = "0" Target.Characters(Start:=i, Length:=1).Font.ColorIndex = Target.Interior.ColorIndex i = i + 1 Loop Application.EnableEvents = True End If End Sub
JB
Bonsoir tout le monde,
Je me permets d'insister en demandant un complement de reponse.
Dans le fil "Ajouter un caractere invisible (VBA)" un peu plus bas, AV m'a transmis une macro qui fonctionne impecablement bien pour rajouter automatiquement un 0 devant les nombres <100 lors d'une saisie, ce qui correspondait a la premiere partie de ma demande. Merci encore AV, merci beaucoup.
Pour la seconde partie j'aimerais que ce 0 ne soit pas visible. Je saisis 56A, la macro transforme en 056A mais l'affichage reste a 56A. Je ne sais pas si cela est possible (peut-etre en ecrivant le 0 en blanc sur blanc...?). J'aurais besoin de cela pour ne pas creer de confusion dans l'esprit des personnes appelees a saisir ces donnees (056A existant par ailleurs).
Si cette manip' est impossible, merci de me le dire, j'arreterai les recherches!
Sinon, merci a tous pour vos idees. Moi je ne sais pas faire.
Pierre.M
JB
http://cjoint.com/?iruZJvWrJw
Sub triColInter() [b:b].Insert For Each c In Range([A2], [a65000].End(xlUp)) x = c.Value If IsNumeric(x) Then x = x & "@" c.Offset(0, 1).Value = "'" & String(4 - Len(x), "0") & x Next c Range("A2").CurrentRegion.Select Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select Selection.Sort Key1:=[B2] [b:b].Delete End Sub
Sur un autre onglet,il y a les 0 cachés ajoutés à la saisie (blanc sur blanc)
JB
Merci JB, ton idee me semble effectivement une piste a suivre. Probleme si je saisis 100 dans la liste je me retrouve avec mon probleme de base dans un tri: il sera en debut de liste et pas apres 99B par exemple... D'ou cette idee de rajouter un 0! Peut-etre une solution en combinant ta macro avec celle d'AV. Je vais essayer ca.
Merci en tout cas pour ton truc qui peut servir par ailleurs et que je conserve.
Bonne journee.
Pierre.M
On 2006-08-16 22:04:51 +0200, "JB" said:
Bonsoir,
S'il s'agit d'effectuer un tri,il est peut être + simple de créer u ne colonne temporaire:
[b:b].Insert For Each c In Range([A2], [a65000].End(xlUp)) c.Offset(0, 1).Value = String(4 - Len(c), "0") & c Next c Range("A2").CurrentRegion.Select Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select Selection.Sort key1:=[B2] [b:b].Delete
http://cjoint.com/?iqwcIfbQD3
Cordialement JB
Bonsoir tout le monde,
Je me permets d'insister en demandant un complement de reponse.
Dans le fil "Ajouter un caractere invisible (VBA)" un peu plus bas, AV m'a transmis une macro qui fonctionne impecablement bien pour rajouter automatiquement un 0 devant les nombres <100 lors d'une saisie, ce qui correspondait a la premiere partie de ma demande. Merci encore AV, merci beaucoup.
Pour la seconde partie j'aimerais que ce 0 ne soit pas visible. Je saisis 56A, la macro transforme en 056A mais l'affichage reste a 56A. Je ne sais pas si cela est possible (peut-etre en ecrivant le 0 en blanc sur blanc...?). J'aurais besoin de cela pour ne pas creer de confusion dans l'esprit des personnes appelees a saisir ces donnees (056A existant par ailleurs).
Si cette manip' est impossible, merci de me le dire, j'arreterai les recherches!
Sinon, merci a tous pour vos idees. Moi je ne sais pas faire.
Pierre.M
http://cjoint.com/?iruZJvWrJw
Sub triColInter()
[b:b].Insert
For Each c In Range([A2], [a65000].End(xlUp))
x = c.Value
If IsNumeric(x) Then x = x & "@"
c.Offset(0, 1).Value = "'" & String(4 - Len(x), "0") & x
Next c
Range("A2").CurrentRegion.Select
Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
Selection.Sort Key1:=[B2]
[b:b].Delete
End Sub
Sur un autre onglet,il y a les 0 cachés ajoutés à la saisie (blanc
sur blanc)
JB
Merci JB, ton idee me semble effectivement une piste a suivre.
Probleme si je saisis 100 dans la liste je me retrouve avec mon
probleme de base dans un tri: il sera en debut de liste et pas apres
99B par exemple... D'ou cette idee de rajouter un 0!
Peut-etre une solution en combinant ta macro avec celle d'AV. Je vais
essayer ca.
Merci en tout cas pour ton truc qui peut servir par ailleurs et que je
conserve.
Bonne journee.
Pierre.M
On 2006-08-16 22:04:51 +0200, "JB" <boisgontier@hotmail.com> said:
Bonsoir,
S'il s'agit d'effectuer un tri,il est peut être + simple de créer u ne
colonne temporaire:
[b:b].Insert
For Each c In Range([A2], [a65000].End(xlUp))
c.Offset(0, 1).Value = String(4 - Len(c), "0") & c
Next c
Range("A2").CurrentRegion.Select
Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select
Selection.Sort key1:=[B2]
[b:b].Delete
http://cjoint.com/?iqwcIfbQD3
Cordialement JB
Bonsoir tout le monde,
Je me permets d'insister en demandant un complement de reponse.
Dans le fil "Ajouter un caractere invisible (VBA)" un peu plus bas, AV
m'a transmis une macro qui fonctionne impecablement bien pour rajouter
automatiquement un 0 devant les nombres <100 lors d'une saisie, ce qui
correspondait a la premiere partie de ma demande. Merci encore AV,
merci beaucoup.
Pour la seconde partie j'aimerais que ce 0 ne soit pas visible. Je
saisis 56A, la macro transforme en 056A mais l'affichage reste a 56A.
Je ne sais pas si cela est possible (peut-etre en ecrivant le 0 en
blanc sur blanc...?). J'aurais besoin de cela pour ne pas creer de
confusion dans l'esprit des personnes appelees a saisir ces donnees
(056A existant par ailleurs).
Si cette manip' est impossible, merci de me le dire, j'arreterai les
recherches!
Sinon, merci a tous pour vos idees. Moi je ne sais pas faire.
Sub triColInter() [b:b].Insert For Each c In Range([A2], [a65000].End(xlUp)) x = c.Value If IsNumeric(x) Then x = x & "@" c.Offset(0, 1).Value = "'" & String(4 - Len(x), "0") & x Next c Range("A2").CurrentRegion.Select Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select Selection.Sort Key1:=[B2] [b:b].Delete End Sub
Sur un autre onglet,il y a les 0 cachés ajoutés à la saisie (blanc sur blanc)
JB
Merci JB, ton idee me semble effectivement une piste a suivre. Probleme si je saisis 100 dans la liste je me retrouve avec mon probleme de base dans un tri: il sera en debut de liste et pas apres 99B par exemple... D'ou cette idee de rajouter un 0! Peut-etre une solution en combinant ta macro avec celle d'AV. Je vais essayer ca.
Merci en tout cas pour ton truc qui peut servir par ailleurs et que je conserve.
Bonne journee.
Pierre.M
On 2006-08-16 22:04:51 +0200, "JB" said:
Bonsoir,
S'il s'agit d'effectuer un tri,il est peut être + simple de créer u ne colonne temporaire:
[b:b].Insert For Each c In Range([A2], [a65000].End(xlUp)) c.Offset(0, 1).Value = String(4 - Len(c), "0") & c Next c Range("A2").CurrentRegion.Select Selection.Offset(1).Resize(Selection.Rows.Count - 1).Select Selection.Sort key1:=[B2] [b:b].Delete
http://cjoint.com/?iqwcIfbQD3
Cordialement JB
Bonsoir tout le monde,
Je me permets d'insister en demandant un complement de reponse.
Dans le fil "Ajouter un caractere invisible (VBA)" un peu plus bas, AV m'a transmis une macro qui fonctionne impecablement bien pour rajouter automatiquement un 0 devant les nombres <100 lors d'une saisie, ce qui correspondait a la premiere partie de ma demande. Merci encore AV, merci beaucoup.
Pour la seconde partie j'aimerais que ce 0 ne soit pas visible. Je saisis 56A, la macro transforme en 056A mais l'affichage reste a 56A. Je ne sais pas si cela est possible (peut-etre en ecrivant le 0 en blanc sur blanc...?). J'aurais besoin de cela pour ne pas creer de confusion dans l'esprit des personnes appelees a saisir ces donnees (056A existant par ailleurs).
Si cette manip' est impossible, merci de me le dire, j'arreterai les recherches!
Sinon, merci a tous pour vos idees. Moi je ne sais pas faire.
Pierre.M
Pierre.M
Merci à tous de vous etre investis pour mon probleme. J'ai la, matiere a reflexions pour avancer mon projet...
Un merci special a Modeste pour avoir pris le temps de decortiquer sa macro pour que je puisse comprendre (super!) et a JB pour m'avoir donne (encore une fois!) la solution que je cherchais depuis des mois. Son truc est bien moins tiré par les cheveux que la direction dans laquelle j'essayais d'aller...
Merci encore et bon WE a tous.
Pierre.M
Merci à tous de vous etre investis pour mon probleme. J'ai la, matiere
a reflexions pour avancer mon projet...
Un merci special a Modeste pour avoir pris le temps de decortiquer sa
macro pour que je puisse comprendre (super!) et a JB pour m'avoir donne
(encore une fois!) la solution que je cherchais depuis des mois. Son
truc est bien moins tiré par les cheveux que la direction dans laquelle
j'essayais d'aller...
Merci à tous de vous etre investis pour mon probleme. J'ai la, matiere a reflexions pour avancer mon projet...
Un merci special a Modeste pour avoir pris le temps de decortiquer sa macro pour que je puisse comprendre (super!) et a JB pour m'avoir donne (encore une fois!) la solution que je cherchais depuis des mois. Son truc est bien moins tiré par les cheveux que la direction dans laquelle j'essayais d'aller...