Supprimer des lignes particulières dans un tableau ?

Noeste

XLDnaute Nouveau
Bonjour à tous,

Je cherche à automatiser la mise en forme d’un tableau variable (d’un jour à l’autre comme d’un utilisateur à l’autre) sur un fichier trop fouillis pour être imprimé dès sa création.
J’ai déjà réussi à faire le plus gros de la mise en page mais pour faire mon total final en bas de tableau je rencontre un souci.
Mon objectif est de supprimer les lignes contenant des données non intéressantes et inexploitables pour les utilisateurs, pour le moment j’ai réussi à supprimer certaines lignes grâce à ce code :


'Je supprime les lignes qui contiennent les phrases suivantes'
For Lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1 Step -1
If Cells(Lin, 1) = "BusA Cur- Down pmnt OI total" Or Cells(Lin, 1) = "**" Then Rows(Lin).Delete Shift:=x1Up
Next Lin
For Lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1 Step -1
If Cells(Lin, 1) = " ency" Or Cells(Lin, 1) = "Summary sheet across all company codes" Or Cells(Lin, 1) = "Company code 577 summary sheet" Or Cells(Lin, 1) = "**" Then Rows(Lin).Delete Shift:=x1Up
Next Lin


Mais j’ai deux lignes que je n’arrive pas supprimer car contrairement aux autres elles sont variables, l’une contient le nom de l’utilisateur et est la dernière ligne de mon fichier et l’autre commence toujours par le mot « Company ».

Je ne vous mets pas de fichier car il est trop volumineux et surtout variable, mais si vous avez des idées, je vous en serais très reconnaissant.

Merci
Noeste
 

Bebere

XLDnaute Barbatruc
Re : Supprimer des lignes particulières dans un tableau ?

bonjour Noeste,le Forum
essaye ce qui suit
Sub suprim()
Dim Lin As Integer, Nom As String
Nom = Application.UserName

Application.ScreenUpdating = False

'joker * remplace une série de caractères,? remplace un caractère
For Lin = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row To 1 Step -1
If Cells(Lin, 1) = "BusA Cur- Down pmnt OI total" Or Cells(Lin, 1) = "**" Then Rows(Lin).Delete Shift:=xlUp
If Cells(Lin, 1) = " ency" Or Cells(Lin, 1) = "Summary sheet across all company codes" Or Cells(Lin, 1) = "Company code 577 summary sheet" Or Cells(Lin, 1) = "**" Then Rows(Lin).Delete Shift:=xlUp
If Cells(Lin, 1) = Nom Or Cells(Lin, 1) = "*Company" Then Rows(Lin).Delete Shift:=xlUp
Next Lin

Application.ScreenUpdating = True

End Sub

à bientôt
 

porcinet82

XLDnaute Barbatruc
Re : Supprimer des lignes particulières dans un tableau ?

Salut,

J'ai un peu modifié ton code, voici ce que ca donne :
Code:
Sub test()
Dim Lin As Integer
For Lin = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    Select Case Cells(Lin, 1).Value
    Case "BusA Cur- Down pmnt OI total", "**", " ency", "Summary sheet across all company codes", "Company code 577 summary sheet"
        Rows(Lin).Delete Shift:=x1Up
    End Select
If InStr(1, Cells(Lin, 1).Value, "Company") <> 0 Then Rows(Lin).Delete Shift:=x1Up
Next Lin
Rows(Range("A65536").End(xlUp).Row).Delete Shift:=x1Up
End Sub

@+

Edition : Salut Bebere, pas rafrachit...
 

Creepy

XLDnaute Accro
Re : Supprimer des lignes particulières dans un tableau ?

Bonjour à vous tous,

Voici ma contribution, pour le coup je passe par un tableau comme cela c'est modifiable assez facilement au gré des besoins.

Code:
Dim Lin As Integer, Boucle As Integer
Dim Chaine() As Variant
Chaine = Array("BusA Cur- Down pmnt OI total", "**", " ency")
For Lin = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
    For Boucle = 0 To UBound(Chaine)
        If InStr(1, Cells(Lin, 1).Value, Chaine(Boucle)) <> 0 Then Rows(Lin).Delete Shift:=xlUp
    Next Boucle
Next Lin
Rows(Range("A65536").End(xlUp).Row).Delete Shift:=xlUp

@+

Creepy
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 338
Membres
103 192
dernier inscrit
Corpdacier