Si cellule de couleur, alors remplacer valeur p/ 0

  • Initiateur de la discussion Totor
  • Date de début
T

Totor

Guest
Bonjour le forum,


Mon problème :

J'ai plusieurs grandes bases de données. Mes formules sont écrites avec une police noire et mes données avec une police bleue. Je cherche une macro me permettant d'avoir une base de donnée vierge.
Je voudrais effacer toutes les données (valeurs numériques) écrites en bleues et les remplacer par 0.

Quelqu'un peut il m'aider à écrire la bonne macro sachant que je suis plus prêt du niveau zéro que du niveau débutant.

Merci

Bonne fin de journée

Salut,

Totor
 

titcoeur

XLDnaute Occasionnel
Bonjour Totor



Tu peux faire ceci :


1) Nommer toute la zone à traiter en l'appelant 'Zone'

(via menu, insérer-Nom)

si tu ne vois pas, demande, on fera plus en détail


2) code VBA

Sub test()

Dim zone As Range
Set zone = Range('zone')

For Each cell In zone
If cell.Font.ColorIndex = 5 Then
cell.Value = 0
End If
Next

End Sub

Dis moi si ça te va ??

A+
 
T

thierry

Guest
sub nomdetamacro ()

sheets('feuil1').select /là tu selectionne la feuille dans laquelle tu dois bosser
Range('B7').select/là tu selectionne la premiere cellule de la colonne qui t'interresse j'ai pris B7

Dim dercell As String/tu définis dercell (derniere cellule) en string (chaine de caractère)
dercell = Range('B7').End(xlDown).Address

If isempty(activecell)=false then
if activecell.Font.ColorIndex = 5 then
activecell.value=0
end if
activecell.offset(1,0).select
Else exit sub
end if

endsub
essaies ca si tu as besoins info yara toujours quelmqu'un...
 
T

Totor

Guest
Rebonjour Forum,

Merci titcoeur, ça marche parfaitement.

Je voudrais juste résumer ta macro pour savoir si j'ai bien compris.

Sub test()

Dim zone As Range
Set zone = Range('zone')
Tu dis à la macro de travailler dans toutes les cellules comprises dans 'zone'.

For Each cell In zone
If cell.Font.ColorIndex = 5 Then
cell.Value = 0
Si la couleur est 5 (correpond à la couleur bleue), alors mettre 0 comme valeur

End If
Next
Par contre, je ne comprends pas l'utilité du end if et du next


Désolé Thierry. J'ai utilisé la réponse de Titcoeur; Pour être honnête, elle me paraissait moins complexe pour un grouillot comme moi.

Merci encore

Ciao

Totor
 

boudoula

XLDnaute Nouveau
Bonjour,

je me permet de repondre sur l'utilité du next e du end if.
Lorsque tu utilise une for il faut la fermée par un next
Idem pour la fonction If il faut la fermée par un end if
C'est l'info pour dire à la boucle de continuer jusqu'a ce point
 

titcoeur

XLDnaute Occasionnel
:whistle:
Boudoula a parfaitement répondu à la question. Rien à ajouter de ce côté.

Par contre totor, petit truc : si tu veux connaitre d'autres codes couleur pour faire des variantes à cette macro, tu peux

1) lancer l'enregistreur de macro
2) faire tout ce qui te passe par la tête au niveau couleur de police, couleur de fond, ....
3) arrêter l'enregistrement
4) aller lire le code correspondant dans la macro enregistrée.


A+
 

Discussions similaires

Statistiques des forums

Discussions
312 389
Messages
2 087 901
Membres
103 676
dernier inscrit
Haiti