Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 VBA - Remplacer cellule vide avec conditions

cardi

XLDnaute Junior
Bonjour à tous,

Etant complément débutant en VBA, je demande votre aide.

J'ai trouvé une macro pour remplacer les cellules vide par une valeur :

VB:
Sub CelluleVide()
Dim plage As Range
        Set plage = [E9:E3000]
        For Each cell In plage
        If IsEmpty(cell) Then cell.Value = "Ressource"
    Next
End Sub


Par contre j'aimerai ajouter une condition, pour remplacer la cellule vide par le mot "Ressource", il faut que la cellule soit vide et que la cellule dans la colonne C ne soit pas vide.

Exemple :

C2 = Vide et E2 = Vide -> Alors on ne touche pas à E2
C3 = "dsqdsq" et E3 = Vide -> Alors on remplace E3 par "ressource"
C4 = "sqlazl" et E4 = "fmqmfp" -> Alors on ne touche à rien


Merci d'avance,

Cardi
 

Ikito

XLDnaute Occasionnel
Bonjour cardi,

Il manque un cas, quand E2 est Vide et E3 n'est pas vide. Je n'ai donc pas traité ce cas.
Tu trouveras un fichier test joint.

VB:
Sub RemplacerCell()

For i = 9 To 3000 'Correspond à ta plage E9:E3000
    If (Cells(i, "C") <> "" And Cells(i, "E") = "") Then
        Cells(i, "E") = "ressource"
    End If
Next

End Sub
 

Pièces jointes

  • cardi.xlsm
    14.2 KB · Affichages: 3

mapomme

XLDnaute Barbatruc
Bonjour à tous,

Autre méthode avec une seule écriture:
VB:
Sub test()
Dim t, i&
  With ActiveSheet.Range("c9:e3000")
    t = .Value
    For i = 1 To UBound(t)
      If Len(t(i, 1)) <> 0 And Len(t(i, 3)) = 0 Then t(i, 3) = "Ressource"
    Next i
    .Columns(3) = Application.Index(t, 0, 3)
  End With
End Sub
 

Discussions similaires

  • Résolu(e)
Microsoft 365 FORMULE Excel VBA
Réponses
17
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…