Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supprimer une ligne d'un tableau avec une macro

  • Initiateur de la discussion Initiateur de la discussion fred70_7
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

F

fred70_7

Guest
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 😕

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

Fred70_7
 

Pièces jointes

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
 
Re : Supprimer une ligne d'un tableau avec une macro

Merci Epaf pour ton retour
Malheureusement, cela ne fonctionne pas.
J'essaye d'adapter mais je ne comprends pas grand chose au langage.
Bonne soirée
 
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+
 
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😀5], 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

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
 
Re : Supprimer une ligne d'un tableau avec une macro

Merci beaucoup Pierre Olivier,
Cela fonctionne à merveille.
La liste en plus se met à jour et il n'y pas de ligne vide dans le feuille "Tableau"
Merci encore
Fred70_7
 
Re : Supprimer une ligne d'un tableau avec une macro

Salut Excel-lent,

Je cherchais depuis tout à l'heure la formule pour la liste dynamique pour la rajouter, mais tu l'as mise dans ton fichier 😉.

Bonne soirée
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
567
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…