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 :

Méthode Replace : ajoute un blanc impossible à supprimer


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Par défaut Méthode Replace : ajoute un blanc impossible à supprimer
    Bonjour à tou(te)s,

    Après avoir importé des données généalogiques d'un autre fichier Excel, je souhaite remplacer tous les caractères majuscules accentués par leur équivalent non-accentué.
    Ex. "Élise" doit devenir "Elise"

    Mon problème c'est que je me retrouve avec " Elise", donc précédé d'un blanc. Quand j'essaie de supprimer le blanc manuellement, cela s'avère impossible, un fois que j'ai tapé Enter, le blanc revient.

    Voici le code utilisé :
    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
     
    Sub RemplMajAcc()
        Dim myarray, myreplace
        Dim i As Integer
        Dim SH
        Dim rng As Range
        Dim LastRow
     
        myarray = Array("É", "È", "À", "Û", "Ô", "Ö", "Ç", "Â", "Ù", "Ü", "Ä", "Ê", "Ë", "Î", "Ï")
        myreplace = Array("E", "E", "A", "U", "O", "O", "C", "A", "U", "U", "A", "E", "E", "I", "I")
     
        For Each SH In Worksheets
            For i = 0 To UBound(myarray)
                SH.Cells.Replace What:=myarray(i), Replacement:=myreplace(i), LookAt:=xlPart, _
                              SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
                              ReplaceFormat:=False
            Next
     
           ...
    S'il n'y a pas de remplacement, il n'y a pas de blanc non plus.

    Je suis a quia. Pouvez-vous m'aider ?

    Merci d'avance et bon w-e.

    Philippe

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    j'ai essayé ton code, je n'ai pas d'espace

    j'ai ajouté des espaces manuellement

    et en ajoutant ceci dans ton code je les suppriment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       SH.Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
                              SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
                              ReplaceFormat:=False

  3. #3
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    ce n'est certes pas le code que tu montres qui ajoutes cet espace. Ce qui veut dire qu'il se trouvait déjà là et qu'il est, lui, à traiter par une autre instruction distincte (l'instruction Trim, par exemple, s'il s'agit d'un espace "normal").

  4. #4
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Par défaut
    Citation Envoyé par unparia Voir le message
    Bonjour
    ce n'est certes pas le code que tu montres qui ajoute cet espace. Ce qui veut dire qu'il se trouvait déjà là et qu'il est, lui, à traiter par une autre instruction distincte (l'instruction Trim, par exemple, s'il s'agit d'un espace "normal").
    Bonjour,
    Il n'était pas là, j'ai déjà effacé et recommencé, le résultat est le même. Si je prends une autre ligne où le prénom est par ex. "Marie" et que je le remplace par 'Élisabeth", puis que je fais tourner ma moulinette, je me retrouve sur cette ligne-là avec " Elisabeth". C'est donc chaque fois qu'il y a remplacement d'une initiale accentuée que le problème se présente.
    J'ai déjà essayé TRIM() et ça ne change rien
    Merci de vouloir m'aider.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Ce n'est (j'insiste) en tout état de cause pas le code que tu montres qui a jouté cet "espace".
    Il n'est probablement pas un espace réel, mais :
    - soit un espace insécable ( chr(16o) ) alors ainsi supprimable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ta_chaine = replace(ta_chaine, chr(160), "")
    soit un caractère non imprimable, que tu peux alors éliminer comme précisé à la rubrique WorksheetFunction.Clean, méthode de ton aide interne VBA.
    Une chose est certaine : ces données sont très probablement issues de l'exploitation de données externes (importation).

  6. #6
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Par défaut
    Citation Envoyé par unparia Voir le message
    Ce n'est (j'insiste) en tout état de cause pas le code que tu montres qui a jouté cet "espace".
    Il n'est probablement pas un espace réel, mais :
    - soit un espace insécable ( chr(16o) ) alors ainsi supprimable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ta_chaine = replace(ta_chaine, chr(160), "")
    soit un caractère non imprimable, que tu peux alors éliminer comme précisé à la rubrique WorksheetFunction.Clean, méthode de ton aide interne VBA.
    Une chose est certaine : ces données sont très probablement issues de l'exploitation de données externes (importation).
    Bonjour,
    Effectivement, ces données proviennent d'un import de fichiers Excel externes de diverses versions.
    Je vais essayer ce que tu proposes et je reviens vers toi.
    Merci et bon dimanche.

  7. #7
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2013
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2013
    Messages : 14
    Par défaut
    Citation Envoyé par a_diard Voir le message
    Bonjour

    j'ai essayé ton code, je n'ai pas d'espace

    j'ai ajouté des espaces manuellement

    et en ajoutant ceci dans ton code je les suppriment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       SH.Cells.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
                              SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
                              ReplaceFormat:=False
    Bonjour et merci,
    Ce code va me supprimer tous les espaces et ce n'est pas ce que je veux.
    Si c'était un espace "normal", qu'on peut effacer, je m'en serais sorti, mais ici, il ne réagit pas comme un simple espace.

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/11/2015, 02h56
  2. Relations à priori impossible à supprimer !
    Par DeFCrew dans le forum Access
    Réponses: 16
    Dernier message: 20/06/2006, 10h00
  3. dossier impossible à supprimer
    Par afrikha dans le forum Ordinateurs
    Réponses: 5
    Dernier message: 31/10/2005, 15h29
  4. Virus Trojan.vundo.b impossible à supprimer
    Par ultrabody dans le forum Sécurité
    Réponses: 5
    Dernier message: 30/04/2005, 15h47
  5. Réponses: 4
    Dernier message: 18/11/2003, 16h08

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