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

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
 

patricktoulon

XLDnaute Barbatruc
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
 

soan

XLDnaute Barbatruc
Inactif
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
 

patricktoulon

XLDnaute Barbatruc
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:

Kenza18

XLDnaute Nouveau

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
 

Kenza18

XLDnaute Nouveau
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
 

soan

XLDnaute Barbatruc
Inactif
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:

Discussions similaires

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