Supprimer ligne selon numéro de ligne

gerson94

XLDnaute Occasionnel
Bonsoir les XLDiens,

La macro ci-dessous fonctionne bien avec votre aide, mais pour plus de sécurité je cherche à intégrer un "Inputbox" qui permet à l'utilisateur de sélectionner le numéro de ligne qu'il souhaite effacer :du style quelle ligne souhaitez vous supprimer? Et il saisit le numéro puis valide et la suppression est effectuée.


Code:
Sub Macro()

Dim c As Range, i As Integer

Application.Calculation = xlManuel

With Sheets("Feuil1")
    For Each c In Sheets("Feuil2").Range("B7:B" & Sheets("Feuil2").Range("B65536").End(xlUp).Row)
        For i = .Range("B65536").End(xlUp).Row To 2 Step -1
            If c.Value = .Cells(i, 1).Value Then .Cells(i, 1).EntireRow.Delete
        Next i
    Next c
End With

Application.Calculation = xlAutomatic
Call Filtrer

MsgBox "La ligne a été supprimée dans la base."

End Sub

Merci d'avance

Gerson:cool:
 

CBernardT

XLDnaute Barbatruc
Re : Supprimer ligne selon numéro de ligne

Bonsoir


Une proposition avec une boite de dialogue input pour définir la ligne à supprimer et un message de sécurité en cas d'erreur.

Sub SupprLigne()
Dim i As Byte, Valeur As String
Dim Msg As String, Style, Title As String, MyValue As String
' Définition de la ligne à supprimer
Valeur = InputBox("Tapez le nombre définissant la ligne à supprimer, merci ! ", "SUPPRESSION DE LIGNE")
If Valeur = "" Then Exit Sub
' Texte du message de vérification avant validation
Msg = "Voulez-vous vraiment supprimer la ligne " & Valeur & " ?"
Style = vbOKCancel + vbCritical + vbDefaultButton2 ' Définit les boutons et l'information.
Title = "VERIFICATION AVANT SUPPRESSION !" ' Définit le titre.
MyValue = MsgBox(Msg, Style, Title) ' Message de vérification
If MyValue = 2 Then Exit Sub ' Annulation
' Suppression de la ligne
With Sheets("Feuil1")
Rows(Valeur).Delete
End With
End Sub

Cordialement

Bernard
 

gerson94

XLDnaute Occasionnel
Re : Supprimer ligne selon numéro de ligne

Bonsoir


Une proposition avec une boite de dialogue input pour définir la ligne à supprimer et un message de sécurité en cas d'erreur.

Sub SupprLigne()
Dim i As Byte, Valeur As String
Dim Msg As String, Style, Title As String, MyValue As String
' Définition de la ligne à supprimer
Valeur = InputBox("Tapez le nombre définissant la ligne à supprimer, merci ! ", "SUPPRESSION DE LIGNE")
If Valeur = "" Then Exit Sub
' Texte du message de vérification avant validation
Msg = "Voulez-vous vraiment supprimer la ligne " & Valeur & " ?"
Style = vbOKCancel + vbCritical + vbDefaultButton2 ' Définit les boutons et l'information.
Title = "VERIFICATION AVANT SUPPRESSION !" ' Définit le titre.
MyValue = MsgBox(Msg, Style, Title) ' Message de vérification
If MyValue = 2 Then Exit Sub ' Annulation
' Suppression de la ligne
With Sheets("Feuil1")
Rows(Valeur).Delete
End With
End Sub

Cordialement

Bernard


Bonjour CBernardt,

Merci d'avoir regardé. Il m'affiche tous les messages mais il ne supprime pas la ligne sélectionnée. j'essaye de voir où çà coince

Gerson
 

ledzepfred

XLDnaute Impliqué
Re : Supprimer ligne selon numéro de ligne

BONSOIR Gerson, CTBernard,

la macro de CTBernard fonctionne très bien, regardes ce test en pj (renseignes 10 dans inputbox)

A+
 

Pièces jointes

  • Classeur1.xls
    24 KB · Affichages: 108
  • Classeur1.xls
    24 KB · Affichages: 119
  • Classeur1.xls
    24 KB · Affichages: 103

gerson94

XLDnaute Occasionnel
Re : Supprimer ligne selon numéro de ligne

BONSOIR Gerson, CTBernard,

la macro de CTBernard fonctionne très bien, regardes ce test en pj (renseignes 10 dans inputbox)

A+

Bonsoir ledzepfred,
Tu as raison. Mais en fait la macro de départ (mon besoin) fonctionne à partir de la feuil2 où l'on clique et la suppression se fait en feuil1. Dans le code de CTBernard je dois rester sur la même feuille ce qui n'est pas le cas. Je vais essayer d'adapter car il fait la partie du code dont j'avais besoin.

Gerson
 

gerson94

XLDnaute Occasionnel
Re : Supprimer ligne selon numéro de ligne

Il manquait la syntaxe en rouge.

Code:
Sub SupprLigne()
Dim i As Byte, Valeur As String
Dim Msg As String, Style, Title As String, MyValue As String
' Définition de la ligne à supprimer
Valeur = InputBox("Tapez le nombre définissant la ligne à supprimer, merci ! ", "SUPPRESSION DE LIGNE")
If Valeur = "" Then Exit Sub
' Texte du message de vérification avant validation
Msg = "Voulez-vous vraiment supprimer la ligne " & Valeur & " ?"
Style = vbOKCancel + vbCritical + vbDefaultButton2 ' Définit les boutons et l'information.
Title = "VERIFICATION AVANT SUPPRESSION !" ' Définit le titre.
MyValue = MsgBox(Msg, Style, Title) ' Message de vérification
If MyValue = 2 Then Exit Sub ' Annulation
' Suppression de la ligne
[COLOR="Red"][B]Sheets("Feuil1").Activate[/B][/COLOR]
With Sheets("Feuil1")
Rows(Valeur).Delete
End With
End Sub

Ca marche, merci à tous les deux.

Gerson
 

Pierrot93

XLDnaute Barbatruc
Re : Supprimer ligne selon numéro de ligne

Bonjour à tous,

De passage, une idée comme ca... je pense qu'il manquait un "point" pour que l'instruction s'exécute bien sur la feuille définie par le bloc "with" :

Code:
With Sheets("Feuil1")
[COLOR="Red"][B].[/B][/COLOR]Rows(Valeur).Delete
End With

bonne journée
@+
 

CBernardT

XLDnaute Barbatruc
Re : Supprimer ligne selon numéro de ligne

Bonjour à tous,

Merci Pierrot d'être passé par là ;)

Je vois que ton oeil averti n'a pas raté le tout petit point qui, grain de sable dans l'engrenage, fait capoter la suppression de la ligne souhaitée si l'utilisateur n'est pas sur la bonne feuille :eek:

A bientôt de te lire

Bernard
 

Discussions similaires

Statistiques des forums

Discussions
312 581
Messages
2 089 917
Membres
104 306
dernier inscrit
Bouhlal