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

Éliminer groupe de ligne

4 réponses
Avatar
Denys
Bonjour =E0 tous,

Sur une feuille excel un utilisateur peut, =E0 l'aide d'un bouton de
commande, ajouter un groupe de ligne. L'instruction de la macro est
d'aller copier un groupe de ligne et de le coller sur la page active.

Cependant, je voudrais qu'ils puissent aussi =E9liminer un groupe de
ligne s'ils ont commis une erreur. Il est =E0 noter que le groupe de
ligne s'ins=E8re toujours sur la ligne suivant une ligne pouvant =EAtre
divis=E9e par six. (ligne 19, 25, 31, etc....)

Je voudrais que le bloc de cinq lignes sur lequel se trouve la cellule
active soit =E9limin=E9 si l'usager clique sur un bouton. Par exemple, peu
importe si la cellule active se trouve en cellule A19, A20, A21, A22,
ou A23, il faudrait que le bloc ajout=E9 de A19 =E0 A23 soit =E9limin=E9...

En fait, il faudrait qu'excel aille chercher la ligne se divisant par
6 au-dessus la ligne active, et =E9limine les cinq autres suivantes....

J'esp=E8re que c'est compr=E9hensible....

Merci pour votre temps...

Denys

4 réponses

Avatar
Philippe.R
Bonsoir,

Ceci devrait pouvoir convenir

Sub sup5()
lalig = ActiveCell.Row
For z = lalig To 1 Step -1
If Int(z / 6) = z / 6 Then
Range(Cells(z + 1, 1), _
Cells(z + 5, 256)) _
.EntireRow.Delete
Exit Sub
End If
Next z
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"Denys" a écrit dans le message de
news:
Bonjour à tous,

Sur une feuille excel un utilisateur peut, à l'aide d'un bouton de
commande, ajouter un groupe de ligne. L'instruction de la macro est
d'aller copier un groupe de ligne et de le coller sur la page active.

Cependant, je voudrais qu'ils puissent aussi éliminer un groupe de
ligne s'ils ont commis une erreur. Il est à noter que le groupe de
ligne s'insère toujours sur la ligne suivant une ligne pouvant être
divisée par six. (ligne 19, 25, 31, etc....)

Je voudrais que le bloc de cinq lignes sur lequel se trouve la cellule
active soit éliminé si l'usager clique sur un bouton. Par exemple, peu
importe si la cellule active se trouve en cellule A19, A20, A21, A22,
ou A23, il faudrait que le bloc ajouté de A19 à A23 soit éliminé...

En fait, il faudrait qu'excel aille chercher la ligne se divisant par
6 au-dessus la ligne active, et élimine les cinq autres suivantes....

J'espère que c'est compréhensible....

Merci pour votre temps...

Denys
Avatar
michdenis
Bonjour,

Essaie ceci :

Ce qui suit supprime les lignes complètes
de 19 à 24 de 25 à 30 inclusivement

Sub test()
Dim Ligne As Long, X As Long
Ligne = ActiveCell.Row
X = Ligne Mod 6
With ActiveCell
If .Row >= 19 Then
If X = 0 Then
ActiveCell.Resize(6).EntireRow.EntireRow.Delete
Else
Cells(.Row - (X - 1), .Column).Resize(6).EntireRow.delete
End If
End If
End With
End Sub


"Denys" a écrit dans le message de groupe de discussion :

Bonjour à tous,

Sur une feuille excel un utilisateur peut, à l'aide d'un bouton de
commande, ajouter un groupe de ligne. L'instruction de la macro est
d'aller copier un groupe de ligne et de le coller sur la page active.

Cependant, je voudrais qu'ils puissent aussi éliminer un groupe de
ligne s'ils ont commis une erreur. Il est à noter que le groupe de
ligne s'insère toujours sur la ligne suivant une ligne pouvant être
divisée par six. (ligne 19, 25, 31, etc....)

Je voudrais que le bloc de cinq lignes sur lequel se trouve la cellule
active soit éliminé si l'usager clique sur un bouton. Par exemple, peu
importe si la cellule active se trouve en cellule A19, A20, A21, A22,
ou A23, il faudrait que le bloc ajouté de A19 à A23 soit éliminé...

En fait, il faudrait qu'excel aille chercher la ligne se divisant par
6 au-dessus la ligne active, et élimine les cinq autres suivantes....

J'espère que c'est compréhensible....

Merci pour votre temps...

Denys
Avatar
Denys
Bonsoir Philippe et denis,

Merci messieurs....ma fin de semaine commencera plus tôt grâce à
vous...

Bonne soirée

Denys
Avatar
michdenis
écris de cette façon, c'est mieux !

'------------------------------------
Sub test()
Dim X As Long
With ActiveCell
X = .Row Mod 6
If .Row >= 19 Then
If X = 0 Then
.Offset(-5).Resize(6).EntireRow.EntireRow.Delete
Else
.Offset(-(X - 1)).Resize(6).EntireRow.Delete
End If
End If
End With
End Sub
'------------------------------------



"Denys" a écrit dans le message de groupe de discussion :

Bonsoir Philippe et denis,

Merci messieurs....ma fin de semaine commencera plus tôt grâce à
vous...

Bonne soirée

Denys