Microsoft 365 Si une cellule est vide alors

MrNathan58

XLDnaute Nouveau
Bonjour,

J’ai un problème qui me semble simple mais sur laquelle je bloque totalement :

J’aimerais écrire quelque chose du style :
If une cellule est vide Then valeur de cette cellule = “bleu” (par exemple)
Else = “vert”

Je pense devoir utiliser IsEmpty mais lorsque j’utilise IsEmpty sur une plage de donnée, la fonction cherche si TOUTE la plage est vide ou entièrement complète. (Il me semble). Hors j’aimerais qu’il me trouve si UNE cellule est vide sur ma plage.

Je ne cherche pas à savoir combien de cellule sont vides (il n'y en aura qu'une) ni où elle se trouve mais juste que la macro la trouve est lui attribue une valeur.

Est-ce possible ?

Merci par avance.
 
Solution
C
Bonjour MrNathan58

Essaye ceci ;)
VB:
Sub Test()
Dim Cel as Range
  For Each Cel In Range("A1:E10")
    If Cel.Value ="" then
      Cel.Interior.Color = RGB(128,128,128)
    End If
  Next Cel
End Sub

Une question reste en suspend, veux-tu lui attribuer la valeur "Bleu" ou la couleur !?

A+
C

Compte Supprimé 979

Guest
Bonjour MrNathan58

Essaye ceci ;)
VB:
Sub Test()
Dim Cel as Range
  For Each Cel In Range("A1:E10")
    If Cel.Value ="" then
      Cel.Interior.Color = RGB(128,128,128)
    End If
  Next Cel
End Sub

Une question reste en suspend, veux-tu lui attribuer la valeur "Bleu" ou la couleur !?

A+
 

MrNathan58

XLDnaute Nouveau
Bonjour MrNathan58

Essaye ceci ;)
VB:
Sub Test()
Dim Cel as Range
  For Each Cel In Range("A1:E10")
    If Cel.Value ="" then
      Cel.Interior.Color = RGB(128,128,128)
    End If
  Next Cel
End Sub

Une question reste en suspend, veux-tu lui attribuer la valeur "Bleu" ou la couleur !?

A+
Bonjour,
Je suis impressionné par la réactivité de ce forum c'est géniale !
ça marche ! je n'avais pas pensé à utiliser ="" XD
je cherche à lui attribuer la valeur "bleu" mais je vois comment faire à partir de la.
Merci beaucoup !
 

MrNathan58

XLDnaute Nouveau
Bonjour MrNathan58

Essaye ceci ;)
VB:
Sub Test()
Dim Cel as Range
  For Each Cel In Range("A1:E10")
    If Cel.Value ="" then
      Cel.Interior.Color = RGB(128,128,128)
    End If
  Next Cel
End Sub

Une question reste en suspend, veux-tu lui attribuer la valeur "Bleu" ou la couleur !?

A+
Et seriez vous comment faire pour fusionner les cellules avec la cellule vide d'en dessous.
If cel.value="" then
fusionne cellule vide et cellule du dessus. ?

Pour fusionner les cellules j'ai vu qu'il fallait utiliser:
ith Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = True
End With

Mais ça ne marche pas.
J'imagine que c'est parceque je ne lui dit pas quoi fusionner.
Alors j'ai essayer de rajouter: Range("A1:A10") avant mais ducoup il me fusionne toutes mes cellules en une.

Est-il possible de préciser range((cellule vide).offset(-1)) ? j'ai essayé mais ça me met une erreur.
Merci par avance.
 

Discussions similaires

Réponses
4
Affichages
198

Statistiques des forums

Discussions
312 046
Messages
2 084 839
Membres
102 686
dernier inscrit
Franck6950