RECHERCHER sans ouvrir

Bonjour,

On possède un fichier (xlsx ou xlsb ou csv , à déterminer…) comportant une seule colonne de plus de 400 000 mots triés de A à Z.

7basem.xlsm (8.87 Ko)

Ce fichier étant très lourd, on souhaite éviter de le charger, pour seulement LIRE dedans…

L'idée étant de créer une fonction VBA permettant de dire si un mot existe dans ce fichier.

Avez-vous cela, est-ce possible ?

Merci

A+

Bonjour,

Je ne pense pas qu'on puisse accéder au contenu d'un fichier sans l'ouvrir, ou du moins le lire d'une manière ou d'une autre.

Apparemment il est possible de définir une PowerQuery sans importer toutes les valeurs du CSV dans Excel, en créant une connexion. J'imagine que de là, via powerQuery il doit etre extremement rapide d'effectuer un tri sur une colonne.

Et d'importer simplement le résultat de la query dans Excel.

Autrement s'il s'agit purement d'optimisation du temps de lecture, je pense que python via panda peut etre plus rapide.

Bonjour à tous !

Je présume que vous n'attendez pas une approche via Power Query ?

Une requête, très succincte, peut vous retourner le résultat d'une telle recherche.

Bonjour,

Je me fiche de l'approche. Ce qui m'importe c'est de

- ne pas avoir à charger le fichier entier

- le temps d'exécution

- ne pas avoir à fourrer le nez dans la requête.

Cependant à titre personnel (pour ne pas mourir idiot !) je veux bien la solution PQ

Merci

A+

Bonjour à tous de nouveau !

Alors.... voilà :

bonjour JFL, Galopin01,saboh12617,

pour un csv ou txt, ici c'est lire & filtrer, mais cela depend de ce que vous voulez ...

Sub Lire_CSV()
     With CreateObject("scripting.filesystemobject")
          sfilename = ThisWorkbook.Path & "\Basem.csv"     'chemin et nom du fichier
          arr = Filter(Split(.opentextfile(sfilename).readall, vbCrLf), "ff", 1, 1)     'lire fichier et filtrer toutes les lignes qui contiennent "ff"
          MsgBox Join(arr, vbLf)             'résultat
     End With
End Sub
5basem.csv (309.00 Octets)

Bonjour,

BsAlv :

L'idée c'est de " Créer une fonction VBA permettant de dire si un mot existe dans un fichier.

Attention : Il s'agit bien de "CeMot" et pas d'un "bribes de mot" extrait d'une chaine :

Par exemple "TRAP" doit renvoyer Faux même si cette bribe de chaine est comprise dans "TRAPEZE" ou dans "TRAPP"

JFL :

Décidément c'est pas ça qui va me réconcilier avec PQ ! Merci quand même.

Saboh :

Je pensai aussi à une truc comme Open "File" For Input/Output...

A+

Bonsoir à tous !

JFL :

Décidément c'est pas ça qui va me réconcilier avec PQ ! Merci quand même.

Dommage !

Bonne chance pour la suite.

bonjour le fil,

voici un essai, faut-il vérifier aussi "TRAP", "trap" et "TrAp" ?

Votre préférence, c'est quoi, CSV ou XLSX ?

6basem.xlsm (21.08 Ko)

C'est parfait avec du .txt.

A+

TXT et CSV sont presque égal, donc cela fonctionne, j'éspère.

Rechercher des sujets similaires à "rechercher ouvrir"