Macro Excel - Suppression ligneS
laptitepero
Messages postés
19
Statut
Membre
-
pilas31 Messages postés 1878 Statut Contributeur -
pilas31 Messages postés 1878 Statut Contributeur -
Bonjour à tous,
J'ai actuellement une macro qui supprime la ligne que je sélectionne (et qui la supprime sur toutes les autres feuilles) avec message de confirmtion avant éxécution. Tout ça c'est super !
Mais voilà le soucis, dès que je sélectionne plusieurs lignes, ça ne fonctionne, pas, ca n'en supprime qu'une...
Voici ma macro :
Sub SuppLigne()
If MsgBox("Suppression irréversible. Souhaitez-vous continuer ?", vbQuestion + vbYesNo, "Suppression de la ligne") = vbYes Then
Dim Lig As Long
Sheets("Modèle").Select
Lig = ActiveCell.Row
Rows(Lig).Delete
Sheets("Résultat").Rows(Lig).Delete
Sheets("Constantes").Rows(Lig).Delete
Sheets("PVT Mensuels").Rows(Lig).Delete
Sheets("API").Rows(Lig).Delete
End If
End Sub
Quelqu'un a -til une idée ?
Merci de votre aide
J'ai actuellement une macro qui supprime la ligne que je sélectionne (et qui la supprime sur toutes les autres feuilles) avec message de confirmtion avant éxécution. Tout ça c'est super !
Mais voilà le soucis, dès que je sélectionne plusieurs lignes, ça ne fonctionne, pas, ca n'en supprime qu'une...
Voici ma macro :
Sub SuppLigne()
If MsgBox("Suppression irréversible. Souhaitez-vous continuer ?", vbQuestion + vbYesNo, "Suppression de la ligne") = vbYes Then
Dim Lig As Long
Sheets("Modèle").Select
Lig = ActiveCell.Row
Rows(Lig).Delete
Sheets("Résultat").Rows(Lig).Delete
Sheets("Constantes").Rows(Lig).Delete
Sheets("PVT Mensuels").Rows(Lig).Delete
Sheets("API").Rows(Lig).Delete
End If
End Sub
Quelqu'un a -til une idée ?
Merci de votre aide
A voir également:
- Macro Excel - Suppression ligneS
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Forcer suppression fichier - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
1 réponse
Bonjour,
Bon j'ai une proposition que je trouve un peu compliquée mais bon.
Le principe est de constituer un tableau des lignes à supprimer puis de parcourir ce tableau dans l'ordre inverse (bien sur) et de supprimer les lignes.
On peut selectionner même des cellules non adjacentes et une ou plusieurs sur la même ligne, ça fonctionne.
Bon j'ai une proposition que je trouve un peu compliquée mais bon.
Le principe est de constituer un tableau des lignes à supprimer puis de parcourir ce tableau dans l'ordre inverse (bien sur) et de supprimer les lignes.
On peut selectionner même des cellules non adjacentes et une ou plusieurs sur la même ligne, ça fonctionne.
Sub SuppLigne()
Dim Lig As Long, NbLig As Long, Ilig As Long
Dim Cellule As Range
Dim TabLig() As Long
If MsgBox("Suppression irréversible. Souhaitez-vous continuer ?", vbQuestion + vbYesNo, "Suppression de la ligne") = vbYes Then
Lig = 0
NbLig = 0
For Each Cellule In Selection
If Cellule.Row <> Lig Then
NbLig = NbLig + 1
ReDim Preserve TabLig(NbLig)
Lig = Cellule.Row
TabLig(NbLig) = Lig
End If
Next Cellule
For Ilig = NbLig To 1 Step -1
Lig = TabLig(Ilig)
Sheets("Modèle").Rows(Lig).Delete
Sheets("Résultat").Rows(Lig).Delete
Sheets("Constantes").Rows(Lig).Delete
Sheets("PVT Mensuels").Rows(Lig).Delete
Sheets("API").Rows(Lig).Delete
Next Ilig
End If
End Sub