La limite de 65000 lignes !

[Fermé]
Signaler
Messages postés
5
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
2 mars 2009
-
Messages postés
5
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
2 mars 2009
-
Bonjour,
... et merci d'avance pour toute l'aide fournie à l'ignare que je suis.
Un système de capteurs transmet des mesures vers une application tierce, qui les traites, mais
écrit également les mesures dans un fichier texte (une ligne = date + heure et la valeur de tous
les capteurs). Une feuille Excel (traitement des mesures personnalisé) importe ces mesures à
partir du fichier texte. Tout est ok ... aussi longtemps que le fichier texte a enregistré la 65000
ème mesure ... et là, .... Excel se plante !
Comment faire ?
- limiter les lignes dans le fichier texte à 65000 et effacer les lignes les plus anciennes .....
mais comment faire ???
- Demander à Excel de ne lire que les 65000 dernières mesures (ou 60000 ...) ....
- ou encore créer une macro ou un script qui va effacer un lot de ligne anciennes (10000 par
ex) chaque fois que la limite des 65000 est atteinte ??? Mais là aussi comment faire !
Voilà, c'est pas simple.
Merci encore

5 réponses

Messages postés
18254
Date d'inscription
lundi 15 janvier 2007
Statut
Non membre
Dernière intervention
6 septembre 2021
5 355
oui, 65000 lignes est la limite
A quelle cadence sont produites ces données ?
pourquoi ne pas faire un fichier par jour ?
toutes tes propositions sont possibles, c'est à faire en .bat Windows ?
Merci beaucoup pour l'aimable réponse.
Le fichier texte reçoit une nouvelle ligne de mesures toute les 5 secondes, le rafraichissement de la feuille excel se fait toute les minutes (le minimum prévu), mais ces valeurs sont susceptibles d'êtres adaptées.
Via fichiers .bat ???? Tu as une suggestion de structure ?
Un fichier par jour, oui cela peut être une bonne piste, mais il faut sauter à la corde avec les noms et l'écriture des fichiers pour ne pas interrompre le process.
Le programme trier, peut écrire un nouveau fichier par jour, il crée alors un fichier nom_date.txt ou date_nom.txt , je ne sais plus ainsi que le format de la date, je dois vérifier ("nom" étant du libre choix de l'opérateur).

J'attendrai avec impatience le prochain message, c'est bien agréable de pouvoir bénéficier de toute ces compétences!

Merci
Messages postés
18254
Date d'inscription
lundi 15 janvier 2007
Statut
Non membre
Dernière intervention
6 septembre 2021
5 355
est-ce que le programme démarre toute les 5 secs ou s'exécute en continu et génère des données toute les 5 secs ?
est ce qu'il tourne 24/24 ?
parce que pour changer le nom du fichier de sortie, il faut que l'application le re-ouvre.
Par ex. à travers les tâches planifiées, arréter le prog. à 23h59m58 et le redémarrer à 0h0m3 avec un nouveau nom utilisant la date.
on peut aussi utiliser un lien:
fichier_sorte -> fichier_ AAAAMMJJ
en ecrivant dans fichier_sortie et en changeant le lien chaque jour
Messages postés
5
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
2 mars 2009

Merci pour votre réflexion et aide.
le programme tiers écrit une nouvelle ligne avec les mesures toute les 5 secondes (mais cette valeur est paramétrable).
excel, lui, va lire les data toutes les minutes. A mon avis le fichier texte reste ouvert pendant toute la session du programme tiers qui en fait tourne sans désemparer (au fait comment je pourrais vérifier s'il ouvre puis ferme après chaque écriture le fichier texte ?)
Messages postés
8700
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 173
Bonjour,
pourquoi pas faire tout simplement une macro avec VBA d'excel ?
Comme par exemple ta première solution, décaler de 10000 lignes vers le haut
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static PR As Boolean
    If PR Then Exit Sub
    
    If Target.Row >= 65000 Then
        PR = True
        Rows("1:10000").Select
        Selection.Delete Shift:=xlUp
        Range("A55000").Select
        PR = False
    End If

End Sub

Possible que si les entrées sont en mode DDE l'événement change ne soit pas solicité, faut alors essayé avec calculate.
Mais d'autre solutions sont possible.. commencé une autre page, un autre classeur..
A+
Messages postés
5
Date d'inscription
lundi 21 juillet 2008
Statut
Membre
Dernière intervention
2 mars 2009

hé hé !!!! il y a de l'idée là ... je vais essayer ! Je vais devoir cogiter le visual basic !(c'est bête que les neurones se plantent un peu à 63ans).
Grand merci et si d'autres idées ... n'hésitez pas