Bonjour,
Je cherche un bout de code qui permettrait de rechercher un mot en particulier dans un fichier .txt (60 Ko) et qui me copie colle la ligne entière correspondante au mot trouvé sur une feuille excel.
Avez vous des idées svp ?
Bonjour,
Je cherche un bout de code qui permettrait de rechercher un mot en particulier dans un fichier .txt (60 Ko) et qui me copie colle la ligne entière correspondante au mot trouvé sur une feuille excel.
Avez vous des idées svp ?
Bonjour,
je ferai :
1°) lire les lignes une par une de ton fichier texte (voir tuto ci-dessous)
https://warin.developpez.com/access/fichiers/#LII-D-2
2°) ensuite je chercherai mon texte avec Instr() (voir touche F1)
tu dis
A+
Tu ouvres ton fichier texte avec un Workbooks.OpenText. https://msdn.microsoft.com/fr-fr/vba...t-method-excel
Tu cherches ton mot avec la méthode Find avec le paramètre LookAt:=xlPart. https://msdn.microsoft.com/fr-fr/lib.../ff839746.aspx
Pour prendre la ligne entière, tu utilises EntireRow. https://msdn.microsoft.com/fr-fr/lib.../ff836836.aspx
Tu copies avec la méthode Copy de Range. https://msdn.microsoft.com/fr-fr/lib.../ff837760.aspx
Bonjour,
Voici ce que j'ai fais jusqu'à présent :
J'ouvre mon fichier texte avec ce genre de format :
Ensuite, je colle le contenu de mon fichier texte sur une feuille Excel dans mon Workbook principal :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Workbooks.OpenText FileName:=NomFich, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, ConsecutiveDelimiter:=True, Tab:=True, Comma:=True, Space:=True DoEvents
Puis, sur la feuille excel ou j'ai copié mes informations : j'effectue une recherche du mot que je recherche dans un range de A1 à L50 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Sheets(1).Range("A1:M40").Copy _ Destination:=Workbooks(NomFichPrincipal).Sheets("Feuil2").Range("A1") DoEvents
Sauf, que j'ai un peu de mal à utiliser l'expression EntireRow dans mon programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 With Sheets("Feuil2") Set cel = .Range("A1:L50").Find("mot_que_je_cherche") 'AJOUTER expression .EntireRow 'Set plage = (Range).EntireRow
Enfin, je copie les lignes qui ont été trouvés sur la feuille 3 de mon workbook.
Pouvez vous m'aider pour l'utilisation de la fonction EntireRow svp ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 plage.Copy Destination:=Workbooks(ControlFile).Sheets("Feuil3").Range("M1") End With
bonjour
un exemple ceci envoie la ligne de la cellule trouvée dans l'autre sheets en colonne "A" premiere cellule libre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 With Sheets("Feuil2") Set cel = .Range("A1:L50").Find("mot_que_je_cherche",lookin:=xlvalues) if not cel is nothing then cel.EntireRow.copy destination:=sheets(nom du sheets).cells(rows.count,1).end(xlup).offset(1,0) '... 'etc...
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
re
bonjour
find et find next
allez dans l'editeur VBE taper F1 et dans le moteur de recherche taper findnext ta un exemple tout pret
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Partager