Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Supprimer 1 ligne sur 2 dans une sélection

3 réponses
Avatar
marcv
Bonjour à tous,

Pourriez vous SVP m'aider à trouver le moyen en VBA pour supprimer une
ligne/2 dans une sélection variable dans une feuille ?
Idéalement, en sélectionnant une zone, j'aimerais à l'aide d'un clic
droit, lancer cette suppression. Ce serait vraiment génial.
merci encore !

3 réponses

Avatar
michdenis
Bonjour Luminous,

Essaie ceci :

'--------------------------------
Sub SupprimerUneLigneSurDeux()

Dim Rg As Range, A As Long
Set Rg = Selection

If TypeName(Selection) <> "Range" Then Exit Sub
If Selection.Cells.Rows.Count < 2 Then Exit Sub

For A = Rg.Rows.Count To 1 Step -2
If A < 1 Then Exit For
Rg(A).Resize(, Rg.Columns.Count).Delete xlUp
Next
Set Rg = Nothing

End Sub
'--------------------------------


Salutations!


"luminous" a écrit dans le message de news:
Bonjour à tous,

Pourriez vous SVP m'aider à trouver le moyen en VBA pour supprimer une
ligne/2 dans une sélection variable dans une feuille ?
Idéalement, en sélectionnant une zone, j'aimerais à l'aide d'un clic
droit, lancer cette suppression. Ce serait vraiment génial.
merci encore !
Avatar
dadda
Bonjour ;
Ceci marchera. si tu veux que la première ligne à supprimer
soit la deuxième tu appliquera le code ci-après tel quel.
Si tu veux que la prière à supprimer soit la première tu
remplacera le premier 2 par 1.

Sub SupprimerUneLigneSurDeux()
For i = 2 To Selection.Count Step 2
Selection.Rows(i).ClearContents
Next
End Sub

Cordialement

Dadda

-----Message d'origine-----
Bonjour à tous,

Pourriez vous SVP m'aider à trouver le moyen en VBA pour
supprimer une

ligne/2 dans une sélection variable dans une feuille ?
Idéalement, en sélectionnant une zone, j'aimerais à
l'aide d'un clic

droit, lancer cette suppression. Ce serait vraiment
génial.

merci encore !






Avatar
Hervé
Salut,
La proc fonctionne de la manière suivante, si la sélection de cellules est
faite sur au moins 3 lignes (ex : A1 > A3) un bouton ("Supprimer 1 sur 2")
est rajouté en fin de menu clic droit pour supprimer une ligne sur deux,
sinon, ce bouton est détruit. En mettant le code comme indiqué ci-dessous
dans le module du classeur, ceci fonctionne sur toutes les feuilles.

A mettre dans le module du ThisWorkbook :
'-----------------------------------
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, _
Cancel As Boolean)
'si la sélection de cellules est faite sur
'au moins 3 lignes, ajoute un bouton dans
'le menu du clic droit, sinon, détruit ce
'bouton
If TypeName(Selection) = "Range" _
And Selection.Rows.Count > 2 Then
CreerBouton
Else
SupprimerBouton
End If
End Sub
'----------------------------------

A mettre dans un module standard :
'----------------------------------
Sub CreerBouton()
Dim Barre As CommandBar
Dim Btn As CommandBarButton

Set Barre = Application.CommandBars("Cell")
On Error Resume Next
With Barre
.Controls("Supprimer 1 sur 2").Delete
Set Btn = .Controls.Add(msoControlButton, 293)
With Btn
.Caption = "Supprimer 1 sur 2"
.OnAction = "Supprimer1Sur2"
.BeginGroup = True
End With
End With

Set Btn = Nothing
Set Barre = Nothing
End Sub

Sub Supprimer1Sur2()
Dim Plage As Range
Dim I As Long

If TypeName(Selection) = "Range" _
And Selection.Rows.Count > 2 Then
Set Plage = Selection
For I = Plage.Rows.Count To 1 Step -2
Plage.Rows(I).EntireRow.Delete
Next I
End If

Set Plage = Nothing
End Sub

Sub SupprimerBouton()
Dim Barre As CommandBar

Set Barre = Application.CommandBars("Cell")
On Error Resume Next
Barre.Controls("Supprimer 1 sur 2").Delete

Set Barre = Nothing
End Sub
'---------------------------------------

Hervé.

"luminous" a écrit dans le message news:

Bonjour à tous,

Pourriez vous SVP m'aider à trouver le moyen en VBA pour supprimer une
ligne/2 dans une sélection variable dans une feuille ?
Idéalement, en sélectionnant une zone, j'aimerais à l'aide d'un clic
droit, lancer cette suppression. Ce serait vraiment génial.
merci encore !