Supprimer le texte en couleur

  • Initiateur de la discussion Initiateur de la discussion Garamante
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

Garamante

Guest
Salut,


je voudrais savoir si il est possible de supprimer du texte en couleur dans une chaîne de caractère. Je m'explique...

J'ai l'habitude de copier les définitions de mon dictionnaire d'anglais pour les coller dans Excel (à l'aide de fonctions diverses il fait un tri automatique dans la définition et récupère ce que je veux afin de l'intégrer dans le logiciel d'apprentissage Anki). Mais certaines lignes me sont inutiles et elles sont toujours de la même couleurs. Je voudrais donc savoir si il est possible de les supprimer.

Merci pour votre aide !
 

Pièces jointes

Re : Supprimer le texte en couleur

Bonjour Garamante, le fil, le forum


Si j'ai bien compris ta demande, essaie ceci

VB:
Sub Macro1()
' Macro enregistrée le 20/01/2012 par l’agrafe
Selection.Replace _
        What:="~[ * ~]", Replacement:="", _
        LookAt:=xlPart, _
        SearchOrder:=xlByRows, _
        MatchCase:=False, _
        SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

PS: Tu peux d'abord faire cela "à la mimine" 😉 (sans macro).
En allant dans le menu :Édition
Choisir : Remplacer avec ce critère de de recherche : ~[ * ~]
(Pour faire le tilde*, appuyez simultatément sur : ALT Gr et 2
(pas le 2 du clavier numérique mais le 2 au dessus de la touche A)

*: tilde = ~

EDITION: Bonjour 00 😉, matinale ce matin ?
 
Dernière édition:
Re : Supprimer le texte en couleur

Bonjour, Garamante, Staple1600 🙂, le Forum,

Une autre interprétation du besoin 😕 :

VB:
Option Explicit
Sub Lignes_supprimer()
Dim I As Long
Application.ScreenUpdating = 0
Columns("A:A").Insert
Range("a1:a" & Range("b65536").End(xlUp).Row) = "=LEFT(RC[1],1)"
Columns("B:B").Copy
Columns("A:A").Select
Selection.PasteSpecial Paste:=xlPasteFormats
For I = Range("a65536").End(xlUp).Row To 1 Step -1
If Range("A" & I).Font.ColorIndex = 5 Then Rows(I).Delete
Next
Columns("A:A").Delete
Range("a1").Select
Application.ScreenUpdating = 1
End Sub

A bientôt 🙂
 
Re : Supprimer le texte en couleur

Re


00
Je crois que ton interprétation est la bonne
Tu me permettras, j'en suis sur 😉, de proposer une version "déselectée" de ton code fort judicieux au demeurant.
VB:
Sub Lignes_supprimerSansSelect()
    'code d'origine: 00
    Dim DerLig&, I&
    Application.ScreenUpdating = 0
    DerLig = Range("A65536").End(xlUp).Row
    Columns("A:A").Insert
    Range("A1").Resize(DerLig).FormulaR1C1 = "=LEFT(RC[1])"
    Columns("B:B").Copy
    Columns("A:A").PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = 0
    For I = DerLig To 1 Step -1
    If Range("A" & I).Font.ColorIndex = 5 Then Rows(I).Delete
    Next
    Columns("A:A").Delete
    Range("A1").Select ' celui-la, je laisse ;)
    Application.ScreenUpdating = -1
    End Sub

PS: Pour info:
Chez Monsieur VBA (et ailleurs aussi je crois)
True = -1 et False = 0
(Oui je sais à moi aussi ca fait bizarre, intuitivement je pensais que True=1 😉

EDITION: Merci 00, de m'avoir signalé la scorie de l'équote
Bonne journée à toi
et A+ sur XLD..... Pfffffff....faut que j'aille au turbin 😡
 
Dernière édition:
Re : Supprimer le texte en couleur

Re-bonjour,

... Tu me permettras, j'en suis sur...

Tu es sûr, à raison, et je te remercie 😀 de t’être permis de « déselectée » mon gribouillage 😱 !

Attention, il reste encore ceci dans le code :

attachment.php

A bientôt 🙂🙂
 

Pièces jointes

  • Cryptage.JPG
    Cryptage.JPG
    13.8 KB · Affichages: 275
Re : Supprimer le texte en couleur

whoa magnifique ;o) ça marche nickel. Je suis un utilisateur lambda d'Excel et je n'ai jamais vraiment pris le temps d'approfondir mes connaissances sur le sujet (d'autres choses qui me pasionnent plus encore) mais je reste toujours soufflé par les possibilités de ce logiciel: il peut tout faire... Merci les gars !!!
 
Re : Supprimer le texte en couleur

ah ouai mais en fait ça supprime toute la ligne... 😱( Moi je veux supprimer que le texte en coloré, le reste je veux le garder 😱(
Une petite astuce les gars pour obtenir ce résultat ???

Merci !!!
 
Dernière édition:
Re : Supprimer le texte en couleur

Bonsoir à tous, 🙂

On passe en revue tous les caractères de toutes les cellules de la colonne A et on supprime les caractères en bleu.
Un peu long 😛

VB:
Sub Effacer_les_Caracteres_en_Bleu()
Dim C As Range, n As Integer
Application.ScreenUpdating = False
With Sheets("Feuil1")
  For Each C In .Range("A1:A" & .Range("A65536").End(xlUp).Row) ' pour chaque cellule
    If C.Value <> "" Then ' si valeur non vide
      For n = Len(C.Value) To 1 Step -1 ' pour chaque caractère du texte
        If C.Characters(Start:=n, Length:=1).Font.ColorIndex = 5 Then 'si bleu
          C.Characters(Start:=n, Length:=1).Delete 'on efface le caractère
        End If
      Next n 'caractere suivant
    End If
  Next C
End With
Application.ScreenUpdating = True
End Sub

Remplacer cette condition :
Code:
If C.Characters(Start:=n, Length:=1).Font.ColorIndex = 5 Then 'si bleu
par celle-ci
Code:
If C.Characters(Start:=n, Length:=1).Font.ColorIndex <> 1 Then 'si différent de noir
Klin89
 
Dernière édition:
Re : Supprimer le texte en couleur

Re Bonsoir 🙂

Une variante, bof 🙄
VB:
Sub Effacer_les_Caracteres()
Dim n As Integer, i As Integer
Application.ScreenUpdating = False
With Sheets("Feuil1")
  For i = 1 To .Range("A65536").End(xlUp).Row
    If .Cells(i, 1).Value <> "" Then
      For n = 1 To Len(.Cells(i, 1).Value)
        If .Cells(i, 1).Characters(n, 1).Font.ColorIndex <> 1 Then
          .Cells(i, 1).Characters(n, 1).Delete
          i = i - 1: Exit For
        End If
      Next n
    End If
  Next i
End With
Application.ScreenUpdating = True
End Sub

Klin89
 
Re : Supprimer le texte en couleur

Et si je voulais mettre en gras les lignes restantes après avoir supprimé le texte coloré -mais uniquement les lignes qui commençaient par un chiffre ? (sur les lignes où le texte est différent de noir, j'efface le texte et la chaîne de caractère restante je la mets en gras, les autres lignes ne sont pas concerné et j'effectue cette opération uniquement sur les lignes qui commençaient par un chiffre avant que la macro entre en fonctionn) Je fais comment ?
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
4
Affichages
851
M
Réponses
5
Affichages
1 K
marcenana
M
Retour