Progression d'ouverture de fichier

Signaler
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
-
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
-
Bonjour,

Débutant dans la programmation en vb 2008 Express Edition, je me trouve confronté à un problème.
Je dois comparer une liste dans un fichier .txt avec un tableau Excel.
Le nombre de lignes du tableau Excel peu varier de 1000 à 60000 et son ouverture peu prendre beaucoup de temps.

Afin d'aider l'utilisateur à patienter, j'ai placé un ProgressBar piloté par un BackgroundWorker.
Comment indiquer la progression d'ouverture du fichier Excel à partir de sa taille?
Et de façon plus générale, comment indiquer la progression de n'importe quel type de fichier quand on ne connait pas à l'avance la quantité de son contenu?

Merci d'avance

31 réponses

Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
dans ton cas, tu la connais, la quantité de données, non ?
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
Salut Renfield
Non, je ne la connais pas.
Comme je l'ai dit plus haut, elle est très variable: entre 1000 et 60000 lignes de données.
De plus, un fichier Excel de 60000 lignes de données est très long à s'ouvrir avant de pouvoir l'exploiter.
Alors, comment récupérer la progression de l'ouverture de ce fichier?
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Je me demande si Excel est la solution la plus adaptée pour faire ça...

ce serai sans doute plus propre d'utiliser Access, par exemple.
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
En fait, Le fichier Excel est généré par une autre application. Je n'ai donc pas le choix.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
c'est un .XLS qui est généré ?

ou un .CSV ?
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
Oui. Un .xls, généré par WinDev.
Je n'ai pas la possibilité de choisir le format.

Dans tous les cas, quelque soit l'extension, comment récupérer la progression de l'ouverture d'un fichier?
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
je crains que tu ne puisses le faire.
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
Pour ma part, je pense qu'il existe une solution.
A l'ouverture d'un fichier Excel, celui-ci affiche une barre de progression avant utilisation du dit fichier.
Est-ce une histoire de position du buffer sur le fichier?
J'imagine qu'il est possible de le faire pour n'importe quel format de fichier.
Si quelqu'un peu m'orienter un peu plus sur une solution.
Merci d'avance...........
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Affiche un truc demandant d'attendre, ça vaut pas la peine de te prendre la tête la dessus
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
Il faut qu'il y en ai qui s'ammusent là où les autres s'emmerdent. Et je fait partie de ceux-là.
Me prendre la tête sur ce sujet me permet d'avancer et de parfaire mes connaissances.

Pour mon problème, c'est comme attendre un ascenseur.
Personne n'aime l'attendre, mais on patiente plus facilement lorsqu'il y a un affichage indiquant sa position et son mouvement.

Donc, si quelqu'un pouvait me donner une solution pour pouvoir déterminer la position de lecture dans un fichier (Excel ou autre) quand on ne connait pas sont contenu.
Merci!
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
Merci pour ce premier élément de réponse.
Toutefois, le fichier à ouvrir est sur le poste utilisateur.
Donc, pas de soucis de réseau.
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
Un début de recherche : http://www.excelabo.net/trucs/progression_ajustee
Pas vraiment ce que tu cherches à faire mais bon cela peut te donenr une idée ?
++
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
Salut ADN56,

Bien cela fasse maintenant 16 mois que le post fût posé, je n'ai toujours pas trouvé.
Tu as raison, ce n'est pas vraiment ce que je cherche puisque ce lien suppose que je connaisse déjà la quantité de ligne Excel dans ma feuille. Hors, je ne le sais pas.

Je tiens a préciser que j'utilise cette feuille via un programme en vb.net. Et appExcel.visible=False.

Je vais finir par croire que ma demande soit irréalisable. J'ai pourtant l'intuition du contraire.

Merci quand même d'avoir essayer.
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
Bonjour,
pourquoi pas simplement un progressBar type Marquee + 1 message
"chargement du fichier patientez svp"

a+
google est mon ami quand tu cherches quelque chose demande lui clairement
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
oui style démarrage d'xp, mais cela ne répond pas au besoin qui d'estimer le temps d'ouverture !
Tu ne peux avoir aucune info ? Style taille du fichier à lire pour en déduire avant l'ouverture le nombre de lignes ?
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
Salut gillardg,

C'est effectivement une façon simple de faire patienter. Mais ça ne fait pas avancer mon intellect.
Mon but et d'apprendre, à me dépasser. Si j'en reste à juste mettre un progressbar type marquee et un simple texte "patientez SVP", je n'aurait même pas posté.

Quand j'ouvre un fichier lourd, j'apprécie que les concepteurs aient pensés à afficher la progression de son ouverture. Je voudrais, dans la mesure du possible, pouvoir en faire autant.

J'aimerai aussi que l'on évite de remettre en question ma demande avec des "Pourquoi faire ça" ou encore des "je pense que" ou bien "je ne crois pas que". Soyez en sur et démontrez-le
C'est de cette façon que je progresserai. Pas avec des peut-être.

Je n'ai rien conte toi gillardg, mais je veux avancer, pas stagner.

Merci encore ton intérêt... ;-)
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
En réponse à AND56

Ton approche semble plus intéressante. Mais comment récupérer la taille d'un fichier?
A partir de là et après quelques essais, je pense pouvoir émettre une équation pouvant traduire aussi fidèlement que possible la progression d'ouverture d'un fichier...
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
Bonjour,

il faudrait savoir par quel moyen tu lis le fichier excell

ça pourrait aider
a+
google est mon ami quand tu cherches quelque chose demande lui clairement
Messages postés
110
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
12 mai 2021
1
C'est cité plus haut. Avec vb.net (VB 2008 Express Edition). L'application Excel est invisible afin d'éviter toutes fausses manip par un utilisateur lambda.