Bonjour tout le monde,
je cherche une macro qui lance une alerte ou MSGBOX en cas d'utilisation de caractères spéciaux / \ : * ? " | <> dans une cellule excel
Merci beaucoup de votre aide
Bonjour tout le monde,
je cherche une macro qui lance une alerte ou MSGBOX en cas d'utilisation de caractères spéciaux / \ : * ? " | <> dans une cellule excel
Merci beaucoup de votre aide
Bonjour, à mettre dans un module standard, la vérification se fait quand une cellule est modifiée et ce dans tout le classeur.
Appel de la macro via l'évènement:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Public Sub CheckCaracteresSpeciaux(Target As Range) Dim specialChars As String Dim cell As Range Dim char As String ' Liste des caractères spéciaux à surveiller specialChars = "/\:*?""|<>" ' Vérification seulement pour la cellule modifiée For Each cell In Target ' Vérification seulement pour les cellules non vides If Not IsEmpty(cell.Value) Then ' Boucle à travers chaque caractère de la cellule For i = 1 To Len(cell.Value) char = Mid(cell.Value, i, 1) ' Vérification si le caractère est dans la liste des caractères spéciaux If InStr(specialChars, char) > 0 Then ' Affiche une alerte si un caractère spécial est trouvé MsgBox "Alerte ! Caractère spécial trouvé dans la cellule " & cell.Address & ": " & char ' Met fin à la boucle si un caractère spécial est trouvé Exit For End If Next i End If Next cell End Sub
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) CheckCaracteresSpeciaux Target End Sub
merci beaucoup de votre retour , je vais essayer![]()
Cela fonctionne très bien
encore merci beaucoup![]()
Bonjour,
On peut également créer une fonction renvoyant True ou False. Voir cette discussion sur le même sujet Caractères interdits dans nom de fichier
Philippe Tulliez
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer suret si celle-ci est pertinente pensez à voter
Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier
J'ai juste une question ,j'ai une cellule où la date s'agrémente en automatique et justement ça me bloque avec la macro vu que j'ai des / dedans est il possible d'enlever cette cellule de la macro ???
car pour les reste ça fonctionne très bien
On peut exclure une cellule de la vérification comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 Public Sub CheckCaracteresSpeciaux(Target As Range) Dim specialChars As String Dim cell As Range Dim char As String ' Liste des caractères spéciaux à surveiller specialChars = "/\:*?""|<>" ' Vérification seulement pour la cellule modifiée For Each cell In Target ' Exclure la vérification si la cellule est A1 (ou toute autre cellule que tu veux exclure) If cell.Address <> "$A$1" Then ' Vérification seulement pour les cellules non vides If Not IsEmpty(cell.Value) Then ' Boucle à travers chaque caractère de la cellule For i = 1 To Len(cell.Value) char = Mid(cell.Value, i, 1) ' Vérification si le caractère est dans la liste des caractères spéciaux If InStr(specialChars, char) > 0 Then ' Affiche une alerte si un caractère spécial est trouvé MsgBox "Alerte ! Caractère spécial trouvé dans la cellule " & cell.Address & ": " & char ' Met fin à la boucle si un caractère spécial est trouvé Exit For End If Next i End If End If Next cell End Sub
Partager