Afficher texte si cellule à côté remplie

Jujusyl72 Messages postés 3 Statut Membre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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. PHILOU10120 Messages postés 6463 Date d'inscription   Statut Contributeur Dernière intervention   835
     
    Bonjour

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

    =SI(C6<>"";"à faire";"")
    1
  2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
     
    euh.... en D6, la formule!

    0
  3. Jujusyl72 Messages postés 3 Statut Membre
     
    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
  4. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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. Jujusyl72 Messages postés 3 Statut Membre
       
      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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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