Bonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur fiche
personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou plus, une
fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir des accents, la
colonne A doit obligatoirement contenir le Email. Tout cela en attendant de
trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
"DanielCo" a écrit dans le message de
news:ivm52f$bq2$Non, je traite une colonne (A dans l'exemple), cellule par cellule. Mais
qu'est-ce que tu entends par "traiter" ?
Daniel
Albert a écritMa description du but recherché a changer depuis ma première demande,
Au début je voulais compter les noms avec accents par colonne, en
regardant votre Macro je vois que vous y allez par ligne (ROW), en effet
il faut traiter différement les adresses avec mot accentué, un seul mot
accentué ou plusieurs dans la ligne compte pour un, donc à la recontre
d'un accent on passe à la ligne suivante,.
Je ne suis pas pressé
merci
Albert
Bonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur fiche
personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou plus, une
fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir des accents, la
colonne A doit obligatoirement contenir le Email. Tout cela en attendant de
trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
"DanielCo" <dcolardelleZZZ@free.fr> a écrit dans le message de
news:ivm52f$bq2$1@speranza.aioe.org...
Non, je traite une colonne (A dans l'exemple), cellule par cellule. Mais
qu'est-ce que tu entends par "traiter" ?
Daniel
Albert a écrit
Ma description du but recherché a changer depuis ma première demande,
Au début je voulais compter les noms avec accents par colonne, en
regardant votre Macro je vois que vous y allez par ligne (ROW), en effet
il faut traiter différement les adresses avec mot accentué, un seul mot
accentué ou plusieurs dans la ligne compte pour un, donc à la recontre
d'un accent on passe à la ligne suivante,.
Je ne suis pas pressé
merci
Albert
Bonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur fiche
personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou plus, une
fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir des accents, la
colonne A doit obligatoirement contenir le Email. Tout cela en attendant de
trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
"DanielCo" a écrit dans le message de
news:ivm52f$bq2$Non, je traite une colonne (A dans l'exemple), cellule par cellule. Mais
qu'est-ce que tu entends par "traiter" ?
Daniel
Albert a écritMa description du but recherché a changer depuis ma première demande,
Au début je voulais compter les noms avec accents par colonne, en
regardant votre Macro je vois que vous y allez par ligne (ROW), en effet
il faut traiter différement les adresses avec mot accentué, un seul mot
accentué ou plusieurs dans la ligne compte pour un, donc à la recontre
d'un accent on passe à la ligne suivante,.
Je ne suis pas pressé
merci
Albert
Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème sur
les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
DanielBonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou plus,
une fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir des
accents, la colonne A doit obligatoirement contenir le Email. Tout cela
en attendant de trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème sur
les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
Daniel
Bonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou plus,
une fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir des
accents, la colonne A doit obligatoirement contenir le Email. Tout cela
en attendant de trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème sur
les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
DanielBonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou plus,
une fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir des
accents, la colonne A doit obligatoirement contenir le Email. Tout cela
en attendant de trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
Ma description du but recherché a changer depuis ma première demande,
Au début je voulais compter les noms avec accents par colonne
REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel, il
y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce que
j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis adressé au
forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en colonne A
et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476, est-ce
le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
Ma description du but recherché a changer depuis ma première demande,
Au début je voulais compter les noms avec accents par colonne
REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel, il
y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce que
j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis adressé au
forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en colonne A
et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476, est-ce
le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
Ma description du but recherché a changer depuis ma première demande,
Au début je voulais compter les noms avec accents par colonne
REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel, il
y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce que
j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis adressé au
forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en colonne A
et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476, est-ce
le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel,
il y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce
que j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis
adressé au forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en colonne
A et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476,
est-ce le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
"DanielCo" a écrit dans le message de
news:ivmprg$v5u$Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème
sur les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
DanielBonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou
plus, une fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir
des accents, la colonne A doit obligatoirement contenir le Email. Tout
cela en attendant de trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel,
il y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce
que j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis
adressé au forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en colonne
A et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476,
est-ce le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
"DanielCo" <dcolardelleZZZ@free.fr> a écrit dans le message de
news:ivmprg$v5u$1@speranza.aioe.org...
Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème
sur les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
Daniel
Bonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou
plus, une fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir
des accents, la colonne A doit obligatoirement contenir le Email. Tout
cela en attendant de trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel,
il y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce
que j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis
adressé au forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en colonne
A et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476,
est-ce le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
"DanielCo" a écrit dans le message de
news:ivmprg$v5u$Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème
sur les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
DanielBonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs. Nous
voulons faire le compte des fiches de membre contenant un accent ou
plus, une fiche par ligne. Les colonnes B,C,D,E et F peuvent contenir
des accents, la colonne A doit obligatoirement contenir le Email. Tout
cela en attendant de trouver la solution avec le serveur PHP.
Merci de votre attention
Albert
(je suis quand même culloté ;-) )
(je suis quand même culloté ;-) )
(je suis quand même culloté ;-) )
Bonjour,
en reprenant la macro de Daniel (je suis quand même culloté ;-) )
et en prenant en compte
- les colonnes A à F
- les chiffres contenus dans le texte,
(en espérant qu'il ne faille pas traiter les caractères : ; < = > ? )
Sub Macro1()
Dim c As Range, Ctr As Long, i As Integer
Dim Derlig As Long, Flag As Byte
Derlig = Range("A65536").End(xlUp).Row
For n = 1 To Derlig
Flag = 0
For Each c In Range(Cells(n, 1), Cells(n, 6))
For i = 1 To Len(c.Value)
If (UCase(Mid(c.Value, i, 1)) < "0" Or UCase(Mid(c.Value, i, 1)) >
"Z") Then
If Mid(c.Value, i, 1) <> "-" And Mid(c.Value, i, 1) <> "'" _
And Mid(c.Value, i, 1) <> " " And Mid(c.Value, i, 1) <> "." Then
Flag = 1
c.Interior.ColorIndex = 43
End If
End If
Next i
Next c
If Flag = 1 Then Ctr = Ctr + 1
Next n
MsgBox Ctr, , "nombre de lignes"
End Sub
( J'ai laissé une mise en couleur des cellules fautives )
Michel
"Albert" a écrit dans le message de news:
ivmtpr$9p8$REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel,
il y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce
que j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis
adressé au forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en
colonne A et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476,
est-ce le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
"DanielCo" a écrit dans le message de
news:ivmprg$v5u$Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème
sur les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
DanielBonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs.
Nous voulons faire le compte des fiches de membre contenant un accent
ou plus, une fiche par ligne. Les colonnes B,C,D,E et F peuvent
contenir des accents, la colonne A doit obligatoirement contenir le
Email. Tout cela en attendant de trouver la solution avec le serveur
PHP.
Merci de votre attention
Albert
Bonjour,
en reprenant la macro de Daniel (je suis quand même culloté ;-) )
et en prenant en compte
- les colonnes A à F
- les chiffres contenus dans le texte,
(en espérant qu'il ne faille pas traiter les caractères : ; < = > ? )
Sub Macro1()
Dim c As Range, Ctr As Long, i As Integer
Dim Derlig As Long, Flag As Byte
Derlig = Range("A65536").End(xlUp).Row
For n = 1 To Derlig
Flag = 0
For Each c In Range(Cells(n, 1), Cells(n, 6))
For i = 1 To Len(c.Value)
If (UCase(Mid(c.Value, i, 1)) < "0" Or UCase(Mid(c.Value, i, 1)) >
"Z") Then
If Mid(c.Value, i, 1) <> "-" And Mid(c.Value, i, 1) <> "'" _
And Mid(c.Value, i, 1) <> " " And Mid(c.Value, i, 1) <> "." Then
Flag = 1
c.Interior.ColorIndex = 43
End If
End If
Next i
Next c
If Flag = 1 Then Ctr = Ctr + 1
Next n
MsgBox Ctr, , "nombre de lignes"
End Sub
( J'ai laissé une mise en couleur des cellules fautives )
Michel
"Albert" <albert@invalid.com> a écrit dans le message de news:
ivmtpr$9p8$1@speranza.aioe.org...
REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel,
il y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce
que j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis
adressé au forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en
colonne A et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476,
est-ce le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
"DanielCo" <dcolardelleZZZ@free.fr> a écrit dans le message de
news:ivmprg$v5u$1@speranza.aioe.org...
Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème
sur les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
Daniel
Bonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs.
Nous voulons faire le compte des fiches de membre contenant un accent
ou plus, une fiche par ligne. Les colonnes B,C,D,E et F peuvent
contenir des accents, la colonne A doit obligatoirement contenir le
Email. Tout cela en attendant de trouver la solution avec le serveur
PHP.
Merci de votre attention
Albert
Bonjour,
en reprenant la macro de Daniel (je suis quand même culloté ;-) )
et en prenant en compte
- les colonnes A à F
- les chiffres contenus dans le texte,
(en espérant qu'il ne faille pas traiter les caractères : ; < = > ? )
Sub Macro1()
Dim c As Range, Ctr As Long, i As Integer
Dim Derlig As Long, Flag As Byte
Derlig = Range("A65536").End(xlUp).Row
For n = 1 To Derlig
Flag = 0
For Each c In Range(Cells(n, 1), Cells(n, 6))
For i = 1 To Len(c.Value)
If (UCase(Mid(c.Value, i, 1)) < "0" Or UCase(Mid(c.Value, i, 1)) >
"Z") Then
If Mid(c.Value, i, 1) <> "-" And Mid(c.Value, i, 1) <> "'" _
And Mid(c.Value, i, 1) <> " " And Mid(c.Value, i, 1) <> "." Then
Flag = 1
c.Interior.ColorIndex = 43
End If
End If
Next i
Next c
If Flag = 1 Then Ctr = Ctr + 1
Next n
MsgBox Ctr, , "nombre de lignes"
End Sub
( J'ai laissé une mise en couleur des cellules fautives )
Michel
"Albert" a écrit dans le message de news:
ivmtpr$9p8$REbonjour Daniel
Remplacer les accents est simple avec "Rechercher et Remplacer" de Excel,
il y a 330 "é", 82 "è" et 24 "ô" le tout a pris moins de 30 secondes.
Au début on voulait avoir une idée du nombre de membres avec accents, ce
que j'ai essayé sans succès avec NB.SI(), c'est alors que je me suis
adressé au forum.
Votre macro actuelle "Sub Test3()" modifiée pour lire la colonne D (nom,
prenom),
*For Each c In Range([D1], Cells(Rows.Count, 1).End(xlUp))*
Donne un compte 1804 alors que le fichier ne compte que 543 lignes.
Si je supprime les colonnes A, B et C, (Nom, prenom) se trouve en
colonne A et avec la macro originale le compte est 542,
Si j'enlève la vigule entre le nom et prénom le compte baisse à 476,
est-ce le total des caractères accentués?
Je vous remercie même si une solution simple n'a pas été trouvée.
merci
albert
"DanielCo" a écrit dans le message de
news:ivmprg$v5u$Bonjour,
J'en déduis donc qu'il faut enlevere les accents de la colonne A. La
fonction que je poste provient du site excelabo.net
Sub test2()
Dim c As Range, Ctr As Long, i As Integer
For Each c In Range([A1], Cells(Rows.Count, 1).End(xlUp))
c.Value = Sans_accents$(c.Value)
Next c
End Sub
Function Sans_accents$(Chaine$) ' R. Dezan + Michel Pierron
'Cette fonction enlève également les ¼, ½, Æ, æ qui posent un problème
sur les sytèmes anglais.
' remplacement des caractères accentués
a$ = "ÀÁÂÃÄÅÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðñòóôõöùúûüýÿ"
b$ = "AAAAAAEEEEIIIINOOOOOUUUUYaaaaaaeeeeiiiionooooouuuuyy"
Chaine = Replace(Replace(Replace(Replace(Chaine, "½", "oe"), "¼", _
"OE"), "æ", "ae"), "Æ", "AE")
For i% = 1 To Len(Chaine)
u% = InStr(1, a, Mid(Chaine, i, 1), 0)
If u Then Mid(Chaine, i, 1) = Mid(b, u, 1)
Next i
Sans_accents = Chaine
End Function
DanielBonjour DanielCo
Notre organisation sans but lucratif, veut transmettre aux membres leur
fiche personnelle par publipostage pour mise à jour.
Les FAI ne permettent pas de faire du publipostage par courriel, nous
essayons via un serveur PHP. Malheureusement les fiches personnelles
contenant des accents sont reçues par les membres avec des erreurs.
Nous voulons faire le compte des fiches de membre contenant un accent
ou plus, une fiche par ligne. Les colonnes B,C,D,E et F peuvent
contenir des accents, la colonne A doit obligatoirement contenir le
Email. Tout cela en attendant de trouver la solution avec le serveur
PHP.
Merci de votre attention
Albert