VBA Remplacer valeur selon couleur de celulle

Résolu
VBActor -  
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je cherche une solution VBA pour résoudre le problème suivant : j'ai une zone de cellule qui est sélectionnée. A l'intérieur de celle-ci j'ai des cellules bleues, et des cellules blanches (sans aucun contenu pour les 2). J'aimerais que ma macro me remplace le vide ("") par des "1" uniquement pour les cellules blanches.

Pouvez-vous m'aider ?

Merci d'avance
A voir également:

5 réponses

melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
bonjour,

comment ta zone est elle sélectionnée??
Si c'est manuellement, je ne crois pas que ce soit pas possible.
par contre si la sélection peut se faire par la macro, je sais faire.
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Re,

essaie ca :

Sub SelectionEtConcatenation()

Dim Plage As Range, Cel As Range


Set Plage = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)

For Each Cel In Plage


If Cel.Interior.ColorIndex = xlNone Then
Cel.Value = 1
End If
Next

End Sub
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut melanie,
Joli code ;-)
Bonne journée
0
VBActor
 
Je sélectionne ma zone comme suit :

Cells.Find("1° trimestre").Activate
ActiveCell.Offset(2, 0).Select
ActiveCell.CurrentRegion.Select

Ainsi la zone que je souhaite sélectionner est activée...et donc l'idée c'est de modifier uniquement les cellules blanches de cette zone.

Merci pour la réponse en tout cas, je vais tester ça
0
VBActor
 
Ca marche très bien mais comment puis-je faire pour ne pas que ça me pose la question de la zone à sélectionner (mais que ça me prenne automatiquement la zone qui est activée) ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
Re,

alors le code est plutôt :


Cells.Find("1° trimestre").Activate
ActiveCell.Offset(2, 0).Select
Set tbl = ActiveCell.CurrentRegion

For Each cel In tbl
If cel.Interior.ColorIndex = xlNone Then
cel.Selection = 1
End If
Next
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
jai fait une petite erreur, c plutot :
Cells.Find("1° trimestre").Activate
ActiveCell.Offset(2, 0).Select
Set tbl = ActiveCell.CurrentRegion

For Each cel In tbl
If cel.Interior.ColorIndex = xlNone Then
cel.value = 1
End If
Next
0
VBActor
 
Ca fonctionne ! Merci beaucoup pour le code :)
0
melanie1324 Messages postés 1504 Date d'inscription   Statut Membre Dernière intervention   155
 
re rien juste indique que le sujet est clos!
0