Salut à toi
Je te propose ce code
Le résultat dans les 2 colonnes adjacentes (B et C)
For Each c In Worksheets("Sheet1").Range("A3", "A" &
Range("A65535").End(xlUp).Row)
Caractères = " éèà,"
For i = 1 To Len(c)
A = UCase(Mid(c, i, 1))
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i, 1)) & "*" And
Mid(c, i, 1) <> "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Caractères Like "*" & Mid(c, i, 1) & "*" = False And Mid(c, i, 1) <>
"-"
Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
If Caractères Like "*" & Mid(c, i, 1) & "*" And Mid(c, i, 1) <> "," Then
Nom = Nom & Mid(c, i, 1)
End If
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i + 1, 1)) & "*"
And
Mid(c, i, 1) = "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Mid(c, i, 1) = "-" Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
Next
c.Offset(0, 1) = Nom
c.Offset(0, 2) = Chiffre
Nom = ""
Chiffre = ""
Next
Sur ce lien ton fichier avec la macro Traitement
http://www.cijoint.fr/cjlink.php?file=cj200807/cijk0u8uin.xls
Fais des essais et dis moi !!!
"rthompson" wrote:Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y
mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" a écrit dans le message de news:
%
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :
> En suppposant que les nombres soient toujours en tête.
> En A1 : 100 aaa ZI www
> Pour extraire le nombre :
> =CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
> pour extraire la partie centrale :
> =STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
> Pour extraire la chaîne se trouvant après ZI :
> =STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de
celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
Salut à toi
Je te propose ce code
Le résultat dans les 2 colonnes adjacentes (B et C)
For Each c In Worksheets("Sheet1").Range("A3", "A" &
Range("A65535").End(xlUp).Row)
Caractères = " éèà,"
For i = 1 To Len(c)
A = UCase(Mid(c, i, 1))
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i, 1)) & "*" And
Mid(c, i, 1) <> "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Caractères Like "*" & Mid(c, i, 1) & "*" = False And Mid(c, i, 1) <>
"-"
Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
If Caractères Like "*" & Mid(c, i, 1) & "*" And Mid(c, i, 1) <> "," Then
Nom = Nom & Mid(c, i, 1)
End If
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i + 1, 1)) & "*"
And
Mid(c, i, 1) = "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Mid(c, i, 1) = "-" Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
Next
c.Offset(0, 1) = Nom
c.Offset(0, 2) = Chiffre
Nom = ""
Chiffre = ""
Next
Sur ce lien ton fichier avec la macro Traitement
http://www.cijoint.fr/cjlink.php?file=cj200807/cijk0u8uin.xls
Fais des essais et dis moi !!!
"rthompson" wrote:
Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y
mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
%23gabWHX7IHA.1952@TK2MSFTNGP02.phx.gbl...
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :
> En suppposant que les nombres soient toujours en tête.
> En A1 : 100 aaa ZI www
> Pour extraire le nombre :
> =CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
> pour extraire la partie centrale :
> =STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
> Pour extraire la chaîne se trouvant après ZI :
> =STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de
celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
Salut à toi
Je te propose ce code
Le résultat dans les 2 colonnes adjacentes (B et C)
For Each c In Worksheets("Sheet1").Range("A3", "A" &
Range("A65535").End(xlUp).Row)
Caractères = " éèà,"
For i = 1 To Len(c)
A = UCase(Mid(c, i, 1))
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i, 1)) & "*" And
Mid(c, i, 1) <> "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Caractères Like "*" & Mid(c, i, 1) & "*" = False And Mid(c, i, 1) <>
"-"
Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
If Caractères Like "*" & Mid(c, i, 1) & "*" And Mid(c, i, 1) <> "," Then
Nom = Nom & Mid(c, i, 1)
End If
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i + 1, 1)) & "*"
And
Mid(c, i, 1) = "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Mid(c, i, 1) = "-" Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
Next
c.Offset(0, 1) = Nom
c.Offset(0, 2) = Chiffre
Nom = ""
Chiffre = ""
Next
Sur ce lien ton fichier avec la macro Traitement
http://www.cijoint.fr/cjlink.php?file=cj200807/cijk0u8uin.xls
Fais des essais et dis moi !!!
"rthompson" wrote:Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y
mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" a écrit dans le message de news:
%
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :
> En suppposant que les nombres soient toujours en tête.
> En A1 : 100 aaa ZI www
> Pour extraire le nombre :
> =CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
> pour extraire la partie centrale :
> =STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
> Pour extraire la chaîne se trouvant après ZI :
> =STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de
celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
Pour dégrossir le problème, voici une macro qui lit les adresses en
colonne A, et ventile la rue en colonne B et les numéros en colonne C. Les
cellules non traitées sont coloriées en jaune. Elle n'est pas infaillible,
mais, bon, c'est toujours autant de traité.
Sub test()
Dim c As Range, Adr, txt, rue() As String
Columns.NumberFormat = "@"
For Each c In Range([A3], [A65536].End(xlUp))
Adr = Split(Replace(c, ",", ""))
If IsNumeric(Replace(Adr(0), "-", "")) Then
c.Offset(, 2) = CStr(Adr(0))
ReDim rue(UBound(Adr) - 1)
For i = 1 To UBound(Adr)
rue(i - 1) = Adr(i)
Next i
c.Offset(, 1) = Join(rue, " ")
ElseIf IsNumeric(Replace(Adr(UBound(Adr)), "-", "")) Then
c.Offset(, 2) = Format(Adr(UBound(Adr)), "@")
ReDim rue(UBound(Adr) - 1)
For i = 0 To UBound(Adr) - 1
rue(i) = Adr(i)
Next i
c.Offset(, 1) = Join(rue, " ")
Else
c.Interior.ColorIndex = 6
End If
Next c
End Sub
Daniel
"rthompson" a écrit dans le message de
news:Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" a écrit dans le message de news:
%
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :En suppposant que les nombres soient toujours en tête.
En A1 : 100 aaa ZI www
Pour extraire le nombre :
=CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
pour extraire la partie centrale :
=STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
Pour extraire la chaîne se trouvant après ZI :
=STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
Pour dégrossir le problème, voici une macro qui lit les adresses en
colonne A, et ventile la rue en colonne B et les numéros en colonne C. Les
cellules non traitées sont coloriées en jaune. Elle n'est pas infaillible,
mais, bon, c'est toujours autant de traité.
Sub test()
Dim c As Range, Adr, txt, rue() As String
Columns.NumberFormat = "@"
For Each c In Range([A3], [A65536].End(xlUp))
Adr = Split(Replace(c, ",", ""))
If IsNumeric(Replace(Adr(0), "-", "")) Then
c.Offset(, 2) = CStr(Adr(0))
ReDim rue(UBound(Adr) - 1)
For i = 1 To UBound(Adr)
rue(i - 1) = Adr(i)
Next i
c.Offset(, 1) = Join(rue, " ")
ElseIf IsNumeric(Replace(Adr(UBound(Adr)), "-", "")) Then
c.Offset(, 2) = Format(Adr(UBound(Adr)), "@")
ReDim rue(UBound(Adr) - 1)
For i = 0 To UBound(Adr) - 1
rue(i) = Adr(i)
Next i
c.Offset(, 1) = Join(rue, " ")
Else
c.Interior.ColorIndex = 6
End If
Next c
End Sub
Daniel
"rthompson" <roubliemoithompson@softscreen.be> a écrit dans le message de
news: usEzMSX7IHA.1204@TK2MSFTNGP04.phx.gbl...
Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
%23gabWHX7IHA.1952@TK2MSFTNGP02.phx.gbl...
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :
En suppposant que les nombres soient toujours en tête.
En A1 : 100 aaa ZI www
Pour extraire le nombre :
=CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
pour extraire la partie centrale :
=STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
Pour extraire la chaîne se trouvant après ZI :
=STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
Pour dégrossir le problème, voici une macro qui lit les adresses en
colonne A, et ventile la rue en colonne B et les numéros en colonne C. Les
cellules non traitées sont coloriées en jaune. Elle n'est pas infaillible,
mais, bon, c'est toujours autant de traité.
Sub test()
Dim c As Range, Adr, txt, rue() As String
Columns.NumberFormat = "@"
For Each c In Range([A3], [A65536].End(xlUp))
Adr = Split(Replace(c, ",", ""))
If IsNumeric(Replace(Adr(0), "-", "")) Then
c.Offset(, 2) = CStr(Adr(0))
ReDim rue(UBound(Adr) - 1)
For i = 1 To UBound(Adr)
rue(i - 1) = Adr(i)
Next i
c.Offset(, 1) = Join(rue, " ")
ElseIf IsNumeric(Replace(Adr(UBound(Adr)), "-", "")) Then
c.Offset(, 2) = Format(Adr(UBound(Adr)), "@")
ReDim rue(UBound(Adr) - 1)
For i = 0 To UBound(Adr) - 1
rue(i) = Adr(i)
Next i
c.Offset(, 1) = Join(rue, " ")
Else
c.Interior.ColorIndex = 6
End If
Next c
End Sub
Daniel
"rthompson" a écrit dans le message de
news:Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" a écrit dans le message de news:
%
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :En suppposant que les nombres soient toujours en tête.
En A1 : 100 aaa ZI www
Pour extraire le nombre :
=CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
pour extraire la partie centrale :
=STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
Pour extraire la chaîne se trouvant après ZI :
=STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
mes excuses,
j'avais oublié d'inscrire "convertir" dans la première macro.
Dans l'ordre, les macros s'exécutent ainsi,
d'abord enlever les caractères sépciaux chr(10)
puis convertir,
puis inverser les colonnes,
puis les nombres situés à droite de l'adresse.
'*******************
Sub Caractères_spéciaux()
For Each cell In Range("a1:a" & _
Range("a65536").End(xlUp).Row)
On Error Resume Next
' cell.Select
cell.Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
Next
CONVERTIR
inverser_colonnes
NOMBRES
End Sub
'*******************
Sub CONVERTIR()
'coller les adresses dans la colonne A
Columns(1).Select
'première macro
Selection.TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=True, _
Semicolon:úlse, Comma:=True, _
Space:úlse, Other:úlse, _
FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
End Sub
'**************
Sub inverser_colonnes()
'deuxième macro
For Each cell In Range("a1:a" & Range _
("a65536").End(xlUp).Row)
If IsNumeric(cell) Then
cell.Offset(0, 1).Cut
cell.Insert Shift:=xlToRight
End If
Next
End Sub
'*******************
Sub NOMBRES()
'3e macro
For Each cell In Range("a1:a" & _
Range("a65536").End(xlUp).Row)
For i = 4 To 1 Step (-1)
If IsNumeric(Left(cell, i)) Then
cell.Offset(0, 1) = Left(cell, i)
cell.Value = Right(cell, Len(cell) - i)
End If
If IsNumeric(Right(cell, i)) Then
cell.Offset(0, 1) = Right(cell, i)
cell.Value = Left(cell, Len(cell) - i)
End If
Next
Next
End Sub
'*************
A plus
Amicalement
Siesting Hoax
mes excuses,
j'avais oublié d'inscrire "convertir" dans la première macro.
Dans l'ordre, les macros s'exécutent ainsi,
d'abord enlever les caractères sépciaux chr(10)
puis convertir,
puis inverser les colonnes,
puis les nombres situés à droite de l'adresse.
'*******************
Sub Caractères_spéciaux()
For Each cell In Range("a1:a" & _
Range("a65536").End(xlUp).Row)
On Error Resume Next
' cell.Select
cell.Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
Next
CONVERTIR
inverser_colonnes
NOMBRES
End Sub
'*******************
Sub CONVERTIR()
'coller les adresses dans la colonne A
Columns(1).Select
'première macro
Selection.TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=True, _
Semicolon:úlse, Comma:=True, _
Space:úlse, Other:úlse, _
FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
End Sub
'**************
Sub inverser_colonnes()
'deuxième macro
For Each cell In Range("a1:a" & Range _
("a65536").End(xlUp).Row)
If IsNumeric(cell) Then
cell.Offset(0, 1).Cut
cell.Insert Shift:=xlToRight
End If
Next
End Sub
'*******************
Sub NOMBRES()
'3e macro
For Each cell In Range("a1:a" & _
Range("a65536").End(xlUp).Row)
For i = 4 To 1 Step (-1)
If IsNumeric(Left(cell, i)) Then
cell.Offset(0, 1) = Left(cell, i)
cell.Value = Right(cell, Len(cell) - i)
End If
If IsNumeric(Right(cell, i)) Then
cell.Offset(0, 1) = Right(cell, i)
cell.Value = Left(cell, Len(cell) - i)
End If
Next
Next
End Sub
'*************
A plus
Amicalement
Siesting Hoax
mes excuses,
j'avais oublié d'inscrire "convertir" dans la première macro.
Dans l'ordre, les macros s'exécutent ainsi,
d'abord enlever les caractères sépciaux chr(10)
puis convertir,
puis inverser les colonnes,
puis les nombres situés à droite de l'adresse.
'*******************
Sub Caractères_spéciaux()
For Each cell In Range("a1:a" & _
Range("a65536").End(xlUp).Row)
On Error Resume Next
' cell.Select
cell.Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
Next
CONVERTIR
inverser_colonnes
NOMBRES
End Sub
'*******************
Sub CONVERTIR()
'coller les adresses dans la colonne A
Columns(1).Select
'première macro
Selection.TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=True, _
Semicolon:úlse, Comma:=True, _
Space:úlse, Other:úlse, _
FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
End Sub
'**************
Sub inverser_colonnes()
'deuxième macro
For Each cell In Range("a1:a" & Range _
("a65536").End(xlUp).Row)
If IsNumeric(cell) Then
cell.Offset(0, 1).Cut
cell.Insert Shift:=xlToRight
End If
Next
End Sub
'*******************
Sub NOMBRES()
'3e macro
For Each cell In Range("a1:a" & _
Range("a65536").End(xlUp).Row)
For i = 4 To 1 Step (-1)
If IsNumeric(Left(cell, i)) Then
cell.Offset(0, 1) = Left(cell, i)
cell.Value = Right(cell, Len(cell) - i)
End If
If IsNumeric(Right(cell, i)) Then
cell.Offset(0, 1) = Right(cell, i)
cell.Value = Left(cell, Len(cell) - i)
End If
Next
Next
End Sub
'*************
A plus
Amicalement
Siesting Hoax
>on se décarcasse ...
et pendant ce temps là le major Marmeduke est en vadrouille !!!
>on se décarcasse ...
et pendant ce temps là le major Marmeduke est en vadrouille !!!
>on se décarcasse ...
et pendant ce temps là le major Marmeduke est en vadrouille !!!
Salut à toi
Je te propose ce code
Le résultat dans les 2 colonnes adjacentes (B et C)
For Each c In Worksheets("Sheet1").Range("A3", "A" &
Range("A65535").End(xlUp).Row)
Caractères = " éèà,"
For i = 1 To Len(c)
A = UCase(Mid(c, i, 1))
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i, 1)) & "*" And
Mid(c, i, 1) <> "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Caractères Like "*" & Mid(c, i, 1) & "*" = False And Mid(c, i, 1) <>
"-"
Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
If Caractères Like "*" & Mid(c, i, 1) & "*" And Mid(c, i, 1) <> "," Then
Nom = Nom & Mid(c, i, 1)
End If
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i + 1, 1)) & "*"
And
Mid(c, i, 1) = "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Mid(c, i, 1) = "-" Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
Next
c.Offset(0, 1) = Nom
c.Offset(0, 2) = Chiffre
Nom = ""
Chiffre = ""
Next
Sur ce lien ton fichier avec la macro Traitement
http://www.cijoint.fr/cjlink.php?file=cj200807/cijk0u8uin.xls
Fais des essais et dis moi !!!
"rthompson" wrote:Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y
mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" a écrit dans le message de news:
%
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :
> En suppposant que les nombres soient toujours en tête.
> En A1 : 100 aaa ZI www
> Pour extraire le nombre :
> =CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
> pour extraire la partie centrale :
> =STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
> Pour extraire la chaîne se trouvant après ZI :
> =STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de
celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
Salut à toi
Je te propose ce code
Le résultat dans les 2 colonnes adjacentes (B et C)
For Each c In Worksheets("Sheet1").Range("A3", "A" &
Range("A65535").End(xlUp).Row)
Caractères = " éèà,"
For i = 1 To Len(c)
A = UCase(Mid(c, i, 1))
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i, 1)) & "*" And
Mid(c, i, 1) <> "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Caractères Like "*" & Mid(c, i, 1) & "*" = False And Mid(c, i, 1) <>
"-"
Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
If Caractères Like "*" & Mid(c, i, 1) & "*" And Mid(c, i, 1) <> "," Then
Nom = Nom & Mid(c, i, 1)
End If
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i + 1, 1)) & "*"
And
Mid(c, i, 1) = "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Mid(c, i, 1) = "-" Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
Next
c.Offset(0, 1) = Nom
c.Offset(0, 2) = Chiffre
Nom = ""
Chiffre = ""
Next
Sur ce lien ton fichier avec la macro Traitement
http://www.cijoint.fr/cjlink.php?file=cj200807/cijk0u8uin.xls
Fais des essais et dis moi !!!
"rthompson" wrote:
Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y
mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
%23gabWHX7IHA.1952@TK2MSFTNGP02.phx.gbl...
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :
> En suppposant que les nombres soient toujours en tête.
> En A1 : 100 aaa ZI www
> Pour extraire le nombre :
> =CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
> pour extraire la partie centrale :
> =STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
> Pour extraire la chaîne se trouvant après ZI :
> =STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de
celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
Salut à toi
Je te propose ce code
Le résultat dans les 2 colonnes adjacentes (B et C)
For Each c In Worksheets("Sheet1").Range("A3", "A" &
Range("A65535").End(xlUp).Row)
Caractères = " éèà,"
For i = 1 To Len(c)
A = UCase(Mid(c, i, 1))
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i, 1)) & "*" And
Mid(c, i, 1) <> "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Caractères Like "*" & Mid(c, i, 1) & "*" = False And Mid(c, i, 1) <>
"-"
Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
If Caractères Like "*" & Mid(c, i, 1) & "*" And Mid(c, i, 1) <> "," Then
Nom = Nom & Mid(c, i, 1)
End If
If "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Like "*" & UCase(Mid(c, i + 1, 1)) & "*"
And
Mid(c, i, 1) = "-" Then
Nom = Nom & Mid(c, i, 1)
Else
If Mid(c, i, 1) = "-" Then
Chiffre = Chiffre & Mid(c, i, 1)
End If
End If
Next
c.Offset(0, 1) = Nom
c.Offset(0, 2) = Chiffre
Nom = ""
Chiffre = ""
Next
Sur ce lien ton fichier avec la macro Traitement
http://www.cijoint.fr/cjlink.php?file=cj200807/cijk0u8uin.xls
Fais des essais et dis moi !!!
"rthompson" wrote:Encore une fois
Il s'agit d'un "Cadeau" d'une personne ayant quitté la société
Dans Filemaker, il n'avait rien de spécifique pour les addresse et chacun
y
mettait ce qu'il voulait
Maintenant que je suis parvenu à les convaincre d'utilser Act (no pub
please)
et que nous mettons en place une structure et des formats spécifiques
cela devrait aller beaucoup mieux
En ce qui concerne les anciennes entrées, la réaction est simple
Oh, that's not a problem, just ask Rex to sort things out
Donc voilà l'apprenti dans la cadoue
Parce que je te signale, que cette colonne n'en est qu'une
J'en ai une "Floppée" d'autre à régler
Et j'avance pas mal
Mais ici, je coince totalement
Et je me vois mal en rectifier environ 10.000 à la main
A bientôt
Rex
"Modeste" a écrit dans le message de news:
%
Bonsour® Daniel.C avec ferveur ;o))) vous nous disiez :
> En suppposant que les nombres soient toujours en tête.
> En A1 : 100 aaa ZI www
> Pour extraire le nombre :
> =CNUM(GAUCHE(A1;TROUVE(" ";A1)-1))
> pour extraire la partie centrale :
> =STXT(A1;TROUVE(" ";A1)+1;TROUVE("ZI";A1)-TROUVE(" ";A1)-2)
> Pour extraire la chaîne se trouvant après ZI :
> =STXT(A1;TROUVE("ZI";A1)+3;9^9)
:-(
pas si simple que cela ...
selon l'exemple fourni par T.Rex !!!!
comment differencier /isoler :
ZI Rennes Sud-Est (ZI Rennes Sud-Est - 10 rue du Breil) (ZUP ZAC
etc...)
BP 93035 (Rue de la Halte BP 93035) ( Cedex Cidex etc...)
CP 7289 (Pont Bessières, 3 CP 7289)
ces 2 derniers incorporent de plus un saut de ligne
les adresses dont le numéro de voie est à la fin (Rue Despourrins, 6-8)
de
celles ou il est au début (99, rue de l'Abbé Groult)
les adresses ou il n'y a pas de séparateur commun (89 av. Charles de
Gaulle)
ou il n'y a pas de numero de voie (Mas de Grille)
ou les numéro de voie sont composites ( 17-21 , 22 ter)
les noms de voie numérique (rue du 11 novembre 1918)
une solution possible serait de faire un tri des toutes ces adresses
- les regrouper par type de libellé
- séparer dans des feuilles séparées chaque type pour y appliquer un
données
> convertir : adéquat
- un bonne petites dizaines de procs distinctes
- pas mal de manips à la main (inversions, remise en place de colonne)
- certainement pas mal de controle et correction aprés coup
- puis remettre tout en commun...
;o)))
:-(
mais je ne vois pas de procédure simple et universelle
Tu vois Rex, pour faire un parallele avec le suivi de commande (on avait
oublié le conditionnement ;o))).
Ici c'est la collectage correct des adresses qui conditionne tout ce qui
suit...
;o)))
--
@+
;o)))
>on se décarcasse ...et pendant ce temps là le major Marmeduke est en vadrouille !!!
Pas grave, vous n'avez qu'à faire la sieste pendant ce temps ;-)))
voici la dernière version,
j'ai l'impression que ça marche très bien, du moins avec les données du
fichier, s'il n'y a pas d'autres bricoles du genre ZAC ou ZUP;-))).
Un peu bourrin, mais efficace et adapté au fichier
'********************************
Sub Caractères_spéciaux()
Application.ScreenUpdating = False
For Each cell In Range("a3:a" & _
Range("a65536").End(xlUp).Row)
On Error Resume Next
cell.Offset(0, 1).Replace What:="," & caractère, Replacement:="" &
caractère, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
cell.Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
For Each caractère In Array("a", "b", "c", "d", "e", "f", "g", "h",
_
"i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", _
"u", "v", "w", "x", "y", "z")
cell.Replace What:=LCase(caractère) & "-",
Replacement:=LCase(caractère) _
& " ", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse, _
SearchFormat:úlse, ReplaceFormat:úlse
cell.Replace What:="-" & caractère, Replacement:=" " & caractère, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse, _
SearchFormat:úlse, ReplaceFormat:úlse
Next
Next
CONVERTIR
inverser_colonnes
NOMBRES
BP
ZI
'2e passage pour les nombres restant
NOMBRES
End Sub
'************
Sub CONVERTIR()
'coller les adresses dans la colonne A
Columns(1).Select
'première macro
Selection.TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=True, _
Semicolon:úlse, Comma:=True, _
Space:úlse, Other:úlse, _
FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
End Sub
'****************
Sub inverser_colonnes()
'deuxième macro
For Each cell In Range("a3:a" & Range _
("a65536").End(xlUp).Row)
If IsNumeric(cell) Then
cell.Offset(0, 1).Cut
cell.Insert Shift:=xlToRight
End If
Next
End Sub
'**************
Sub NOMBRES()
'3e macro
For Each cell In Range("a3:a" & _
Range("a65536").End(xlUp).Row)
For i = 6 To 1 Step (-1)
If IsNumeric(Left(cell, i)) Then
cell.Offset(0, 1) = Left(cell, i)
cell.Value = Right(cell, Len(cell) - i)
End If
If IsNumeric(Right(cell, i)) Then
cell.Offset(0, 1) = Right(cell, i)
cell.Value = Left(cell, Len(cell) - i)
End If
Next
Next
End Sub
'***********
Sub BP()
For Each nom In Array("BP", "CP")
For Each cell In Range("a3:a" & Range("a65536").End(xlUp).Row)
If Right(UCase(cell), 2) = UCase(nom) Then
cell.Offset(0, 2) = nom & " " & cell.Offset(0, 1)
cell.Value = Left(cell, (Len(cell) - 2))
cell.Offset(0, 1) = ""
End If
Next
Next
End Sub
'*************
Sub ZI()
On Error Resume Next
For Each cell In Range("a3:a" & Range("a65536").End(xlUp).Row)
If Left(UCase(cell), 2) = UCase("ZI") Then
For i = 1 To Len(cell)
Adr = Right(cell, Len(cell) - i)
If Left(Adr, 1) = "-" Then
Adr = Left(cell, i)
cell.Offset(0, 2) = Adr
cell.Value = Right(cell, Len(cell) - i - 2)
End If
Next
End If
cell.Offset(0, 1).Replace What:="," & caractère, Replacement:="" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
For i = 0 To 9
cell.Offset(0, 1).Replace What:=" " & caractère, Replacement:="" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
cell.Offset(0, 1).Replace What:="i " & caractère, Replacement:="i" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
cell.Offset(0, 1).Replace What:=" i" & caractère, Replacement:="i" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
Next
cell.Offset(0, 1) = cell.Offset(0, 1) * 1
Next
End Sub
'*************************
A plus
Amicalement
Siesting Hoax
"Modeste" a écrit dans le message de news:
Bonsour® laurent.daures avec ferveur ;o)))
dans l'esprit de ce qui a déja été proposé
deux petites siouxeries sous forme de fonction personnalisées :
Function chiffres(target)
chiffres = ""
For i = 1 To Len(target)
If InStr("0123456789-", Mid(target, i, 1)) > 0 Then
chiffres = chiffres & Mid(target, i, 1)
End If
Next
While Left(chiffres, 1) = "-"
chiffres = Mid(chiffres, 2, 9 ^ 9)
Wend
While Right(chiffres, 1) = "-"
chiffres = Left(chiffres, Len(chiffres) - 1)
Wend
End Function
Function lettres(target)
lettres = ""
target = Application.Substitute(target, Chr(10), Chr(32))
For i = 1 To Len(target)
If InStr(1, "abcdefghijklmnopqrstuvwxyzéèçêâô '-", Mid(target, i,
1), 1) > 0 Then
lettres = lettres & Mid(target, i, 1)
End If
Next
lettres = Application.Trim(lettres)
While Left(lettres, 1) = "-"
lettres = Mid(lettres, 2, 9 ^ 9)
Wend
While Right(lettres, 1) = "-"
lettres = Left(lettres, Len(lettres) - 1)
Wend
lettres = Application.Trim(lettres)
End Function
reste plus qu' a traiter manuellement les cas ZI CP BP Cedex Cidex ZAC ZUP
etc...
:-(
exemple :
ZI la Renaissance 15 bis, rue du 11 novembre 1918 BP22 Cedex 18
Lettres : ZI la Renaissance bis rue du novembre BP Cedex
Chiffres : 151119182218
on se décarcasse ...
et pendant ce temps là le major Marmeduke est en vadrouille !!!
;o)))
--
--
@+
;o)))
>on se décarcasse ...
et pendant ce temps là le major Marmeduke est en vadrouille !!!
Pas grave, vous n'avez qu'à faire la sieste pendant ce temps ;-)))
voici la dernière version,
j'ai l'impression que ça marche très bien, du moins avec les données du
fichier, s'il n'y a pas d'autres bricoles du genre ZAC ou ZUP;-))).
Un peu bourrin, mais efficace et adapté au fichier
'********************************
Sub Caractères_spéciaux()
Application.ScreenUpdating = False
For Each cell In Range("a3:a" & _
Range("a65536").End(xlUp).Row)
On Error Resume Next
cell.Offset(0, 1).Replace What:="," & caractère, Replacement:="" &
caractère, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
cell.Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
For Each caractère In Array("a", "b", "c", "d", "e", "f", "g", "h",
_
"i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", _
"u", "v", "w", "x", "y", "z")
cell.Replace What:=LCase(caractère) & "-",
Replacement:=LCase(caractère) _
& " ", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse, _
SearchFormat:úlse, ReplaceFormat:úlse
cell.Replace What:="-" & caractère, Replacement:=" " & caractère, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse, _
SearchFormat:úlse, ReplaceFormat:úlse
Next
Next
CONVERTIR
inverser_colonnes
NOMBRES
BP
ZI
'2e passage pour les nombres restant
NOMBRES
End Sub
'************
Sub CONVERTIR()
'coller les adresses dans la colonne A
Columns(1).Select
'première macro
Selection.TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=True, _
Semicolon:úlse, Comma:=True, _
Space:úlse, Other:úlse, _
FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
End Sub
'****************
Sub inverser_colonnes()
'deuxième macro
For Each cell In Range("a3:a" & Range _
("a65536").End(xlUp).Row)
If IsNumeric(cell) Then
cell.Offset(0, 1).Cut
cell.Insert Shift:=xlToRight
End If
Next
End Sub
'**************
Sub NOMBRES()
'3e macro
For Each cell In Range("a3:a" & _
Range("a65536").End(xlUp).Row)
For i = 6 To 1 Step (-1)
If IsNumeric(Left(cell, i)) Then
cell.Offset(0, 1) = Left(cell, i)
cell.Value = Right(cell, Len(cell) - i)
End If
If IsNumeric(Right(cell, i)) Then
cell.Offset(0, 1) = Right(cell, i)
cell.Value = Left(cell, Len(cell) - i)
End If
Next
Next
End Sub
'***********
Sub BP()
For Each nom In Array("BP", "CP")
For Each cell In Range("a3:a" & Range("a65536").End(xlUp).Row)
If Right(UCase(cell), 2) = UCase(nom) Then
cell.Offset(0, 2) = nom & " " & cell.Offset(0, 1)
cell.Value = Left(cell, (Len(cell) - 2))
cell.Offset(0, 1) = ""
End If
Next
Next
End Sub
'*************
Sub ZI()
On Error Resume Next
For Each cell In Range("a3:a" & Range("a65536").End(xlUp).Row)
If Left(UCase(cell), 2) = UCase("ZI") Then
For i = 1 To Len(cell)
Adr = Right(cell, Len(cell) - i)
If Left(Adr, 1) = "-" Then
Adr = Left(cell, i)
cell.Offset(0, 2) = Adr
cell.Value = Right(cell, Len(cell) - i - 2)
End If
Next
End If
cell.Offset(0, 1).Replace What:="," & caractère, Replacement:="" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
For i = 0 To 9
cell.Offset(0, 1).Replace What:=" " & caractère, Replacement:="" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
cell.Offset(0, 1).Replace What:="i " & caractère, Replacement:="i" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
cell.Offset(0, 1).Replace What:=" i" & caractère, Replacement:="i" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
Next
cell.Offset(0, 1) = cell.Offset(0, 1) * 1
Next
End Sub
'*************************
A plus
Amicalement
Siesting Hoax
"Modeste" <nomail@nomail.net> a écrit dans le message de news:
e1FtLpZ7IHA.1196@TK2MSFTNGP05.phx.gbl...
Bonsour® laurent.daures avec ferveur ;o)))
dans l'esprit de ce qui a déja été proposé
deux petites siouxeries sous forme de fonction personnalisées :
Function chiffres(target)
chiffres = ""
For i = 1 To Len(target)
If InStr("0123456789-", Mid(target, i, 1)) > 0 Then
chiffres = chiffres & Mid(target, i, 1)
End If
Next
While Left(chiffres, 1) = "-"
chiffres = Mid(chiffres, 2, 9 ^ 9)
Wend
While Right(chiffres, 1) = "-"
chiffres = Left(chiffres, Len(chiffres) - 1)
Wend
End Function
Function lettres(target)
lettres = ""
target = Application.Substitute(target, Chr(10), Chr(32))
For i = 1 To Len(target)
If InStr(1, "abcdefghijklmnopqrstuvwxyzéèçêâô '-", Mid(target, i,
1), 1) > 0 Then
lettres = lettres & Mid(target, i, 1)
End If
Next
lettres = Application.Trim(lettres)
While Left(lettres, 1) = "-"
lettres = Mid(lettres, 2, 9 ^ 9)
Wend
While Right(lettres, 1) = "-"
lettres = Left(lettres, Len(lettres) - 1)
Wend
lettres = Application.Trim(lettres)
End Function
reste plus qu' a traiter manuellement les cas ZI CP BP Cedex Cidex ZAC ZUP
etc...
:-(
exemple :
ZI la Renaissance 15 bis, rue du 11 novembre 1918 BP22 Cedex 18
Lettres : ZI la Renaissance bis rue du novembre BP Cedex
Chiffres : 151119182218
on se décarcasse ...
et pendant ce temps là le major Marmeduke est en vadrouille !!!
;o)))
--
--
@+
;o)))
>on se décarcasse ...et pendant ce temps là le major Marmeduke est en vadrouille !!!
Pas grave, vous n'avez qu'à faire la sieste pendant ce temps ;-)))
voici la dernière version,
j'ai l'impression que ça marche très bien, du moins avec les données du
fichier, s'il n'y a pas d'autres bricoles du genre ZAC ou ZUP;-))).
Un peu bourrin, mais efficace et adapté au fichier
'********************************
Sub Caractères_spéciaux()
Application.ScreenUpdating = False
For Each cell In Range("a3:a" & _
Range("a65536").End(xlUp).Row)
On Error Resume Next
cell.Offset(0, 1).Replace What:="," & caractère, Replacement:="" &
caractère, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
cell.Replace What:=Chr(10), Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:úlse, SearchFormat:úlse, _
ReplaceFormat:úlse
For Each caractère In Array("a", "b", "c", "d", "e", "f", "g", "h",
_
"i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", _
"u", "v", "w", "x", "y", "z")
cell.Replace What:=LCase(caractère) & "-",
Replacement:=LCase(caractère) _
& " ", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse, _
SearchFormat:úlse, ReplaceFormat:úlse
cell.Replace What:="-" & caractère, Replacement:=" " & caractère, _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse, _
SearchFormat:úlse, ReplaceFormat:úlse
Next
Next
CONVERTIR
inverser_colonnes
NOMBRES
BP
ZI
'2e passage pour les nombres restant
NOMBRES
End Sub
'************
Sub CONVERTIR()
'coller les adresses dans la colonne A
Columns(1).Select
'première macro
Selection.TextToColumns Destination:=Range("A1"), _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, _
Tab:=True, _
Semicolon:úlse, Comma:=True, _
Space:úlse, Other:úlse, _
FieldInfo _
:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
End Sub
'****************
Sub inverser_colonnes()
'deuxième macro
For Each cell In Range("a3:a" & Range _
("a65536").End(xlUp).Row)
If IsNumeric(cell) Then
cell.Offset(0, 1).Cut
cell.Insert Shift:=xlToRight
End If
Next
End Sub
'**************
Sub NOMBRES()
'3e macro
For Each cell In Range("a3:a" & _
Range("a65536").End(xlUp).Row)
For i = 6 To 1 Step (-1)
If IsNumeric(Left(cell, i)) Then
cell.Offset(0, 1) = Left(cell, i)
cell.Value = Right(cell, Len(cell) - i)
End If
If IsNumeric(Right(cell, i)) Then
cell.Offset(0, 1) = Right(cell, i)
cell.Value = Left(cell, Len(cell) - i)
End If
Next
Next
End Sub
'***********
Sub BP()
For Each nom In Array("BP", "CP")
For Each cell In Range("a3:a" & Range("a65536").End(xlUp).Row)
If Right(UCase(cell), 2) = UCase(nom) Then
cell.Offset(0, 2) = nom & " " & cell.Offset(0, 1)
cell.Value = Left(cell, (Len(cell) - 2))
cell.Offset(0, 1) = ""
End If
Next
Next
End Sub
'*************
Sub ZI()
On Error Resume Next
For Each cell In Range("a3:a" & Range("a65536").End(xlUp).Row)
If Left(UCase(cell), 2) = UCase("ZI") Then
For i = 1 To Len(cell)
Adr = Right(cell, Len(cell) - i)
If Left(Adr, 1) = "-" Then
Adr = Left(cell, i)
cell.Offset(0, 2) = Adr
cell.Value = Right(cell, Len(cell) - i - 2)
End If
Next
End If
cell.Offset(0, 1).Replace What:="," & caractère, Replacement:="" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
For i = 0 To 9
cell.Offset(0, 1).Replace What:=" " & caractère, Replacement:="" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
cell.Offset(0, 1).Replace What:="i " & caractère, Replacement:="i" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
cell.Offset(0, 1).Replace What:=" i" & caractère, Replacement:="i" & _
caractère, LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:úlse,
_
SearchFormat:úlse, ReplaceFormat:úlse
Next
cell.Offset(0, 1) = cell.Offset(0, 1) * 1
Next
End Sub
'*************************
A plus
Amicalement
Siesting Hoax
"Modeste" a écrit dans le message de news:
Bonsour® laurent.daures avec ferveur ;o)))
dans l'esprit de ce qui a déja été proposé
deux petites siouxeries sous forme de fonction personnalisées :
Function chiffres(target)
chiffres = ""
For i = 1 To Len(target)
If InStr("0123456789-", Mid(target, i, 1)) > 0 Then
chiffres = chiffres & Mid(target, i, 1)
End If
Next
While Left(chiffres, 1) = "-"
chiffres = Mid(chiffres, 2, 9 ^ 9)
Wend
While Right(chiffres, 1) = "-"
chiffres = Left(chiffres, Len(chiffres) - 1)
Wend
End Function
Function lettres(target)
lettres = ""
target = Application.Substitute(target, Chr(10), Chr(32))
For i = 1 To Len(target)
If InStr(1, "abcdefghijklmnopqrstuvwxyzéèçêâô '-", Mid(target, i,
1), 1) > 0 Then
lettres = lettres & Mid(target, i, 1)
End If
Next
lettres = Application.Trim(lettres)
While Left(lettres, 1) = "-"
lettres = Mid(lettres, 2, 9 ^ 9)
Wend
While Right(lettres, 1) = "-"
lettres = Left(lettres, Len(lettres) - 1)
Wend
lettres = Application.Trim(lettres)
End Function
reste plus qu' a traiter manuellement les cas ZI CP BP Cedex Cidex ZAC ZUP
etc...
:-(
exemple :
ZI la Renaissance 15 bis, rue du 11 novembre 1918 BP22 Cedex 18
Lettres : ZI la Renaissance bis rue du novembre BP Cedex
Chiffres : 151119182218
on se décarcasse ...
et pendant ce temps là le major Marmeduke est en vadrouille !!!
;o)))
--
--
@+
;o)))
Celle-ci je regarderai demain
Bone Appetit
Bonne Soirée
Et Bonne Nuit
Celle-ci je regarderai demain
Bone Appetit
Bonne Soirée
Et Bonne Nuit
Celle-ci je regarderai demain
Bone Appetit
Bonne Soirée
Et Bonne Nuit