Lignes à ajouter

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur: Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.

Lignes à ajouter

Messagepar guy8572 » 04 Déc 2018 17:28

Bonjour,

J'ai un fichier .csv avec 43000 lignes.
Mais dans ces lignes, il y a des données manquantes, ce qui provoque une ligne en moins au total.
Comment puis-je aller à l'endroit ou il manque une ligne pour pouvoir recopier à sa place (la ligne supérieure ou inférieure) ?
Ou est-il possible d'avoir une macro qui copie le ligne d'avant ou d'après ?

Par exemple en colonne B :
ligne 1: 220000 = 22 h 00 mn 00 s
ligne 2: 220100 = 22 h 01 mn 00 s
ligne 3: 220200 = 22 h 02 mn 00 s
ligne 4: 220400 = 22 h 04 mn 00 s (il manque 220300)

Sur 4 lignes, ça va, mais sur 43000 lignes, ça devient compliqué.

Merci de votre aide
Cordialement
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar Jeff » 04 Déc 2018 18:00

Bonjour et bienvenue,

guy8572 a écrit:une ligne en moins au total.

S’il manque qu’une seule ligne, je ne pense pas qu’élaborer une macro soit nécessaire (d’autant qu’en lisant le bandeau rouge en haut de page, tu verras que ce n’est pas la bonne section).

Je pense que je rajouterai une formule dans la première colonne libre, par exemple en C3, puis une fois que la formule est validée, double-clic sur la poignée de recopie (le petit carré noir en bas à droite de la cellule) pour recopier sur la totalité de la colonne :

AOO_forum.png


La formule utilisée en C3 :
Code : Tout sélectionner   AgrandirRéduire
=OU(A3-A2<>100;ET(NBVAL(A4)=1; A3+100<>A4))


Ensuite, un autofiltre en tête de colonne (sélectionner la plage complète puis menu Données > Filtre > Autofiltre), et choisir d’afficher la valeur 1, tu auras les lignes qui encadrent la valeur manquante :

AOO_forum1.png
AOO_forum1.png (18.07 Kio) Consulté 422 fois


Même avec l’autofiltre enclenché, tu peux insérer le ligne manquante.

A +
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.6 sur Debian Stable i586 10 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8098
Inscrit le : 18 Sep 2006 10:40
Localisation : France

Re: Lignes à ajouter

Messagepar micmac » 04 Déc 2018 18:09

Bonjour et bienvenue sur le forum,
Dans votre signature il y a écrit: LibreOffice 5.2.7.2 sous Windows 10
Votre signature fait mention d'une version ancienne de LibreOffice.
Pensez à vous mettre à jour de la dernière version 6.0.7 Stable.
Si c'est une version imposée, mentionnez-le dans votre signature par Obligation de version.

Accès direct à votre signature pour la corriger.

Cordialement.
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
 
Message(s) : 5968
Inscrit le : 28 Août 2010 09:45

Re: Lignes à ajouter

Messagepar guy8572 » 04 Déc 2018 18:53

Bonsoir,
Merci de vos réponse.
Effectivement, je n'ai pas fais attention pour une demande de macro.
Je vais poser la question dans la section "éponyme" (que cela veut dire ?)

Pour répondre à vos réponse,
Sur 1441 lignes (égal à une journée en minutes), il me manque déjà 96 lignes.
C'est un fichier qui récupère des données toutes les minutes pendant un mois.
Pour la version d'accord, je vais faire le nécessaire.

Voici un fichier pour la journée d'hier:
h**ps://www.cjoint.com/doc/18_12/HLer0LzCfob_Recuperation-des-donnees.csv

La modération a écrit:Pas de fichier hébergé en dehors du forum : relisez les règles !

Comment trouver les lignes manquantes (colonne B) dans ce fichier ?

Cordialement

Edit:
éponyme "Not found"
Voici la formule Excel:
Code : Tout sélectionner   AgrandirRéduire
Sub Rétablir_LignesManquantes()
    Dim lgn, n&, i&, j%, k%, t&, dt&
    With Worksheets("Recuperation_des_donnees")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        t = (.Cells(n, 2) \ 100) Mod 100 + (.Cells(n, 2) \ 10000) * 60
        Application.ScreenUpdating = False
        For i = n To 3 Step -1
            t = (1440 + t - 1) Mod 1440
            dt = (.Cells(i - 1, 2) \ 100) Mod 100 + (.Cells(i - 1, 2) \ 10000) * 60
            If dt <> t Then
                j = t - dt - 1: lgn = .Cells(i - 1, 1).Resize(, 62).Value
                .Range(.Cells(i, 1), .Cells(i + j, 1)).EntireRow.Insert
                For k = 0 To j
                    .Cells(i + k, 1).Resize(, 62).Value = lgn
                    .Cells(i + k, 2) = (((dt + k + 1) \ 60) * 100 + (dt + k + 1) Mod 60) * 100
                Next k
                t = dt
            End If
        Next i
    End With
End Sub
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar Xtof68 » 05 Déc 2018 11:06

"Éponyme" = qui donne son nom à quelque chose, donc tu ne risques pas de trouver un forum intitulé ainsi. :wink:
Salutations...
LibreOffice 5.2.3.3 sous Windows 7 Professionnel
Xtof68
Fraîchement OOthentifié
 
Message(s) : 6
Inscrit le : 05 Déc 2018 10:59

Re: Lignes à ajouter

Messagepar guy8572 » 05 Déc 2018 12:06

S’il manque qu’une seule ligne, je ne pense pas qu’élaborer une macro soit nécessaire (d’autant qu’en lisant le bandeau rouge en haut de page, tu verras que ce n’est pas la bonne section).


Alors ou faut-il aller pour avoir quelqu'un qui puisse me répondre sur les macros ???
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar Dude » 05 Déc 2018 12:20

guy8572 a écrit:Alors ou faut-il aller pour avoir quelqu'un qui puisse me répondre sur les macros ???

Ouverture de ses petits yeux :
Plus haut, Jeff a écrit:d’autant qu’en lisant le bandeau rouge en haut de page, tu verras que ce n’est pas la bonne section
Avatar de l’utilisateur
Dude
Grand Maître de l'OOffice
Grand Maître de l'OOffice
 
Message(s) : 20788
Inscrit le : 03 Mars 2006 08:45
Localisation : 127.0.0.1

Re: Lignes à ajouter

Messagepar guy8572 » 05 Déc 2018 14:40

Désolé, mais je n'ai toujours pas compris. ????
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar Jeff » 05 Déc 2018 19:46

Clique sur l’hyperlien situé dans le texte du bandeau rouge :

AOO_forum.png
Cliquer sur l’image pour zoomer


Ça t’amène directement en section Macro, où tu pourras poster ta question.

Attention : il y a également un bandeau rouge en tête de section Macros :wink:
À lire avant tout !

Pour télécharger Apache OpenOffice

AOO 4.1.6 sur Debian Stable i586 10 (buster) et sur Win 10 pro x64
Jeff
GourOOu
GourOOu
 
Message(s) : 8098
Inscrit le : 18 Sep 2006 10:40
Localisation : France

Re: Lignes à ajouter

Messagepar guy8572 » 05 Déc 2018 19:53

Là, ça fonctionne, mais comme je l'ai mis dans le message hier à 18h53, javais ce message.
Edit:
éponyme "Not found"


Merci pour la réponse
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar Jean-Louis Cadeillan » 10 Déc 2018 01:07

Bonsoir,
Ci-joint une solution sans macro, basée sur la fonction RECHERCHEV() lorsque le quatrième argument vaut 1 ou est omis : sur Feuille2, les lignes sont ajoutées en prenant la valeur au-dessous quand la minute est inexistante. (voir aide sur RECHERCHEV() ici)
Il m'a fallu tout de même ajouter une colonne sur ta feuille XNet_Meteo - Copie, de manière à identifier chaque couple date/heure/minute de manière précise (pour l'ajouter, il suffit, après avoir inséré une colonne à gauche, de saisir la formule =B2+C2*10^-6 en A2, puis de double-cliquer sur la croix de recopie en bas à droite de la cellule).
La feuille2 restitue une semaine entière (dont tu peux choisir le premier jour en A1:A3). Ce premier jour, en 0:00, doit être présent sur la feuille XNet. Si jamais la semaine n'est pas finie, le tableau n'affichera rien au-delà de la dernière valeur existante.
Attention, le temps de chargement et de recalcul peuvent être importants, selon ta configuration. Tu peux désactiver le recalcul automatique en décochant Outils > Calculer > Calculer automatiquement. Tu peux alors forcer le recalcul global, si nécessaire, par Maj+Ctrl+F9.
Tu peux tenter de prolonger le tableau de Feuille2 sur 1 mois (en recopiant les formules vers le bas), mais j'ai bien peur que la durée de traitement ne devienne trop importante...
Une fois les valeurs trouvées, tu peux faire un copier/collage spécial vers le fichier de ton choix.
À tester.
Cordialement,
Jean-Louis
LibO 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4395
Inscrit le : 03 Jan 2009 00:56

Re: Lignes à ajouter

Messagepar guy8572 » 11 Déc 2018 10:20

Bonjour,
Je regarde ça
Cordialement
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar guy8572 » 11 Déc 2018 15:18

Désolé, c'est beaucoup trop long, 10mn après toujours rien


La modération a écrit:Bis repetita.
Merci de ne pas poster plusieurs messages à la suite. Vous disposez d'un bouton Éditer en haut à droite de chaque message et d'un autre bouton ajout si vous désirez ajouter un complément lorsqu'il n'y a pas de réponse.
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar Jean-Louis Cadeillan » 11 Déc 2018 16:31

Bonsoir,
guy8572 a écrit:c'est beaucoup trop long
Le chargement du fichier ? Sur mon système actuel 8.1 avec un portable avec 2Go de RAM et un processeur Atom 1,33 GHz, Libo 6.06, le chargement a duré moins de 45 s... je vois bien que tu es sous Win 10 :mrgreen: , mais 10 minutes !
Cordialement,
Jean-Louis
LibO 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4395
Inscrit le : 03 Jan 2009 00:56

Re: Lignes à ajouter

Messagepar guy8572 » 11 Déc 2018 17:02

Disons en réel, après avoir (montre en main) attendu 3mn, j'ai tout arrêté
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22

Re: Lignes à ajouter

Messagepar Jean-Louis Cadeillan » 11 Déc 2018 22:18

Bonsoir,
Ci-joint une version allégée qui se charge chez moi en 5". Pour un jour complet (1440 lignes). Le jour en question se saisit en A1 de Feuille2.
Cordialement,
Jean-Louis
LibO 6.2.6.2 (x64 avec Java 1.8.0_221) et AOO 4.1.6 (avec Java x32 1.8.0_201), Windows 7 Édition Intégrale 64 SP1, (Domicile)
LibO 5.4.1.2 (x86) sous Ubuntu LTS 16.04.1, noyau 4.4.0-93 et Xfce 4.12, Java (x86) 1.8.0_131 (Travail) [obligation de version]
Avatar de l’utilisateur
Jean-Louis Cadeillan
ManitOOu
ManitOOu
 
Message(s) : 4395
Inscrit le : 03 Jan 2009 00:56

Re: Lignes à ajouter

Messagepar guy8572 » 12 Déc 2018 09:35

Bonjour,
Ok, ça fonctionne mis désolé.
Comme il faut que je recopie le ficher, ça ne va pas, car le fichier modifier ne doit rien avoir d'autre, à part les lignes ajoutées (pas de formules, pas de texte différents, formatage de la colonne heures (6), sinon, il plante (il est très susceptible).
Cordialement

Edit:
Par contre, j'ai fais un autre essai avec le fichier précédent (le mois entier).
Je faisais certainement un mauvaise manipulation, je ne devais pas avoir compris le fonctionnement, car maintenant ça fonctionne très bien.
Mais comme je le dis plus haut, je ne peux pas recopier le fichier dans mon logiciel.
Ou en faisant un copier/coller valeur ,
LibreOffice 5.2.7.2 sous Windows 10 (Obligation de version)
guy8572
NOOuvel adepte
NOOuvel adepte
 
Message(s) : 16
Inscrit le : 04 Déc 2018 17:22


Retour vers Tableur

Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 30 invité(s)