Afficher texte si cellule à côté remplie

Jujusyl72 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   - 9 oct. 2018 à 10:48
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.


A voir également:

4 réponses

PHILOU10120 Messages postés 6433 Date d'inscription   Statut Contributeur Dernière intervention   822
 
Bonjour

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

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

0
Jujusyl72 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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
Jujusyl72 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
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