Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 extraire des données d'un fichier Excel sans l'ouvrir avec VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Kenza18

XLDnaute Nouveau
Bonjour,

je souhaite extraire les données d'un fichier Excel très volumineux (lire le fichier sans l'ouvrir).

les données que je veux extraire sont les suivantes :

les cellules du champ code-techno == '4GF'. --> [ ce champ se trouve sur la colonne D]

Est ce que c'est possible de m'aider à trouver une solution avec VBA s'il vous plait ?

En vous remerciant d'avance pour vote aide.



Cordialement,
Kenza
 
re
je pense que c'est plutôt pour deux de ton age Soan moi il y a longtemps qu'une gazelle m'a fait les yeux de biche et même si aujourd'hui nous somme moins fringant elle reste ma lumière à tout jamais
et si tu me traite de vieux je te cogne OK 🤪
 
ah ben moi, j'ai aucune idée de ton âge ; mais si t'es une personne âgée,
je les respecte, c'est normal ! 🙂

note que dans les tribus indiennes, par exemple, les personnes âgées sont très respectées ;
et on adore écouter leurs histoires des temps passés. 😜 le mot « vieux » est synonyme
de « très grande sagesse » !


soan
 
re
@job75 ok c'est bon
je me stocke une petite fonction qui me sera bien utile
VB:
Sub test()
Dim chemin$, Fichier$, Rng As Range, Feuille$
chemin = "C:\Users\polux\DeskTop\"
Fichier = "Exemple.xlsx"
Set Rng = [D1:D100000]
Feuille = "Feuil1"
MsgBox GetLastRowColInClosedFich(chemin, Fichier, Feuille, Rng)
End Sub

Function GetLastRowColInClosedFich(chemin$, Fichier$, Feuille, Rng As Range)
Dim Addr$, Formule, n&
Addr = Rng.Address(, , xlR1C1)
Formule = "'" & chemin & "[" & Fichier & "]" & Feuille & "'!" & Addr
On Error Resume Next
n = ExecuteExcel4Macro("MATCH(""zzz""," & Formule & ")") 'dernière cellule texte en colonne D
On Error GoTo 0
GetLastRowColInClosedFich = n
End Function
histoire d'etre compatible 2003
VB:
Set Rng = [D1].Resize(Rows.Count)
 
Dernière édition:

merci bcp pour ta réponse par contre il y a un petit souci
mon fichier comporte 30000000 lignes c'est quasiment impossible de l'importer sur le classeur Excel
est ce que c'est possible de modifier le programme en prenant compte cette remarque
par exemple ajouter une condition (si ça dépasse la capacité d'une feuille --> le copier sur une nouvelle feuille etc.)
PS: j'ai essayé de le faire mais j'ai as pu 🙁

Merci bcp pour ton aide
 
RE

Je ne comprends pas : le fichier d'origine n'est pas Excel si tu as 30 millions de lignes...

Tu as bien indiqué Excel dans ton 1er post...
si c'est un fichier Excel avec une extension CSV mais par contre je ne peux pas l'ouvrir car il est très volumineux
pour voir ce qui y 'a dedans je fais un split pour le découper ou bien j'essaie de l'ouvrir avec powerQuery
 
Bonsoir @Kenza18, le fil,

quand @chris t'a proposé d'utiliser Access, ce n'est pas pour lire ton fichier csv
mais pour créer un fichier Access d'extension « .mdb » ; sinon, lis le post #28
de @job75.

« lecture séquentielle » signifie : lire les lignes successivement, de la 1ère ligne
du fichier jusqu'à la dernière ligne du fichier.


soan
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…