VBA Remplacer valeur selon couleur de celulle

Résolu/Fermé
VBActor - Modifié par VBActor le 1/06/2011 à 10:45
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
- 1 juin 2011 à 11:48
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

5 réponses

melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
1 juin 2011 à 11:13
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
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
1 juin 2011 à 11:17
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
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 695
1 juin 2011 à 11:20
Salut melanie,
Joli code ;-)
Bonne journée
0
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
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
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
1 juin 2011 à 11:32
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
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
1 juin 2011 à 11:33
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
Ca fonctionne ! Merci beaucoup pour le code :)
0
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
149
1 juin 2011 à 11:48
re rien juste indique que le sujet est clos!
0