IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour alerter en cas d'utilisation de caractères spéciaux [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : technicien qualité

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut Macro pour alerter en cas d'utilisation de caractères spéciaux
    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

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    985
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 985
    Par défaut
    Bonjour, à mettre dans un module standard, la vérification se fait quand une cellule est modifiée et ce dans tout le classeur.

    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
    Appel de la macro via l'évènement:

    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

  3. #3
    Membre du Club
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : technicien qualité

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    merci beaucoup de votre retour , je vais essayer

  4. #4
    Membre du Club
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : technicien qualité

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    Cela fonctionne très bien

    encore merci beaucoup

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 137
    Billets dans le blog
    53
    Par défaut
    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 sur et 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

  6. #6
    Membre du Club
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : technicien qualité

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    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
    je vais regarder , merci beaucoup !!!

  7. #7
    Membre du Club
    Homme Profil pro
    technicien qualité
    Inscrit en
    Octobre 2023
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Allier (Auvergne)

    Informations professionnelles :
    Activité : technicien qualité

    Informations forums :
    Inscription : Octobre 2023
    Messages : 6
    Par défaut
    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

  8. #8
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    985
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 985
    Par défaut
    Citation Envoyé par Did0380 Voir le message
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MACRO pour alerte mail
    Par joffreytex dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/09/2018, 15h34
  2. Réponses: 2
    Dernier message: 06/07/2016, 13h35
  3. Réponses: 13
    Dernier message: 09/12/2014, 16h20
  4. Réponses: 4
    Dernier message: 15/02/2012, 08h23
  5. Réponses: 3
    Dernier message: 26/02/2010, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo