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 :

supprimer des caractères dans une cellule excel sur critère de format


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    DAF
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : DAF

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut supprimer des caractères dans une cellule excel sur critère de format
    Bonjour à tous,

    j'ai des cellules contenant du texte dont certains mots sont en couleur et en gras.
    > Je souhaite supprimer les mots (les caractères) en couleur et gras.

    J'ai trouvé comment identifier la couleur de la police au niveau d'une cellule.
    Par contre, je ne sais pas identifier la couleur de chaque caractère dans la cellule.

    Avez-vous une solution ?
    Merci à tous par avance,

  2. #2
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut supprimer des caracteres
    Bonjour,

    Utilise la fonction characters() dans une boucle sur la longueur du mot

    Ce qui devrait donner quelque chose de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dim cellule as range
    for each cellule dans (selection à préciser)
       for i = 1 to len(range(cellule))
           if range(cellule).Characters(i, 1) 'mettre les conditions (different de gras ou couleur) then
              cellule.value =  cellule.value + mid(range(cellule).value,i,1)
           end if
       next i
    next
    Cordialement,

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    Une piste...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        For I = 1 To Len(ActiveCell.Text)
            If ActiveCell.Characters(I, 1).Font.Bold Then
                MsgBox "Le " & I & "e caractère est gras"
            End If
            If ActiveCell.Characters(I, 1).Font.Color <> 0 Then
                MsgBox "Le " & I & "e caractère est coloré"
            End If
        Next
    Il te reste à effacer le mot trouvé... Ça prendrait une boucle pour vérifier les caractères suivants, éventuellement jusqu'au prochain espace ou la fin de la chaîne...
    MPi²

  4. #4
    Candidat au Club
    Femme Profil pro
    DAF
    Inscrit en
    Janvier 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : DAF

    Informations forums :
    Inscription : Janvier 2014
    Messages : 3
    Points : 4
    Points
    4
    Par défaut çà fonctionne !
    cela fonctionne très bien.
    J'ai pris la solution suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    texte = ActiveCell.Value
             For j = 1 To Len(texte)
             If ActiveCell.Characters(j, 1).Font.Bold = False Then
                   nouv_texte = nouv_texte + Mid(texte, j, 1)
             End If
             Next j
    Merci à vous deux.

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

Discussions similaires

  1. Supprimer des caractères dans une chaine
    Par bahamut100 dans le forum Langage
    Réponses: 3
    Dernier message: 12/02/2009, 10h25
  2. Supprimer des espace dans une cellules
    Par FCL31 dans le forum Excel
    Réponses: 3
    Dernier message: 01/08/2008, 17h45
  3. Supprimer des caractères dans une cellule
    Par freyliss dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/08/2007, 14h02
  4. limite Caractère dans une cellule Excel 2000
    Par Vetchostar dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/03/2007, 14h36
  5. [Tableaux] Supprimer des caractères dans une chaine
    Par ddubois dans le forum Langage
    Réponses: 10
    Dernier message: 16/12/2006, 13h53

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