Lignes manquantes
Résolu/Fermé
Guy72
Messages postés
943
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
10 novembre 2024
-
Modifié le 4 déc. 2018 à 11:00
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 - 6 déc. 2018 à 18:23
Guy72 Messages postés 943 Date d'inscription dimanche 18 novembre 2007 Statut Membre Dernière intervention 10 novembre 2024 - 6 déc. 2018 à 18:23
A voir également:
- Lignes manquantes
- Excel trier par ordre alphabétique en gardant les lignes - Guide
- Écrire plusieurs lignes dans une cellule excel mac - Guide
- Filtre excel ne prend pas en compte toutes les lignes ✓ - Forum Excel
- Supprimer lignes vides excel fin de tableau - Forum Excel
- Excel afficher toutes les lignes masquées ✓ - Forum Excel
4 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 415
4 déc. 2018 à 11:32
4 déc. 2018 à 11:32
Bonjour
il ne manque pas la ligne 3 dans votre exemple?
ceci dit, pour régler ça:
une colonne hors champ, par exemple Z
on commence en Z2:
=SI(B2="";B1;B2)
à tirer sur la hauteur
en suite copier Z et faire un collage spécial valeur sur B
crdlmnt
il ne manque pas la ligne 3 dans votre exemple?
ceci dit, pour régler ça:
une colonne hors champ, par exemple Z
on commence en Z2:
=SI(B2="";B1;B2)
à tirer sur la hauteur
en suite copier Z et faire un collage spécial valeur sur B
crdlmnt
Guy72
Messages postés
943
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
10 novembre 2024
20
4 déc. 2018 à 11:35
4 déc. 2018 à 11:35
bonjour,
il ne manque pas la ligne 3, mais li manque 220300
il ne manque pas la ligne 3, mais li manque 220300
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
5 déc. 2018 à 13:58
5 déc. 2018 à 13:58
Bonjour,
En vba on utilise la fonction Split pour séparer la 1ère portion de texte jusqu'au signe = que l'on met dans la colonne B;
Ensuite on fait une boucle sur la colonne B pour voir si l'écart entre 2 lignes consécutives est égale à 100.
Si ce n'est pas le cas on saisie dans la colonne C "ligne manquante"
Voir ceci pour les boucles sur colonnes
https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
il ne restera plus qu'a insérer les lignes aux endroits voulus
Voilà
En vba on utilise la fonction Split pour séparer la 1ère portion de texte jusqu'au signe = que l'on met dans la colonne B;
Ensuite on fait une boucle sur la colonne B pour voir si l'écart entre 2 lignes consécutives est égale à 100.
Si ce n'est pas le cas on saisie dans la colonne C "ligne manquante"
Voir ceci pour les boucles sur colonnes
https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/
Option Explicit Private Sub CommandButton1_Click() Splitcolonne End Sub 'https://www.developpez.net/forums/d605223/logiciels/microsoft-office/excel/contribuez/boucles-parcourir-colonne-ligne-plage-donnees-2-methodes/ Sub Splitcolonne() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Set FL1 = Worksheets("Feuil1") 'adapter le nom de la feuille NoCol = 1 'lecture de la colonne A Application.ScreenUpdating = False For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) Var = FL1.Cells(NoLig, NoCol) FL1.Cells(NoLig, NoCol + 1) = Split(Var, "=")(0) Next Application.ScreenUpdating = True Set FL1 = Nothing Lignemanquante End Sub Sub Lignemanquante() Dim FL1 As Worksheet, NoCol As Integer Dim NoLig As Long, Var As Variant Dim i As Integer Set FL1 = Worksheets("Feuil1") 'adapter le nom de la feuille NoCol = 2 'lecture de la colonne B Application.ScreenUpdating = False For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) - 1 Var = FL1.Cells(NoLig, NoCol) If FL1.Cells(NoLig + 1, NoCol) = FL1.Cells(NoLig, NoCol) + 100 Then Else FL1.Cells(NoLig, NoCol + 1) = "ligne manquante" i = i + 1 End If Next MsgBox "vous avez: " & i & " lignes manquantes" Application.ScreenUpdating = True Set FL1 = Nothing End Sub
il ne restera plus qu'a insérer les lignes aux endroits voulus
Voilà
Guy72
Messages postés
943
Date d'inscription
dimanche 18 novembre 2007
Statut
Membre
Dernière intervention
10 novembre 2024
20
5 déc. 2018 à 15:04
5 déc. 2018 à 15:04
Bonjour,
J'ai la macro adéquat pour Excel, mais pas pour "LibreOffice".
Comme je l'ai mis à la fin de mon message, je me suis trompé, je voulais une macro (la même que le code ci-dessus) mais pour un fichier csv dans "LibreOffice".
Voir exemple avec Excel fichier joint avec le texte :
Comment puis-je compléter les lignes manquantes en prenant celle du dessus ou du dessous.
Ce qui doit faire au total 1440 lignes.
Sur l'exemple, il manque 21 lignes.
Voir là ou il y a les cellules en jaunes
Fichier joint (Excel):
https://www.cjoint.com/doc/18_12/HLfisc727Mb_Recuperation-des-donnees.xlsm"]https://www.cjoint.com/doc/18_12/HLfisc727Mb_Recuperation-des-donnees.xlsm
Je souhaiterais avoir la même chose, mais avec "LibreOffice" dans un fichier .csv
Fichier joint .csv pour LibreOfice
https://www.cjoint.com/doc/18_12/HLfocL43qsb_Recuperation-des-donnees.csv
J'avais mis la même question dans "LibreOffice", mais on me l'a supprimée (ça faisait doublon)
Maintenant, je ne sais plus comment m'expliquer.
J'ai la macro adéquat pour Excel, mais pas pour "LibreOffice".
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
Comme je l'ai mis à la fin de mon message, je me suis trompé, je voulais une macro (la même que le code ci-dessus) mais pour un fichier csv dans "LibreOffice".
Voir exemple avec Excel fichier joint avec le texte :
Comment puis-je compléter les lignes manquantes en prenant celle du dessus ou du dessous.
Ce qui doit faire au total 1440 lignes.
Sur l'exemple, il manque 21 lignes.
Voir là ou il y a les cellules en jaunes
Fichier joint (Excel):
https://www.cjoint.com/doc/18_12/HLfisc727Mb_Recuperation-des-donnees.xlsm"]https://www.cjoint.com/doc/18_12/HLfisc727Mb_Recuperation-des-donnees.xlsm
Je souhaiterais avoir la même chose, mais avec "LibreOffice" dans un fichier .csv
Fichier joint .csv pour LibreOfice
https://www.cjoint.com/doc/18_12/HLfocL43qsb_Recuperation-des-donnees.csv
J'avais mis la même question dans "LibreOffice", mais on me l'a supprimée (ça faisait doublon)
Maintenant, je ne sais plus comment m'expliquer.
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
5 déc. 2018 à 15:52
5 déc. 2018 à 15:52
Pour LibreOffice je ne peux pas t'aider!
6 déc. 2018 à 18:23
Oui, c'est une solution (que j'aurais dû trouver) pour rrpérer les lignes manquantes.
C'est déjà plus facile
Merci de ton aide