Suppression de cellules spécifiques sur ligne selectionnée

Beoden

XLDnaute Nouveau
Bonjour,

Je m'adresse à vous car je bloque complètement sur une ligne de code que je n'arrive pas à appliquer à mon cas.

Je souhaiterais, lorsque j'appuis sur le bouton "EFFACER LIGNE" supprimer le contenu (et non la ligne) des colonnes A, B, D et G de la ligne sélectionnée.
J'ai un tableau dans lequel certaines cellules contiennent des formule (colonnes Nom article, prix et poids. Ces dernières ne doivent pas être supprimées.

Exemple : Je sélectionne la case la case ci-dessous, et les cellules qui s'effacent sont : "Johnson" , "10-50-30" , "2" , "17/03/2020"

1584530566062.png


J'ai cherché des solutions sur internet , mais je ne trouve que des lignes pour supprimer la ligne complète (entireRow), ou la vider (Clearcontent).
Pour ces deux cas j'ai réussi à les appliquer dans souci. Par contre j'ai essayé de trouver une solution en essayant de les adapter, mais je n'y arrive pas.

J'ai tenté des choses... (Ne me jugez pas je suis débutant ^^)

VB:
    If Intersect(Target, Column(A, B, D, G)) = "" Then
    
Exit Sub

    Else
        If Intersect(Target, Column(A, B, D, G)) <> "" Then
        Range("A" & Target.Row & "B" & Target.Row & "D" & Target.Row & "G" & Target.Row).ClearContents
                
        End If
        
    End If

Si quelqu'un peut me venir en aide et m'expliquer rapidement sa logique que je puisse comprendre facilement et apprendre comment utiliser la fonction en question :).

Je vous remercie par avance.

Beoden
 

jmfmarques

XLDnaute Accro
Bonjour
la notation range( .....) implique que les "....." soit une chaine de caractères représentant une adresse de plage
Aies donc ce réflexe :
VB:
msgbox "A" & Target.Row & "B" & Target.Row & "D" & Target.Row & "G" & Target.Row
crois-tu que le résultat ainsi affiché est une adresse de plage ?
 
Dernière édition:

Beoden

XLDnaute Nouveau
Comme je le disais précédemment, et en étant honnête, j'ai tenté des choses sans vraiment savoir ce que je faisais à vrai dire. J'ai trouvé quelques trucs sur le net que j'ai essayé d'adapter.

Je seul vrai résultat que j'ai réussi à avoir :

1) C'est une suppression de ligne complète sélectionnée (ce qui ne m'intéressait pas car je voulais garder le nombre de ligne totale de mon tableau).

2) Vider la ligne complète sélectionnée (mieux, mais pas encore ça vu que j'ai des formules à conserver).

Je sais donc que ma logique n'est clairement pas la bonne :(

Je vous donne quand même ce sur quoi j'étais parti initialement et qui ne me convenait qu'à moitié car je vidais la ligne entière.

VB:
Sub EFFACERLIGNE_Cliquer()

    Dim rep As Integer
    rep = MsgBox("Voulez-vous vraiment effacer la ligne ?", vbYesNo, "Confirmation")
    If rep = vbYes Then

    'Suppression de la ligne ou cellule sélectionnée
    L = ActiveCell.Row
    Rows(L).ClearContents

    End If
End Sub
 

Discussions similaires