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 :

Remplacement d'un caractère


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de babybell
    Homme Profil pro
    Retraité Bancaire
    Inscrit en
    Septembre 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité Bancaire
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2008
    Messages : 495
    Par défaut Remplacement d'un caractère
    Bonjour

    J'ai, dans une cellule une chaîne de caractères :

    1;;OIA;IMPRI;20090527;151120;62;18962.35;;;;;;;;;;;;;;;;;;;;

    Je voudrais par macro enlever tous les ";" qui sont en fin de chaîne.

    avec ce code, cela ne marche pas :entête est le contenu de ma cellule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        entête = ActiveCell.Value
        longueur = Len(entête)
        For Point = 1 To longueur
        droite = Right(entête, 1)
        If droite = ";" Then
        droite = ""
        End If
        Next Point
    Quelqu'un pourrait-il me venir en aide ?

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Coucou,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim temp As String
    temp = ""
     
    temp = ActiveCell.Value
    longueur = Len(temp)
    For Point = 1 To longueur
        droite = Right(temp, 1)
        If droite = ";" Then
            temp = Mid(temp, 1, (longueur - 1))
            longueur = longueur - 1
        End If
    Next
     
    ActiveCell.Value = temp
    Cela fonctionne maintenant.

    A+

  3. #3
    Membre éclairé Avatar de babybell
    Homme Profil pro
    Retraité Bancaire
    Inscrit en
    Septembre 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité Bancaire
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2008
    Messages : 495
    Par défaut
    Merci Dead78, ça fonctionne impec

    Bonne fin de journée

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 81
    Par défaut
    Regarde ce qui n'allait pas dans ta boucle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Pour point = 1
        droite = Right(entête, 1) 'droite vaut le dernier caractère de entête soit ";"
        If droite = ";" Then 'on rentre donc dans la boucle
        droite = "" 'droite passe de ";" à ""
        End If
     
    Pour point = 2
        droite = Right(entête, 1) 'droite vallait "" et vaut maintenant le dernier caractère de entête soit ";", car tu n'as pas modifié entête
        If droite = ";" Then 'on rentre donc dans la boucle
        droite = "" 'droite passe de ";" à ""
        End If
    etc etc
    Tu modifiais ta variable qui te servait à stocker le caractère de droite de entête mais tu ne modifiais jamais entête, alors forcément à la fin quand tu regarde la valeur de entête, rien n'a changé!

  5. #5
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    celui la devrait être mieu (je n'ai pas testé) (par habitude j'évite les accent dans les variable bcp de langage sont fait par les anglo saxon)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        entete = ActiveCell.Value
        longueur = Len(entête)
        For i= longueur to 1 step -1
           droite = right(entete, 1)
           If droite = ";" Then
              entete =left(entete ,len(entete)-1)
           else 
              exit for
           End If
        Next i

    edit : encore croisé, bon je file acheté ma pelote je te laisse en faire de même

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

Discussions similaires

  1. [vb.net] remplacement d'un caractère dans listbox
    Par lou87 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 30/03/2007, 14h03
  2. [C#] Remplacer le dernier caractères (REGEX)
    Par aurelien.tournier dans le forum C#
    Réponses: 2
    Dernier message: 23/10/2006, 14h59
  3. remplacer chaine de caractères
    Par taly dans le forum Langage
    Réponses: 5
    Dernier message: 20/09/2006, 14h05
  4. Recherche et remplacement d'un caractère dans Word
    Par faiglon dans le forum Access
    Réponses: 3
    Dernier message: 13/02/2006, 14h17
  5. [XSLT] Remplacer par des caractères spéciaux
    Par OXyGN dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 29/07/2005, 17h30

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