Identifier tous les caractères présents dans une feuille excel

Le
Fred
Bonsoir,

Je dois rentrer un fichier pour intégration dans un gros système et je pars
d'un fichier excel de 4000 lignes et 10 colonnes, contenant des données
clients (adresse, email etc) que je transforme ensuite en txt avec
séparateur.

J'ai une contrainte, il ne faut pas de caractères spéciaux dans le fichier,
sinon ça va planter le traitement.

Y a-t-il svp une fonction qui permet dans excel :
- soit de lister tous les caractères utilisés au moins une fois dans
l'ensemble du fichier ?
- soit de vérifier qu'il n'y pas de caractères spéciaux ?

si on prend le problème à l'envers, je connais les seuls caractères
autorisés :
- les lettres de a à z, minuscules et majuscules (non accentuées)
- les chiffres de 0 à 9
- le tiret du milieu, l'underscore, le point et l'arobase

toute contribution est bienvenue

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jps
Le #4693091
bonjour fred
cette function, signée alain vallon, te supprimera tous les accents...c'est
donc un début!
HTH
jps

Function Virer_Accents$(chaine$)
Dim Tmp$
Dim i
Dim X

Tmp = Trim(chaine)
For i = 1 To Len(Tmp)
X = Asc(Mid(Tmp, i, 1))
Select Case X
Case 192 To 197: X = "A"
Case 200 To 203: X = "E"
Case 204 To 207: X = "I"
Case 209: X = "N"
Case 210 To 214: X = "O"
Case 217 To 220: X = "U"
Case 221: X = "Y"
Case 224 To 229: X = "a"
Case 232 To 235: X = "e"
Case 236 To 239: X = "i"
Case 241: X = "n"
Case 240, 242 To 246: X = "o"
Case 249 To 252: X = "u"
Case 253, 255: X = "y"
Case Else: X = Chr(X)
End Select
Virer_Accents = Virer_Accents & X
Next
End Function 'av

"Fred" 46eaf4d9$0$10633$
Bonsoir,

Je dois rentrer un fichier pour intégration dans un gros système et je
pars d'un fichier excel de 4000 lignes et 10 colonnes, contenant des
données clients (adresse, email etc...) que je transforme ensuite en txt
avec séparateur.

J'ai une contrainte, il ne faut pas de caractères spéciaux dans le
fichier, sinon ça va planter le traitement.

Y a-t-il svp une fonction qui permet dans excel :
- soit de lister tous les caractères utilisés au moins une fois dans
l'ensemble du fichier ?
- soit de vérifier qu'il n'y pas de caractères spéciaux ?

si on prend le problème à l'envers, je connais les seuls caractères
autorisés :
- les lettres de a à z, minuscules et majuscules (non accentuées)
- les chiffres de 0 à 9
- le tiret du milieu, l'underscore, le point et l'arobase

toute contribution est bienvenue

merci



J
Le #4693051
Bonjour jps
et merci de nous rappeler cette très belle fonction.
Mais l'ami Fred évoque les caractères "spéciaux". Ne penses-tu pas qu'il
serait séant d'y ajouter le Q, bien que sans accent??
amitiés à tous
J@@ (bon caractère)

jps wrote:
bonjour fred
cette function, signée alain vallon, te supprimera tous les accents...c'est
donc un début!
HTH
jps

Function Virer_Accents$(chaine$)
Dim Tmp$
Dim i
Dim X

Tmp = Trim(chaine)
For i = 1 To Len(Tmp)
X = Asc(Mid(Tmp, i, 1))
Select Case X
Case 192 To 197: X = "A"
Case 200 To 203: X = "E"
Case 204 To 207: X = "I"
Case 209: X = "N"
Case 210 To 214: X = "O"
Case 217 To 220: X = "U"
Case 221: X = "Y"
Case 224 To 229: X = "a"
Case 232 To 235: X = "e"
Case 236 To 239: X = "i"
Case 241: X = "n"
Case 240, 242 To 246: X = "o"
Case 249 To 252: X = "u"
Case 253, 255: X = "y"
Case Else: X = Chr(X)
End Select
Virer_Accents = Virer_Accents & X
Next
End Function 'av

"Fred" 46eaf4d9$0$10633$
Bonsoir,

Je dois rentrer un fichier pour intégration dans un gros système et je
pars d'un fichier excel de 4000 lignes et 10 colonnes, contenant des
données clients (adresse, email etc...) que je transforme ensuite en txt
avec séparateur.

J'ai une contrainte, il ne faut pas de caractères spéciaux dans le
fichier, sinon ça va planter le traitement.

Y a-t-il svp une fonction qui permet dans excel :
- soit de lister tous les caractères utilisés au moins une fois dans
l'ensemble du fichier ?
- soit de vérifier qu'il n'y pas de caractères spéciaux ?

si on prend le problème à l'envers, je connais les seuls caractères
autorisés :
- les lettres de a à z, minuscules et majuscules (non accentuées)
- les chiffres de 0 à 9
- le tiret du milieu, l'underscore, le point et l'arobase

toute contribution est bienvenue

merci




JB
Le #4693021
Bonjour,

http://cjoint.com/?jpiZVM4xu8

1- Solution MFC

Vérifie si les caractères appartiennent à un ensemble

Format/Mise en forme conditionnelle/La formule est
=boncaractere(B2)úUX

Dans un module (AlT+F11) puis Insertion/Module

Function BonCaractere(chaine)
BonCaractere = True
For i = 1 To Len(chaine)
If
InStr("
_ ", Mid(chaine, i, 1)) = 0 Then BonCaractere = False
Next i
End Function


2- Crée une feuille avec Erreurs


Sub verif()
Application.DisplayAlerts = False
f = ActiveSheet.Name
On Error Resume Next
Sheets("Erreurs").Delete
On Error GoTo 0
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Erreurs"
Sheets(f).Select
ligne = 2
For Each c In Range("A1:G4000").SpecialCells(xlCellTypeConstants,
23)
If Not BonCaractere(c) Then
Sheets("Erreurs").Cells(ligne, 1) = c.Address
Sheets("Erreurs").Cells(ligne, 2) = c
ligne = ligne + 1
End If
Next c
End Sub

Function BonCaractere(chaine)
BonCaractere = True
For i = 1 To Len(chaine)
If
InStr("
_ ", Mid(chaine, i, 1)) = 0 Then BonCaractere = False
Next i
End Function

JB
http://boisgontierjacques.free.fr



On 14 sep, 22:53, "Fred"
Bonsoir,

Je dois rentrer un fichier pour intégration dans un gros système et j e pars
d'un fichier excel de 4000 lignes et 10 colonnes, contenant des données
clients (adresse, email etc...) que je transforme ensuite en txt avec
séparateur.

J'ai une contrainte, il ne faut pas de caractères spéciaux dans le fi chier,
sinon ça va planter le traitement.

Y a-t-il svp une fonction qui permet dans excel :
- soit de lister tous les caractères utilisés au moins une fois dans
l'ensemble du fichier ?
- soit de vérifier qu'il n'y pas de caractères spéciaux ?

si on prend le problème à l'envers, je connais les seuls caractères
autorisés :
- les lettres de a à z, minuscules et majuscules (non accentuées)
- les chiffres de 0 à 9
- le tiret du milieu, l'underscore, le point et l'arobase

toute contribution est bienvenue

merci


JB
Le #4693011
Solution MFC sans VBA:

Format/Mise en forme conditionnelle/La fomule est:

=(A1<>"")*(SOMME(SI(ESTERREUR(TROUVE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1 )));
1);"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz @-_.
0123456789"));1))=1)

http://cjoint.com/?jpjJUolxuB

JB

On 15 sep, 08:52, JB
Bonjour,

http://cjoint.com/?jpiZVM4xu8

1- Solution MFC

Vérifie si les caractères appartiennent à un ensemble

Format/Mise en forme conditionnelle/La formule est
=boncaractere(B2)úUX

Dans un module (AlT+F11) puis Insertion/Module

Function BonCaractere(chaine)
BonCaractere = True
For i = 1 To Len(chaine)
If
InStr("
_ ", Mid(chaine, i, 1)) = 0 Then BonCaractere = False
Next i
End Function

2- Crée une feuille avec Erreurs

Sub verif()
Application.DisplayAlerts = False
f = ActiveSheet.Name
On Error Resume Next
Sheets("Erreurs").Delete
On Error GoTo 0
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Erreurs"
Sheets(f).Select
ligne = 2
For Each c In Range("A1:G4000").SpecialCells(xlCellTypeConstants,
23)
If Not BonCaractere(c) Then
Sheets("Erreurs").Cells(ligne, 1) = c.Address
Sheets("Erreurs").Cells(ligne, 2) = c
ligne = ligne + 1
End If
Next c
End Sub

Function BonCaractere(chaine)
BonCaractere = True
For i = 1 To Len(chaine)
If
InStr("
_ ", Mid(chaine, i, 1)) = 0 Then BonCaractere = False
Next i
End Function

JBhttp://boisgontierjacques.free.fr

On 14 sep, 22:53, "Fred"


Bonsoir,

Je dois rentrer un fichier pour intégration dans un gros système et je pars
d'un fichier excel de 4000 lignes et 10 colonnes, contenant des donn ées
clients (adresse, email etc...) que je transforme ensuite en txt avec
séparateur.

J'ai une contrainte, il ne faut pas de caractères spéciaux dans le fichier,
sinon ça va planter le traitement.

Y a-t-il svp une fonction qui permet dans excel :
- soit de lister tous les caractères utilisés au moins une fois dans
l'ensemble du fichier ?
- soit de vérifier qu'il n'y pas de caractères spéciaux ?

si on prend le problème à l'envers, je connais les seuls caractèr es
autorisés :
- les lettres de a à z, minuscules et majuscules (non accentuées)
- les chiffres de 0 à 9
- le tiret du milieu, l'underscore, le point et l'arobase

toute contribution est bienvenue

merci- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Fred
Le #4692291
Encore une réponse parfaite et qui m'a fait gagner bcp de temps
MERCI !
Fred


"JB"
Solution MFC sans VBA:

Format/Mise en forme conditionnelle/La fomule est:

=(A1<>"")*(SOMME(SI(ESTERREUR(TROUVE(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));
1);"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz @-_.
0123456789"));1))=1)

http://cjoint.com/?jpjJUolxuB

JB

On 15 sep, 08:52, JB
Bonjour,

http://cjoint.com/?jpiZVM4xu8

1- Solution MFC

Vérifie si les caractères appartiennent à un ensemble

Format/Mise en forme conditionnelle/La formule est
=boncaractere(B2)úUX

Dans un module (AlT+F11) puis Insertion/Module

Function BonCaractere(chaine)
BonCaractere = True
For i = 1 To Len(chaine)
If
InStr("
_ ", Mid(chaine, i, 1)) = 0 Then BonCaractere = False
Next i
End Function

2- Crée une feuille avec Erreurs

Sub verif()
Application.DisplayAlerts = False
f = ActiveSheet.Name
On Error Resume Next
Sheets("Erreurs").Delete
On Error GoTo 0
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Erreurs"
Sheets(f).Select
ligne = 2
For Each c In Range("A1:G4000").SpecialCells(xlCellTypeConstants,
23)
If Not BonCaractere(c) Then
Sheets("Erreurs").Cells(ligne, 1) = c.Address
Sheets("Erreurs").Cells(ligne, 2) = c
ligne = ligne + 1
End If
Next c
End Sub

Function BonCaractere(chaine)
BonCaractere = True
For i = 1 To Len(chaine)
If
InStr("
_ ", Mid(chaine, i, 1)) = 0 Then BonCaractere = False
Next i
End Function

JBhttp://boisgontierjacques.free.fr

On 14 sep, 22:53, "Fred"


Bonsoir,

Je dois rentrer un fichier pour intégration dans un gros système et je
pars
d'un fichier excel de 4000 lignes et 10 colonnes, contenant des données
clients (adresse, email etc...) que je transforme ensuite en txt avec
séparateur.

J'ai une contrainte, il ne faut pas de caractères spéciaux dans le
fichier,
sinon ça va planter le traitement.

Y a-t-il svp une fonction qui permet dans excel :
- soit de lister tous les caractères utilisés au moins une fois dans
l'ensemble du fichier ?
- soit de vérifier qu'il n'y pas de caractères spéciaux ?

si on prend le problème à l'envers, je connais les seuls caractères
autorisés :
- les lettres de a à z, minuscules et majuscules (non accentuées)
- les chiffres de 0 à 9
- le tiret du milieu, l'underscore, le point et l'arobase

toute contribution est bienvenue

merci- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -



Publicité
Poster une réponse
Anonyme