Afficher texte si cellule à côté remplie

Bonjour,

Je cherche à inscrire automatiquement un texte dans une cellule seulement si celle à gauche est remplie.

Je m'explique, si les cellules C6 à C32 contiennent n'importe quel caractères ou un texte, j'aimerais inscrire dans la cellule correspondante à droite (D6 à D32) le texte "A Faire".
SI la cellule Cx est vide, bien évidemment ne rien faire.

Dans l'état actuel, j'ai réussi à inscrire automatiquement dans les cellules D6 à D32 "A faire" lorsqu'elle est vide.

Merci de votre aide.

4 réponses

  1. Bonjour

    Mettre cette formule en C6 et la tirer jusqu'à la ligne 32

    =SI(C6<>"";"à faire";"")
    1
    1. Contributeur
      euh.... en D6, la formule!

      0
      1. Merci, ça je sais faire, du coup j'aurais voulu une macro.

        Actuellement j'en ai une qui me remplit les cellules de C6àC32, si elles sont vides, la mention à faire vient, et réapparait lorsque l'on efface le contenu.
        0
        1. Contributeur
          Bonjour,

          Voir ici pour faire une boucle sur les cellules concernées

          https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/

          allez sur la feuille concernée faire Alt F11 pour accèder à l'éditeur et coller ceci:

          Option Explicit
          'https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
          Private Sub Worksheet_Change(ByVal Target As Range)
          If Not Intersect(Target, Range("C6:C32")) Is Nothing Then
          For_X_to_Next_Ligne
          End If
          End Sub
          Sub For_X_to_Next_Ligne()
          Dim FL1 As Worksheet, NoCol As Integer
          Dim NoLig As Long, Var As Variant
              Set FL1 = Worksheets("Feuil1")
              NoCol = 3 'lecture de la colonne C
              For NoLig = 6 To 32 'Split(FL1.UsedRange.Address, "$")(4)'dernière ligne
                  Var = FL1.Cells(NoLig, NoCol)
                    If Var = "" Then
                     FL1.Cells(NoLig, NoCol + 1) = ""
                  Else
                  FL1.Cells(NoLig, NoCol + 1) = "A faire"
                  End If
              Next
              Set FL1 = Nothing
          End Sub
          
          

          0
          1. Merci, ça fonctionne au top.

            Y a-t'il un moyen d'automatiser le lancement de la macro à l'ouverture du fichier au lieu de devoir la lancer à chaque modification?
            0
          2. Contributeur
            bien sur en mettant le code dans ThisWorkbook comme ceci:

            Option Explicit
            Private Sub Workbook_Open()
            For_X_to_Next_Ligne
            End Sub
            Sub For_X_to_Next_Ligne()
            Dim FL1 As Worksheet, NoCol As Integer
            Dim NoLig As Long, Var As Variant
                Set FL1 = Worksheets("Feuil1")
                NoCol = 3 'lecture de la colonne C
                For NoLig = 6 To 32 'Split(FL1.UsedRange.Address, "$")(4)'dernière ligne
                    Var = FL1.Cells(NoLig, NoCol)
                      If Var = "" Then
                       FL1.Cells(NoLig, NoCol + 1) = ""
                    Else
                    FL1.Cells(NoLig, NoCol + 1) = "A faire"
                    End If
                Next
                Set FL1 = Nothing
            End Sub
            


            mais il ne se déclenchera qu'à l'ouverture!
            a toi de voir
            @+
            0