Mfc si non vide

Bonjour,

Je souhaiterais mettre une mfc :

si cellule non vide = X

G21 à G34 = nom prénom

H21 à H34= X si la cellule nom prénom en remplie.

Cdt

Bonjour,

par MFC on ne peut inscrire une donnée dans une cellule, à moins de jouer sur la couleur de police par rapport à la couleur de fond de la cellule, mais si après il y a des calculs fait sur ces valeurs alors les résultats seront faussés.

Le plus simple est de mettre une formule avec la fonction SI : =Si(nom ou prénom; "X" ; "")
Si la condition nom et prénom est remplie alors on affiche X, sinon on affiche rien.

Vous pouvez alors mettre une MFC sur cette valeur de "X" pour mettre de la couleur par exemple

@ bientôt

LouReeD

Bonjour LouReeD,

J'ai effectivement pensé au calculs après qui va très certainement me gêné.

Sub Cellule_non_vide_test()
For Each cel In Sheets("Feuil1").Range("G21:G35")
    If cel.Offset(0, 1).Value = "" And cel.Value <> "" Then
        cel.Offset(0, 1).Value = "X"
    End If
Next cel
End Sub

Je pense passer en vba, j'ai essayé un code qui fonctionne partiellement. Il fonctionne quand la cellule est bien non vide hors si je dois effacer la cellule mon "X" reste du coup dans la cellule voisine.

est il possible de corriger le code?

Cdt

Bonsoir,

code événementiel à mettre sur la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)
    For Each cel In Sheets("Feuil1").Range("G21:G35")
        If cel.Value <> "" Then
            cel.Offset(0, 1).Value = "X"
        Else
            cel.Offset(0, 1).Value = ""
        End If
    Next cel
End Sub

Vous pourrez cibler la plage avec "intersect" avant de faire la boucle = si le "change" n'est pas en G21:G35 alors le code ne sera pas lancé

@ bientôt

LouReeD

Le soucis j'ai déjà un code en

Private Sub Worksheet_Change(ByVal Target As Range)
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim dte As Date, row As Range

    On Error Resume Next

    If Target.Count > 1 Then Exit Sub

    If Not Intersect(Target, Range("E7:AI38")) Is Nothing Then

        dte = Cells(5, Target.Column)
        nom = Cells(Target.row, 1)
        prénom = Cells(Target.row, 2)
        indnom = Target.row - 6         ' << ?????
        curseur = Cells(Target.row, Target.Column)
        curseur = Target.Value

        a = Sheets("PAR JOUR").Cells.Find(dte, LookIn:=xlValues, lookat:=xlWhole).row

        With Sheets("par jour")
            b = .Range("G" & a + 18).End(xlUp).row + 1   ' denière ligne de la colonne G
            bi = .Range("i" & a + 18).End(xlUp).row + 1   ' denière ligne de la colonne i

            If bi > b Then b = bi

            If (curseur = "m") Then
                .Cells(b, "G") = nom & " " & prénom
                .Cells(b, "i") = ""
                Exit Sub
            End If

            If (curseur = "am") Then
                .Cells(b, "i") = nom & " " & prénom
                .Cells(b, "G") = ""
                Exit Sub
            End If

            If (curseur = "x") Then
                .Cells(b, "G") = nom & " " & prénom
                .Cells(b, "i") = nom & " " & prénom
                Exit Sub
            End If

            If (curseur = "") Then
                X = Sheets("PAR JOUR").Range(Sheets("PAR JOUR").Cells(a, 7), Sheets("PAR JOUR").Cells(b, 7)).Find(nom & " " & prénom).row

                xx = Sheets("PAR JOUR").Range(Sheets("PAR JOUR").Cells(a, 9), Sheets("PAR JOUR").Cells(b, 9)).Find(nom & " " & prénom).row

                On Error GoTo 0

                If IsEmpty(X) = True Then X = xx

                With Sheets("PAR JOUR")

                    ' copie la plage dessous sur l'enregistrement à effacer
                    .Range("G" & X + 1 & ":i" & a + 18).Copy
                    .Range("G" & X & ":i" & a + 18).PasteSpecial Paste:=xlPasteValues
                    Application.CutCopyMode = False
                End With
            End If
        End With
    End If
End Sub

oups autant pour moi cela fonctionne je copié code mauvais onglet.

Merci bcp

merci pour ce retour et ravis que cela résout votre problème !

@ bientôt

LouReeD

Rechercher des sujets similaires à "mfc vide"