Effacer le contenu de plusieurs cellules

Bonjour,

Je cherche une parcelle de code qui me permettrait, quand je double clique sur une cellule de la colonne B (de B5 à B50), de vider le contenu des cellules de la ligne, de A à H, puis de faire de même pour toutes les lignes en dessous, mais uniquement si elles ne contiennent rien dans la cellule B.

ex: je double click sur B5, ça vide de A5 à H5, puis si B6 est vide, ça vide de A6 à H6 etc...

merci d'avance!

Bonjour YannisB, le forum,

Dommage que tu n’ai pas joint un fichier.....

Donc une réponse hasardeuse à tester....

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim i As Integer

 If Not Application.Intersect(Target, Range("B5:B50")) Is Nothing Then
  Range("A" & Target.Row & ":H" & Target.Row).ClearContents
   For i = 5 To 50
    If Range("B" & i) = "" Then Range("A" & i & ":H" & i).ClearContents
   Next i
 End If
 Cancel = True
End Sub

Cordialement,

Bonjour,

à tester,

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Set isect = Application.Intersect(Target, Range("B5:B50"))
If Not isect Is Nothing Then
  If Target = "" Then
    Range("A" & Target.Row).ClearContents
    Range("C" & Target.Row & ":H" & Target.Row).ClearContents
  End If
End If
End Sub

Merci de vos réponses, le fichier est trop complexe pour être envoyé en exemple à mon avis, le fonctionnement est long a comprendre

J'avais oublié de vous préciser qqch, c'est dès que l'on rencontre une cellule ("B"&i) non vide, on s'arrète, j'ai alors testé cela, mais j'ai apparemment un else sans if, pourtant il y est...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim i As Integer

 If Not Application.Intersect(Target, Range("B5:B50")) Is Nothing Then
  Range("A" & Target.Row & ":H" & Target.Row).ClearContents
   For i = 5 To 50
    If Range("B" & i) = "" Then Range("A" & i & ":H" & i).ClearContents
    Else: GoTo 8
   Next i
8
 End If
End Sub
    

EDIT: ce que j'ai fais n'est pas cohérent, si je double cloque sur B16, je veux vérifier à 17, 18, 19 etc et pas de 5 à 50

En plus il n'y avait pas de end if, je l'ai vu après

Re,

A tester...

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim i As Integer, dl As Integer

 If Not Application.Intersect(Target, Range("B5:B50")) Is Nothing Then
  Range("A" & Target.Row & ":H" & Target.Row).ClearContents
   For i = Target.Row To 50
    If Range("B" & i) = "" Then Range("A" & i & ":H" & i).ClearContents
   Next i
 End If
 Cancel = True
End Sub

J'ai modifié un peu ce que tu m'a donné et maintenant cela marche parfaitement! merci de votre aide!

Rechercher des sujets similaires à "effacer contenu"