Interdiction de remplir sous condition

Bonsoir à tous

J'aurais voulu adapter les codes de la solution de l'onglet "Msg" à l'onglet "mon problème"

j'ai modifié certaines choses, mais cela ne fonctionne qu'a moitié

car les données s'éffacent bien si "A" est vide mais elles s'éffacent aussi si "A" n'est pas vide

Ce que je veux c'est que si une donnée est inscrite dans "B","D","E", et "F", cette donnée s'efface si "A" est vide.

mais également quand je supprime la donnée en "A", les données des autres colonnes s'effacent aussi(si cela est possible)

Donc : interdiction de remplir des données dans"B","D","E"et"F" si "A" est vide

Ps: la condition vide"" ou "*" ne sert plus à rien dans le code

( 'If Target.Offset(0, 5) = "" Or Target.Offset(0, 5) = "*" Then)

Merci d'avance et bonne soirée à tous.

Roland

fichier joint.

Bonsoir,

A tester le code suivant :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If Not Application.Intersect(Target, Range("B1:B30,D1:D30,E1:E30,F1:F30")) Is Nothing Then
        If (Cells(Target.Row, 1) = "") Then
            MsgBox ("Veuillez d'abord remplir la colonne A")
            Target = ""
        End If
    End If
    If Not Application.Intersect(Target, Range("A1:A30")) Is Nothing Then
        If (Target = "") Then
            Range(Cells(Target.Row, 2), Cells(Target.Row, 6)).ClearContents
        End If
    End If
    Application.EnableEvents = True
End Sub

A adapter si besoin est.

Bonjour à tous.

Merci à toi Raja car cela fonctionne comme je voulais, il ya juste une chose que j'aimerais changer.

Voilà j'aimerais que lorsque je supprime les données en "A", la colonne "C" ne séfface pas car il y a une formule que je veux absolument garder.

J'ai essayé différents trucs avec virgule et point virgule, mais bon VBA je jongle pas vraiment, donc si il y a une autre formule, ce serait mieux.

Encore merci à toi et bonne journée.

Roland

Bonjour,

Essaye comme ça :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
    If Not Application.Intersect(Target, Range("B1:B30,D1:D30,E1:E30,F1:F30")) Is Nothing Then
        If (Cells(Target.Row, 1) = "") Then
            MsgBox ("Veuillez d'abord remplir la colonne A")
            Target = ""
        End If
    End If
    If Not Application.Intersect(Target, Range("A1:A30")) Is Nothing Then
        If (Target = "") Then
            Union(Cells(Target.Row, 2), Range(Cells(Target.Row, 4), Cells(Target.Row, 6))).ClearContents        
        End If
    End If
    Application.EnableEvents = True
End Sub

Ok yessssss 7 génial.

Encore merci à toi.

Bonne après-midi malgrès ce p..... de mauvais temps de pluie.

Roland

Rechercher des sujets similaires à "interdiction remplir condition"