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 :

[VBA E] Characters et couleurs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut [VBA E] Characters et couleurs
    Bonjour le forum,
    Voila j'ai du texte avec plusieurs lettres en couleur ou lettre barrée.
    Je modifie les caractères rouge en bleu et les autres couleurs en noir
    Cela fonctionne avec mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub remplacelacouleur() 
    For i = 1 To 50
     
    If Selection.Characters(i, 1).Font.ColorIndex = 3 Then
    Selection.Characters(i, 1).Font.ColorIndex = 5
    Else:
    Selection.Characters(i, 1).Font.ColorIndex = 0
    End If
     
    Next i
    End Sub
    Mon premier problème et je voudrais supprimer mes characters barré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Selection.Characters(i, 1).Font.Strikethrough = True then ?????
    Mon deuxième problème est que je voudrais pouvoir la faire tourner sur une plage de cellule.

    Merci d'avance pour vos pistes
    Bruno

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    sans aller chercher très loin et sans avoir testé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Selection.Characters(i, 1).Font.Strikethrough = True then Selection.Characters(i, 1).delete
    quand a tourner sur une plage de cellule, je ne comprend pas la question

  3. #3
    Membre éclairé Avatar de ancel17
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Mars 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Bidouilleur

    Informations forums :
    Inscription : Mars 2007
    Messages : 312
    Par défaut
    pour le faire tourner sur une plage de cellule en supposant que la plage soit sélectionnée, tu peux tenter ça :

    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 c As Range
     
    For Each c In Selection.Cells
        For i = 1 To 50
            If c.Characters(i, 1).Font.ColorIndex = 3 Then
                c.Characters(i, 1).Font.ColorIndex = 5
            Else
                c.Characters(i, 1).Font.ColorIndex = 0
            End If
            If c.Characters(i, 1).Font.Strikethrough = True Then
                c.Characters(i, 1).delete
            End If
        Next i
    Next

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour
    la boucle for i = 1 to .... n est pas necessaire
    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 c As Range
     
    For Each c In Selection.Cells    
            If c.Characters.Font.ColorIndex = 3 Then
                c.Characters.Font.ColorIndex = 5
            Else
                c.Characters.Font.ColorIndex = 0
            End If
            If c.Characters.Font.Strikethrough = True Then
                c.Characters.delete
            End If
     
    Next c

  5. #5
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonsoir à tous,

    je n'ai pas testé la macro, mais il me semble qu'il faut faire une boucle du dernier caractère au premier avec Step - 1.

    Exemple sans Step - 1
    1234 (imaginez le souligné comme un barré)

    si je supprime le 2nd caractère, je passe au 3è qui n'est pas 3 mais 4; le 3 barré n'est pas supprimé.

    Pour moi le bon code est le suivant.

    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
    Dim c As Range
     
    For Each c In Selection.Cells
        For i = c.Characters.Count To 1 Step -1
     
            If c.Characters(i, 1).Font.ColorIndex = 3 Then
                c.Characters(i, 1).Font.ColorIndex = 5
            Else
                c.Characters(i, 1).Font.ColorIndex = 0
            End If
            If c.Characters(i, 1).Font.Strikethrough = True Then
                c.Characters(i, 1).Delete
            End If
        Next i
    Next c
    cordialement
    fred65200

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    juste manière de participer
    Citation Envoyé par fred
    si je supprime le 2nd caractère, je passe au 3è qui n'est pas 3 mais 4.
    en fait
    si je supprime le 2nd caractère, je passe au 3è qui n'est pas 3 mais 2.
    ou
    si je supprime le 2nd caractère, je passe au 4è qui n'est pas 4 mais 3.

Discussions similaires

  1. [VBA-A] Changer la couleur d'une ligne en datasheet
    Par nuriel2 dans le forum VBA Access
    Réponses: 1
    Dernier message: 31/03/2006, 12h14
  2. [VBA-W] Mettre des couleurs ds un label
    Par jagdjg dans le forum VBA Word
    Réponses: 6
    Dernier message: 30/03/2006, 15h19
  3. [VBA-E]changer la couleur des onglets
    Par xavier_claustres dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/02/2006, 14h45
  4. [VBA EXCEL] changer la couleur du texte de cellules
    Par dume75 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/02/2006, 23h08
  5. [VBA-E] Chartspace : définir couleur d'une série
    Par alexxx69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/10/2005, 21h57

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