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 :

Suppression de caractère dans un String


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Par défaut Suppression de caractère dans un String
    Bonjour,

    Voici mon soucis :
    Dans mon application que je développe en VBA Excel 2007, l'utilisateur peut créer un dossier à partir du code en cliquant sur un bouton.
    Une Application.Inputbox apparait pour pouvoir entrer le nom du dossier à créer (le chemin reste toujours le même et donc je l'ai codé en dur).
    Seulement voilà.. il est interdit (et même impossible) de nomer un dossier avec certain caractère (p.ex: \ /:*?"<>|).
    J'aimerais donc, en fonction du nom taper dans le inputbox supprimer ces caractères si l'utilisateur l'a fait !!

    Merci pour votre solution et vos idées.

    OS : Windows XP
    Office : 2007

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 104
    Par défaut
    Salut,
    Voilà ce que j'utilise :
    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
    30
    31
    Function Normalise(Machaine As String) As String
    Dim w As String
    w = Remplace(Machaine, "'", "")
    w = Remplace(w, " ", "_")
    w = Remplace(w, "/", "_")
    w = Remplace(w, "\", "_")
    w = Remplace(w, "*", "_")
    w = Remplace(w, "?", "_")
    w = Remplace(w, ",", "_")
    w = Remplace(w, ".", "_")
    w = Remplace(w, ":", "_")
    w = Remplace(w, "!", "_")
    w = Remplace(w, """", "_")
    w = Remplace(w, "|", "_")
    w = Remplace(w, "(", "_")
    w = Remplace(w, ")", "_")
    w = Remplace(w, "{", "_")
    w = Remplace(w, "}", "_")
    w = Remplace(w, ";", "_")
    Normalise = w
    End Function
     
    Public Function Remplace(ByVal Ou As String, ByVal Quoi As String, ByVal ParQuoi As String) As String
    Dim i As Integer
    i = InStr(Ou, Quoi)
    While i <> 0
        Ou = Left(Ou, i - 1) & ParQuoi & Mid(Ou, i + Len(Quoi))
        i = InStr(i + Len(ParQuoi), Ou, Quoi)
    Wend
    Remplace = Ou
    End Function

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu pourrais faire un truc comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim tablo
    Tablo = Array( "\ ", "/", ":", "*", "?", "<",">","|","""", ")")
    For i = 0 to Ubound(Tablo)
         if instr(NomFich, Tablo(i)) <> 0 then
             Msgbox "Les caractères tels que \ /:*?""<>|) sont défendus dans les noms de fichiers ou de dossiers !" _
                   & vbcr & "Veuillez corriger la saisie"
             exit for
         endif
    Next
    Pour reprendre la proposition de Brevan et mon tableau, tu pourrais aussi faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim tablo
    Tablo = Array( "\ ", "/", ":", "*", "?", "<",">","|","""", ")")
    For i = 0 to Ubound(Tablo)
          NomFich = Replace(NomFich, Tablo(i), "_")
    Next
    A toi de choisir

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2008
    Messages
    298
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 298
    Par défaut
    C'est nikel. Exactement ce que je cherchais..

    Bonne fin de journée !!

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

Discussions similaires

  1. Suppression un caractère dans une String
    Par adilovic dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 25/03/2013, 12h07
  2. Réponses: 4
    Dernier message: 10/10/2006, 11h14
  3. [C#]Détecter certain caractère dans un string
    Par grimsk dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/08/2006, 15h52
  4. [String] trouver caractère dans un string
    Par mariemor64 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 05/05/2006, 18h14
  5. [VBA] Un caractère dans un string
    Par Neilos dans le forum Access
    Réponses: 5
    Dernier message: 23/06/2005, 15h58

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