Lignes à ajouter
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.
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.
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Lignes à ajouter
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
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 7.6.2 sous Windows 11
-
- GourOOu
- Messages : 9629
- Inscription : 18 sept. 2006 09:40
- Localisation : France
Re: Lignes à ajouter
Bonjour et bienvenue,
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 :
La formule utilisée en C3 :
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 :
Même avec l’autofiltre enclenché, tu peux insérer le ligne manquante.
A +
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).guy8572 a écrit :une ligne en moins au total.
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 :
La formule utilisée en C3 :
Code : Tout sélectionner
=OU(A3-A2<>100;ET(NBVAL(A4)=1; A3+100<>A4))
Même avec l’autofiltre enclenché, tu peux insérer le ligne manquante.
A +
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- RespOOnsable forum
- Messages : 9254
- Inscription : 28 août 2010 08:45
Re: Lignes à ajouter
Bonjour et bienvenue sur le forum,
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.
Votre signature fait mention d'une version ancienne de LibreOffice.Dans votre signature il y a écrit : LibreOffice 5.2.7.2 sous Windows 10
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.
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Re: Lignes à ajouter
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_Re ... onnees.csv
Comment trouver les lignes manquantes (colonne B) dans ce fichier ?
Cordialement
Edit:
éponyme "Not found"
Voici la formule Excel:
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_Re ... onnees.csv
La modération vous 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
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 7.6.2 sous Windows 11
-
- Fraîchement OOthentifié
- Messages : 6
- Inscription : 05 déc. 2018 09:59
Re: Lignes à ajouter
"Éponyme" = qui donne son nom à quelque chose, donc tu ne risques pas de trouver un forum intitulé ainsi.
Salutations...
Salutations...
LibreOffice 5.2.3.3 sous Windows 7 Professionnel
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Re: Lignes à ajouter
Alors ou faut-il aller pour avoir quelqu'un qui puisse me répondre sur les macros ???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).
LibreOffice 7.6.2 sous Windows 11
-
- IdOOle de la suite
- Messages : 25181
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: Lignes à ajouter
Ouverture de ses petits yeux :guy8572 a écrit :Alors ou faut-il aller pour avoir quelqu'un qui puisse me répondre sur les macros ???
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
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Re: Lignes à ajouter
Désolé, mais je n'ai toujours pas compris. ????
LibreOffice 7.6.2 sous Windows 11
-
- GourOOu
- Messages : 9629
- Inscription : 18 sept. 2006 09:40
- Localisation : France
Re: Lignes à ajouter
Clique sur l’hyperlien situé dans le texte du bandeau rouge :
Ç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
Ç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
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Re: Lignes à ajouter
Là, ça fonctionne, mais comme je l'ai mis dans le message hier à 18h53, javais ce message.
Merci pour la réponseEdit:
éponyme "Not found"
LibreOffice 7.6.2 sous Windows 11
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Lignes à ajouter
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
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 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Re: Lignes à ajouter
Désolé, c'est beaucoup trop long, 10mn après toujours rien
La modération vous 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 7.6.2 sous Windows 11
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Lignes à ajouter
Bonsoir,
Cordialement,
Jean-Louis
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 , mais 10 minutes !guy8572 a écrit :c'est beaucoup trop long
Cordialement,
Jean-Louis
LibO 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Re: Lignes à ajouter
Disons en réel, après avoir (montre en main) attendu 3mn, j'ai tout arrêté
LibreOffice 7.6.2 sous Windows 11
-
- GourOOu
- Messages : 5753
- Inscription : 02 janv. 2009 23:56
Re: Lignes à ajouter
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
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 7.6.6.3 (x64 avec Java 1.8.0_411) et AOO 4.1.15 (avec Java x32 1.8.0_381), Windows 7 Édition Intégrale 64 SP1
-
- Membre OOrganisé
- Messages : 54
- Inscription : 04 déc. 2018 16:22
Re: Lignes à ajouter
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 ,
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 7.6.2 sous Windows 11