Macro Sélectionner une cellule selon sa couleur

Bonjour à Tous,

J'ai un fichier (extrait en pj:

101doc-test.xlsm (55.82 Ko)

), dans lequel il y a des cellules avec des formules et d'autres sans formules (en jaune, code couleur VBA: 13434879) avec des données à entrer manuellement.

Je cherche à écrire une macro qui permettrai d'effacer le contenu des cellules en jaune. L'idée est de pouvoir rendre le document vierge en un clic sans faire péter la mise en forme et les formules.

J'ai mis en place une macro simple qui supprime le contenu de cellules fixes (cf ci-dessous). le hic c'est que dès que je modifie un peu le document il faut que je modifie manuellement la macro. ce qui s'avère problématique sur un document comportant plus de 15 feuilles et des centaines de cellules jaune

D'autant plus que je débute dans les macros, c'est pourquoi j'ai réellement besoin d'aide.

Voici la macro actuelle:

Sub EffaceContenu()

'

' EffaceContenu Macro

' Efface le contenu des cellules avec saisie manuelle (cellules jaunes)

'

' Touche de raccourci du clavier: Ctrl+e

'

Range("B2,C5,D5,C9:F9,G9,H3:I7,J4:L7,D11:E14,D16:E16,D17,E17,D19:E19,D20,D21:E24,G13:I19,G21:I24,J13:M13,J18:M24,R3,R4,R7,R8,R9,R11,R15,R16,B28:O37,B40:O49").Select

Selection.ClearContents

Range("B2").Select

Range("B2").Activate

End Sub

Merci d'avance à tous ceux qui prendront la peine de me répondre

Bonjour,

Essaie comme cela :

Sub EffaceContenu()
Dim C As Range
    Application.ScreenUpdating = False
    With Worksheets("Reference")
        .Activate
        For Each C In .UsedRange
            C.Select
            If Selection.Interior.ColorIndex = 19 Then Selection.ClearContents
        Next C
    End With
End Sub

A+

Super Frangy merci.

Je teste Lundi au taf.

J'ai vérifier, ça marche à la perfection.

Merci beaucoûp

Bonjour,

Bonn finalement après étude, la solution que tu m'a donné Frangy marche mais sur une seule feuille.

Sub EffaceContenu()

Dim C As Range

Application.ScreenUpdating = False

With Worksheets("Reference")

.Activate

For Each C In .UsedRange

C.Select

If Selection.Interior.ColorIndex = 19 Then Selection.ClearContents

Next C

End With

End Sub

Hors, mon document comporte plus de 17 feuilles qui ont biensûr toutes des noms différents.

Du coup j'ai essaye d'adapter la macro pour qu'elle s'applique sur la feuille active, ou même directement sur toutes les feuilles d'un coup.

Je cherche depuis un moment et ne trouve rien (vraiment débutante je sais).

Tu pourrais m'aider?

Bonjour,

Est-ce que toutes les feuilles du classeur doivent être traitées ?

A+

Oui

Essaie comme cela :

Sub EffaceContenu()
Dim Ws As Worksheet
Dim C As Range
    Application.ScreenUpdating = False
    For Each Ws In ActiveWorkbook.Worksheets
        If Ws.Name <> "Listes de Choix" Then
            With Ws
                .Activate
                For Each C In .UsedRange
                    C.Select
                    If Selection.Interior.ColorIndex = 19 Then Selection.ClearContents
                Next C
            End With
        End If
    Next Ws
    Application.ScreenUpdating = True
    MsgBox "Traitement terminé !"
End Sub

A+

CA MARCHE! ça marche du tonnerre!!

voici ce que j'ai fait

Sub EffaceContenu()
'
' EffaceContenu Macro
' Permet d'effacer tous le contenu de la feuille sauf les case d'en tête
'
' Touche de raccourci du clavier: Ctrl+e
'
    'Définie ws en tant que Feuille
    Dim ws As Worksheet
    'Défini C en tant que gamme
    Dim C As Range
        'Sans mise à jour de l'ecran
        Application.ScreenUpdating = False
        'Pour chaque ws en tant que feuille du classeur actif
        For Each ws In ActiveWorkbook.Worksheets
            'Avec ws
            With ws
                'Activée
                .Activate
                'pour chaque C de gamme
                For Each C In .UsedRange
                    'Sélectionne C
                    C.Select
                    'Si l'Index de couleur de la selection est 19 Alors
                    If Selection.Interior.ColorIndex = 19 Then
                    'Efface le contenu de la sélection
                    Selection.ClearContents
                    'Fin de Si
                    End If
                'Passe à la sélection C suivante
                Next C
            'Fin de With
            End With
    'Passe à la feuille suivante
    Next ws
    'Met à jour l'écran
    Application.ScreenUpdating = True
    'Active la feuille: référence
    ActiveWorkbook.Worksheets("Reference").Activate
    'Affiche ce message en fin d'exécution
    MsgBox "Traitement terminé !"
End Sub

Merci infiniment, non seulement tu me débloque la situation mais en pklus tu me pertme d'apprendre.

C top!! Je suis vraiment trop contente

A+

Rechercher des sujets similaires à "macro selectionner couleur"