XL 2010 RESOLU par Lolote83 Supprimer plusieurs lignes d'un clic

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Sur le forum, j'ai relevé un code permettant de supprimer la ligne entière sélectionnée (j'en remercie l'auteur au passage).

Ce code me serait très utile s'il me permettait de sélectionner plusieurs lignes à supprimer.
J'ai cherché et aussi tenté de modifier le code sans succès.

Comme d'habitude, votre aide me serait précieuse.

Voici le code en question :
Code:
Option Explicit
Sub efface_ligne()
'objet.méthode paramètre 1 = valeur 1, paramètre 2 = valeur 2
'ou
'object.méthode (paramètre)

Dim ligne As Integer
Dim confirme As String
ligne = ActiveCell.Row
Rows(ligne).Select
confirme = MsgBox("je vais supprimer la ligne " & ligne & " ?", vbYesNo, "Attention")
Select Case confirme
Case vbYes
Selection.Delete Shift:=xlUp
Case vbNo
Exit Sub
End Select

End Sub

Je joins un classeur test.
Avec mes remerciements,
Très bonne journée à vous,
Amicalement,
Lionel,
 

Pièces jointes

  • SupprimeLignes.xls
    33.5 KB · Affichages: 41

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re à toutes et à tous,

LOL, j'ai fini par trouver en "bidouillant" le code :
Code:
Sub efface_lignes()
Selection.EntireRow.Select
Dim Réponse
    Réponse = MsgBox("Etes vous sûr de vouloir exécuter cette macro ?", vbYesNo, "Effacement")
    If Réponse = 6 Then '6 = oui 7 = non
    Selection.ClearContents
    End If
End Sub

Bonne journée à toutes et à tous.
Amicalement,
Lionel,
 

Lolote83

XLDnaute Barbatruc
SAlut Arthour973,
Comment on se retrouve !!!!
Je ne sais pas si je peux te fournir le code VBA mais le voici qd même
Code:
Sub TestPlusieursLignes()
    Dim plage As Range
    Set plage = Selection
    xLigDéb = Selection.Row
    xNbrLig = Selection.Rows.Count
    confirme = MsgBox("je vais supprimer " & xNbrLig & " ligne(s) ?", vbYesNo, "Attention")
    Select Case confirme
        Case vbYes
            Selection.Delete Shift:=xlUp
        Case vbNo
            Exit Sub
    End Select
End Sub
En espérant que cela corresponde à ta demande
@+ Lolote83
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
C'est déjà très bien, les lignes que j'aurai à supprimer sont contiguës (pour l'instant LOL).
Mais bon si cela doit changer, je ferai travailler mon petit doigt en cliquant plusieurs fois sur le bouton (Ouais, ça va être dur, dur ... voir terrible ;))
Merci Lolote83
Bonne journée,
Amicalement,
Lionel,
 

Lolote83

XLDnaute Barbatruc
Re salut,
C'est un peu normal, car en selectionnant des cellules (verticalement), la macro détermine :
Code:
xLigDéb = Selection.Row
    xNbrLig = Selection.Rows.Count
- La valeur de la première ligne correspondant à la cellule
- Le nombre de ligne
ET ensuite la macro supprime l'intégralité de la ligne
J'ai été clair, pas sûr !!!
@+ Lolote83
 

Staple1600

XLDnaute Barbatruc
Bonsoir à tous


Pourquoi pas simplement utiliser ce qu'offre Excel :rolleyes: ?
Sélection des cellules sur les lignes à supprimer puis ce simple raccourci clavier :
CRTL + la touche moins
En plus cela est plus interactif et laisse le choix à l'utilisateur du mode de suppression.
Ce qui ferait pour supprimer des lignes entières
CTRL+- ALT+L ENTER
SupprLignes.jpg
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir JM,
Bonsoir à toutes et à tous,

"Pourquoi pas simplement utiliser ce qu'offre Excel :rolleyes: ?"
Merci pour ton observation et j'y réponds ..... pour quatre raisons (selon moi) :
- dans les classeurs, chacun y a "son travail" ou objectifs à atteindre et les macros permettent l'automatisation (je crois que c'est la raison d'existence des macros ou de tout programme ?),
- certaines macros (celle-ci pour moi), entrent en exécution automatique à l'exécution d'autres macros = plus d'automatisation = gain de temps,
- Egalement, tjrs à mon humble avis, l'une des raisons d'être des macros, l'automatisation évite des oublis,
- Enfin, pour le plaisir de s'améliorer grâce à vos codes et conseils,
Bien sûr, on peut tout faire manuellement ..... les hommes des cavernes faisaient ça LOL
Bonne fin de journée JM,
Amicalement,
Lionel,
 

Staple1600

XLDnaute Barbatruc
Re à tous

Ce code me serait très utile s'il me permettait de sélectionner plusieurs lignes à supprimer.
Qui dit sélection, dit pas d'automatisme mais intervention de l'utilisateur.
Tout comme le Msgbox qui s'affiche et attend donc la réponse de l'utilisateur qui là encore nous éloigne de l'automatisme.

Le code VBA ici reste moins souple que la main puisque la main dispose de 4 choix de suppression.
De plus VBA peut planter ...(cf Set plage = Selection)
Insère une forme automatique, sélectionne-là puis lance ta macro et tu verras ce qui se passera ;)

Je ne vois pas ici d'amélioration mais quelque chose qui ressemble plus à une réinvention de la roue mais ce n'est là que mon avis ;)

NB: En théorie, avant de devoir utiliser VBA, on est censé utiliser les fonctionnalités natives offertes par Excel.

PS: Les hommes des cavernes nous ont laissé Lascaux.
Pas sur qu'on parlera encore d'Excel dans 17 000 ans. ;)
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour JM,
Bonjour à toutes et à tous,

LOL, je vois que nos avis divergent mais je suis d'accord pour les grottes.
On ne parlera peut-être plus d'excel dans 170000 ans mais es-ce le sujet ?

Je pense que le demandeur à ses raisons n'es-ce pas le plus important ?
En fonction des objectifs, il cherche des solutions et veut apprendre (si, si ... il y en a).

Les forums dans le dévouement de leurs adhérents répondent aux questions et forment avec leurs codes et explications.
C'est une telle belle manifestation humaine.

La philosophie me semble être un autre domaine et je suis d'accord pour en parler ..... mais peut-être ailleurs ou sur autre fil LOL
Amicalement,
Lionel,
 

Discussions similaires