Demande d'aide sur une formule

xav37

XLDnaute Nouveau
Bonjour,

J'ai un fichier avec dan sla colonne k un menu deroulant ou l'on choisit OUI ou NON en fonction de la commande
Je voudrais un formule ou macro qui lorsque j'ajoute OUI en K cela m'efface les données dans les case G, H ,I et J

Je vous joint le fichier



Ce lien n'existe plus

Merci de votre aide
 

Docmarti

XLDnaute Occasionnel
Re : Demande d'aide sur une formule

Bonjour.

Voilà une modification qui efface G, H, I, J sur la ligne Target.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim rowTarget As Long
 
    If Not Application.Intersect(Target, Range("a7:g7")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        Range("a8:g1500").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range("a6:g7"), Unique:=False
        Application.Goto Range("a1"), Scroll:=True
        Target.Activate
    ElseIf Not (Intersect(Target, Range("K:K")) Is Nothing) Then
        Dim lig As Long, derligne As Long
        If Target.Value = "OUI" Then
            With Sheets("Commandes Expédiées")
                derligne = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
                lig = Target.Row
                While Cells(lig, 1) = ""
                    lig = lig - 1
                Wend
                .Cells(derligne, 1) = Cells(Target.Row, 1)
                .Cells(derligne, 2) = Cells(Target.Row, 2)
                .Cells(derligne, 3) = Cells(Target.Row, 3)
                .Cells(derligne, 5) = Cells(Target.Row, 4)
            End With
            
            rowTarget = Target.Row
            Application.EnableEvents = False
            With Sheets("Base")
                .Cells(rowTarget, "G") = ""
                .Cells(rowTarget, "H") = ""
                .Cells(rowTarget, "I") = ""
                .Cells(rowTarget, "J") = ""
            End With
            Application.EnableEvents = True
            
        End If
    End If
End Sub
 

Paf

XLDnaute Barbatruc
Re : Demande d'aide sur une formule

bonjour,

code à rajouter en fin de Private Sub Worksheet_Change(ByVal Target As Range) de la feuille Base
Code:
If Target.Column = 11 Then
        If Target.Value = "OUI" Then
            Range("G" & Target.Row & ":J" & Target.Row).ClearContents
        End If
    End If

Bonne suite

edit: Bonjour Docmarti ;
je n'avais pas regardé le code existant de la Private Sub Worksheet_Change.
donc juste à rajouter dans cette même Sub, juste après le End With
Code:
 Range("G" & Target.Row & ":J" & Target.Row).ClearContents
 
Dernière édition:

fabi1joret

XLDnaute Junior
Re : Demande d'aide sur une formule

Bonjour;
et si vous utiliser cette formule: =si(K9="oui";et(g9="";h9="";i9="";j9="")).
à essayer.
bonne journée et bonne chance.

Le résultat ne peut pas s'appliquer sur une autre cellule que celle qui contient la formule. Une fois la condition vérifié, la formule renverra faux et aucune action ne se fera sur G,H,I,J...
Effacer le contenu d'une cellule cible n'est possible que par macro je pense...
 

Docmarti

XLDnaute Occasionnel
Re : Demande d'aide sur une formule

Merci Paf de me rappeler la commande ClearContents qui est supérieure à mon .Cells(rowTarget, "G") = ""

La raison en étant qu'elle supprime aussi les hyperliens et de façon plus efficace que Hyperlinks.Delete.

Cordialement

Docmarti
 

Discussions similaires

Réponses
2
Affichages
545
Réponses
1
Affichages
1 K

Statistiques des forums

Discussions
312 190
Messages
2 086 037
Membres
103 105
dernier inscrit
fofana