Éliminer groupe de ligne

Le
Denys
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
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #21575551
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" 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
michdenis
Le #21575541
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"
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
Denys
Le #21575531
Bonsoir Philippe et denis,

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

Bonne soirée

Denys
michdenis
Le #21582321
é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"
Bonsoir Philippe et denis,

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

Bonne soirée

Denys
Publicité
Poster une réponse
Anonyme