Supprimer une ligne d'un tableau avec une macro

fred70_7

XLDnaute Nouveau
Bonjour à toutes et à tous,
Voila, j'avance dans mon projet et je suis confronté à une nouvelle difficulté que je vous soumets.
Sur un tableau en feuille "Tableau", je rentre des lignes de contrat.
Depuis un panneau de contrôle en feuille "Controle", je souhaite avoir la possibilité de supprimer une ligne préalablement sélectionnée par le numéro de contrat.
Le problème est que dans mon cas, c'est toujours la ligne 3 qui est supprimée par ma macro et non celle que j'indique dans ma demande :confused:

Pouvez-vous me prêter mains fortes ?
Je travaille sur Excel 2003.
Merci

Fred70_7
 

Pièces jointes

  • Projet.zip
    14.7 KB · Affichages: 46
  • Projet.zip
    14.7 KB · Affichages: 45
  • Projet.zip
    14.7 KB · Affichages: 43

Épaf

XLDnaute Occasionnel
Re : Supprimer une ligne d'un tableau avec une macro

Bonsoir Fred,
Je n'ai pas regardé ton fichier mais en gros, ça devrait donner quelque chose comme ça, la colonne B étant celle des N° de contrats.
Code:
Sub test()
Dim c As Range, NoCol As Integer, DerLig As Long, NoContrat
    NoCol = 2
    DerLig = Range("B" & Rows.Count).End(xlUp).Row
    NoContrat = 125825

    With Worksheets("Tableau").Range(Cells(1, NoCol), Cells(DerLig, NoCol))
        Set c = .Find(NoContrat, LookIn:=xlValues, Lookat:=xlWhole)
        If Not c Is Nothing Then
            c.EntireRow.Delete
        End If
    End With
End Sub
Bonne soirée
 

bqtr

XLDnaute Accro
Re : Supprimer une ligne d'un tableau avec une macro

Bonsoir,

Essaye ceci :

Code:
Sub Effacer_un_contrat()
'
' Effacer_un_contrat Macro
' Macro enregistrée le 29/01/2009 par 0502618

If MsgBox("Confirmer la suppression du contrat !", vbYesNo, "Effacement :") = vbYes Then
  With Sheets("Tableau")
    Set c = .Range("B2:B" & .Range("B65536").End(xlUp).Row).Find(Sheets("Controle").Range("C5"), LookIn:=xlValues, LookAt:= _
         xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
         True, SearchFormat:=True)
      If Not c Is Nothing Then c.EntireRow.Delete
      Exit Sub
  End With
Else
MsgBox "Oprération annulée", vbInformation, "Annulation"
End If

End Sub

Sur la feuille "Controle" il faut un seule liste de validation et pas de cellules fusionnées. (dans ce cas en C5)
Par contre tu vas avoir des problèmes avec ta liste nommée "Contrat" car quand tu vas supprimer une ligne elle ne sera plus à jour.
Il faut donc que tu la modifies pour quelle soit dynamique avec une formule avec la fonction DECALER.

A+
 

Excel-lent

XLDnaute Barbatruc
Re : Supprimer une ligne d'un tableau avec une macro

Bonsoir fred70_7,

Ton soucis vient de la première ligne ci-dessous !
Code:
    Rows("3:3").Select
    Selection.Delete Shift:=xlUp

Tu lui demande de sélectionner la ligne 3 puis de l'effacer sur la ligne 2!

Donc forcément, il obéit!

-> pourquoi filtrer ton tableau en prenant la valeur à effacer comme critère de filtre avant d'effectuer la suppression de la ligne???

-> pourquoi lorsque tu as définis le nom "Contrat", pour ta liste de validation en [C5:D5], tu as sélectionné de B1 à B7? A quoi cela sert de sélectionner la ligne de titre??? Tu veux que l'utilisateur puisse supprimer cette ligne?

Voici ci-joint ton fichier modifié. Modification apporté :
-> au fur et à mesure que tu rajouteras des lignes sur ton tableau, ou en supprimera, ta liste de validation sur la feuille "contrôle", se mettra à jour automatiquement (contrairement à avt).

-> la macro ne filtre plus ton onglet Tableau

-> tu avais également une autre erreur que j'ai corrigé dans ton code.

-> j'ai supprimé tout les modules inutiles

-> ...

Le fichier te convient ainsi?

Bonne soirée
 

Pièces jointes

  • Projet modifié.xls
    32 KB · Affichages: 180

Excel-lent

XLDnaute Barbatruc
Re : Supprimer une ligne d'un tableau avec une macro

Bonsoir,

Et bien!!! Que de monde sur le fil, j'avais pas vu!

Sans le savoir, j'ai regroupé et solutionné les remarques de chacun dans le fichier que j'ai mis en pièce jointe précédemment!

Bonne soirée à tous
 

Discussions similaires

Réponses
2
Affichages
413
Réponses
2
Affichages
608

Statistiques des forums

Discussions
312 234
Messages
2 086 468
Membres
103 226
dernier inscrit
smail12