Automatiser le remplacement des celulles vides d'une colonne

Bonjour à tous,

J'ai une colonne présentant des cellules vides et non vides.

J'aimerais que ces cellules vides soient remplacées par un caractère, si seulement la ligne où elle se trouve comporte une variable spécifique.

Car en essayant de le faire par la condition suivante: si la selection ne prend en compte seulement les cellules actives.

Je vous transmets le fichier joint.

Merci pour votre aide !


Pardon je suis allé trop vite

la condition suivante : si à partir de F6, les cellules E sont égales à fer ou acier ou metal Alors les cellules à partir de F6 = 45

12classeur1.xlsx (8.21 Ko)

Bonjour,

En G6 essaie

=SI(ESTVIDE(F6);SI(OU(E6="fer";E6="acier";E6="metal");45);F6)

@+

Bonjour le fil, bonjour le forum,

Pfff ! une formule aussi simple. C'est juste pour m'humilier publiquement !... J'avale la couleuvre et propose la solution VBA ci-dessous (P... ! j'ai honte) :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim TM() As Variant 'déclare la variable TM (Tableau des Mots)
Dim I As Byte 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim K As Byte 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (tableau des Lignes)

Set O = Worksheets("Feuil1") 'définit l'onglet O
TV = O.Range("E6").CurrentRegion 'définit le tableau des valeurs TV
TM = Array("FER", "METAL", "MÉTAL", "ACIER") 'définit le tableau des mots TM
K = 1 'initialise K
For I = 1 To UBound(TV, 1) 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV
    ReDim Preserve TL(1 To 2, 1 To K) 'redimensionne le tableau des lignes TL (2 lignes, K colonnes)
    TL(1, K) = TV(I, 1) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV (= Transposition)
    If TV(I, 2) = "" Then 'condition : si la donnée ligne I colonne 2 de TV est vide
        For J = 0 To 3 'boucle 2 : sur les 4 mots de TM
            'si la donnée ligne I colonne 1 de TV (convertie en majuscule) est égale au mot TM(J), définit TL(2, K) = 45, sort de la boucle
            If UCase(TV(I, 1)) = TM(J) Then TL(2, K) = 45: Exit For
        Next J 'prochain mot de la boucle 2
    Else 'sinon (si la donnée ligne I colonne 2 de TV n'est pas vide)
        TL(2, K) = TV(I, 2) 'récupère dans la ligne 2 de TL la donnée en colonne 2 de TV (= Transposition)
    End If 'fin de la condition
    K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
Next I 'prochaine ligne de la boucle 1
'renvoie dans E6 redimensionnée, le tableau TL transposé
O.Range("E6").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
End Sub
Rechercher des sujets similaires à "automatiser remplacement celulles vides colonne"