Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
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

5 réponses

Avatar
jps
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" a écrit dans le message de news:
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



Avatar
J
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" a écrit dans le message de news:
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




Avatar
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

JB
http://boisgontierjacques.free.fr



On 14 sep, 22:53, "Fred" wrote:
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


Avatar
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 wrote:
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" wrote:



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 -



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


"JB" a écrit dans le message de news:

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 wrote:
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" wrote:



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 -