Nicodemius
XLDnaute Nouveau
Bonjour à tous.
Une fois de plus j'en appel à la communauté.
Mais là, j'ai réellement besoin d'aide.
J'ai créé 2 fonctions ; la première me permet de trouver une ligne en fonction d'une valeur recherchée. La seconde a pour but de la supprimer.
Ici, c'est la seconde qui me pose problème
J'ai beau tout essayer, pas moyen de supprimer cette foutue ligne.
J'ai trituré mon code dans tous les sens mais rien n'y fait.
Si quelqu'un avait une idée, je lui en serait vraiment reconnaissant.
De mon coté, je commence vraiment à désespérer.
Voici le code de mes fonctions :
J'attends vos réponses avec impatience.
Please Heeeeeelp
Une fois de plus j'en appel à la communauté.
Mais là, j'ai réellement besoin d'aide.
J'ai créé 2 fonctions ; la première me permet de trouver une ligne en fonction d'une valeur recherchée. La seconde a pour but de la supprimer.
Ici, c'est la seconde qui me pose problème
J'ai beau tout essayer, pas moyen de supprimer cette foutue ligne.
J'ai trituré mon code dans tous les sens mais rien n'y fait.
Si quelqu'un avait une idée, je lui en serait vraiment reconnaissant.
De mon coté, je commence vraiment à désespérer.
Voici le code de mes fonctions :
VB:
Public Function SuppLigne(MyVal As String, NomFeuille As String) As Boolean
'Fonction utilisée pour supprimer une ligne dans une feuille Excel.
'Utilisé conjointement avec [TrouveLigne] afin de récupérer le numéro de la ligne à supprimer.
Dim Ws As Worksheet 'Réf à la feuille de calcul
Dim Plage As Range
Set Ws = ThisWorkbook.Sheets(NomFeuille)
'If (TrouveLigne(MyVal, NomFeuille)) <> 0 Then
' Set plage = Ws.Cells(TrouveLigne(MyVal, NomFeuille)).EntireRow.Select
' Selection.Delete Shift:=xlUp
' SuppLigne = True
'End If
If (TrouveLigne(MyVal, NomFeuille)) <> 0 Then
Ws.Cells((TrouveLigne(MyVal, NomFeuille)), 1).EntireRow.Delete Shift:=xlUp
' Ws.Rows(TrouveLigne(MyVal, NomFeuille)).EntireRow.Delete Shift:=xlUp
SuppLigne = True
End If
Set Plage = Nothing
Set Ws = Nothing
End Function
Public Function TrouveLigne(MyVal As String, NomFeuille As String) As Long
'Fonction chargée de récupérér le Numéro de ligne en rapport avec la valeur recherchée.
Dim Ws As Worksheet 'Réf à la feuille de calcul
Dim MyRange As Range 'Réf à la plage de cellules
Dim MyCell As Range 'Réf à la cellule recherchée
Dim Lng_LastRow As Long 'dernière Ligne
Dim Lng_LastCol As Long 'dernière colonne
'On définit la plage de cellule sur laquelle va s'effectuer la recherche
Set Ws = ThisWorkbook.Sheets(NomFeuille)
Lng_LastRow = Ws.Range("A" & Rows.Count).End(xlUp).Row
Lng_LastCol = Ws.Cells(1, Cells.Columns.Count).End(xlToLeft).Column
'Si le tableau est vide on quitte la procédure.
'Attention, le tableau contient 1 ligne d'en-tête
If Lng_LastRow <= 1 Then
Set Ws = Nothing
Exit Function
End If
TrouveLigne = 0
Set MyRange = Ws.Range(Cells(1, 1), Cells(Lng_LastRow, Lng_LastCol))
Set MyCell = MyRange.Find(What:=MyVal, LookIn:=xlValues, LookAt:=xlWhole)
If MyCell Is Nothing Then Exit Function
TrouveLigne = MyCell.Row
Set MyCell = Nothing
Set MyRange = Nothing
Set Ws = Nothing
End Function
J'attends vos réponses avec impatience.
Please Heeeeeelp