Supression de lignes sous conditions diverses

samimi94

XLDnaute Occasionnel
Bonsoir,

Me voilà après une longue absence.
Je vous sollicite pour un problème que je ne parviens pas à solutionner et qui me perturbe un peu par sa complexité (du moins pour moi).

Je m'explique. J'ai un fichier texte un peu brouillon que je pensais mettre au propre par le biais d'une macro.

Ce fichier txt est composé de séparateurs fixes.

Quand je l'importe je le convertis via excel pour l'avoir en colonnes, jusque là tout va bien, je perçois certaines lignes avec un décalage dont le numéro de téléphone se trouve soit en colonne H soit en colonne I.
Je souhaite donc pour débuter me faire un premier fichier en conservant uniquement les lignes dont le tél se trouve en colonne H en ayant supprimé toutes les lignes dont le tél est en colonne I, puis le sauvegarder en txt tout en conservant le séparateur fixe.
Idem pour le second fichier, en inversant les rôles, suppression des lignes dont le tel est en H et conservation du fichier des lignes dont le tel est en colonne I, puis sauvegarde du fichier en txt.

Avant cela J'ai commencé un bout de macro qui me supprime automatiquement les lignes dont la colonne B est vide (car en plus du décalage j'ai des résidus par ci par là).

Code:
Dim Cel_vide As Range;
Dim ad_cel As Integer

For Each Cel_vide In Range("B1:B20000")
If Cel_vide.Value = "*****" Then
ad_cel = Cel_vide.Row
Rows(ad_cel).Delete

End If
Next Cel_vide

Je souhaiterai, également supprimer les lignes dont la colonne A contient moins de 10 digits (je n'ai pas réussi à le faire) et supprimer les lignes dont la colonne F contient le terme "BASE" et des caractères spéciaux tels que % qui se trouve un peu partout dans le fichier.

Je ne sais pas si mes explications sont claires, je m'en excuse par avance.
J'ai attaché un fichier en espérant qu'il sera plus parlant.

Je vous souhaite une bonne soirée en espérant que tout le monde se porte à merveille :)
 

Pièces jointes

  • TEST.xls
    14.5 KB · Affichages: 56
  • TEST.xls
    14.5 KB · Affichages: 55
  • TEST.xls
    14.5 KB · Affichages: 58

Cousinhub

XLDnaute Barbatruc
Re : Supression de lignes sous conditions diverses

Bonsoir,

ce qui serait bien plus intéressant, ce serait ton fichier Txt...

Afin de le traiter dès le début....

Car ensuite, c'est bien moins simple....

A te relire...

Si tu pouvais joindre un fichier .Txt, avec des données bidon, mais avec quelques lignes représentatives (au moins un 20aine)

Bonne soirée
 

samimi94

XLDnaute Occasionnel
Re : Supression de lignes sous conditions diverses

Bonsoir,

Pas facile de faire un fichier txt aussi affreux à traiter avec des infos bidons, mais j'ai réussi à en faire un qui se rapproche de mon fichier de base.

Quoiqu'il en soit merci pour tout .

Bonne soirée.
 

Pièces jointes

  • test.zip
    732 bytes · Affichages: 35
  • test.zip
    732 bytes · Affichages: 35
  • test.zip
    732 bytes · Affichages: 33

Cousinhub

XLDnaute Barbatruc
Re : Supression de lignes sous conditions diverses

Bonsoir,

avec ce code, en adaptant le chemin, tu devrais arriver...

Code:
Sub Macro9()
With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;D:\test.txt", Destination:=Range("A1"))
         .TextFileParseType = xlFixedWidth
        .TextFileFixedColumnWidths = Array(20, 47, 4, 31, 35, 35, 5)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
End With
With Columns("H:H")
    .Replace What:=" ", Replacement:="µ", LookAt:=xlPart
    .Replace What:=Chr(9), Replacement:=" ", LookAt:=xlPart
    .TextToColumns Destination:=Range("H1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Space:=True
    .Replace What:="µ", Replacement:=" ", LookAt:=xlPart
End With
End Sub

Bon courage
 

samimi94

XLDnaute Occasionnel
Re : Supression de lignes sous conditions diverses

Bonjour le forum, bonjour BHBH,

Bhbh merci pour ton aide.
J'ai essayé ce bout de macro, j'ai modifié le chemin d'accès mais lorsque la macro s'active il ne se passe rien.
Je n'ai pas de message d'erreur mais mon classeur reste vierge, comme s'il n'avait rien à importer.

Merci pour tout et bonne journée.
 

samimi94

XLDnaute Occasionnel
Re : Supression de lignes sous conditions diverses

Re BHBH,

En relisant tout le code VBA, je viens de trouver mon erreur.
Ca fonctionne nickel. Les n° de tél s'alignent bien dans les même colonnes (rien que pour ce résultat je trouve cela super), mais ne serait-il pas possible de récupérer que les lignes dont le n° de tél est en colonne H pour en faire une première sauvegarde en txt bien distincte et ensuite conserver que les lignes dont le n° de tél est en I pour en faire un second fichier ? Ce décallage me permet de distinguer certaines infos, du coup je souhaiterai les séparer en deux fichier.

Merci encore.
 

samimi94

XLDnaute Occasionnel
Re : Supression de lignes sous conditions diverses

Re bonjour à tous,

A force de bidouiller et surtout avec l'aide précieuse de BHBH je commence à obtenir un résultat plus que satisfaisant.
Cependant il me reste un point bloquant.

Je ne sais pas quel code mettre dans mon projet VBA qui supprimerait toutes les lignes dont le contenu de la colonne A est inférieur à 10 digits et à la fin de cette macro sauvegarder un fichier txt délimité (même format que le fichier txt importé à la base.

Merci pour votre aide et bonne journée à tous.
 

Statistiques des forums

Discussions
312 103
Messages
2 085 310
Membres
102 859
dernier inscrit
Diallokass