j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à
la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les
lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48
à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes,
et je désire garder uniquement les 15 premières lignes da ladite fiche.
D'abord recopier la feuille dans un onglet tout neuf , au cas où ....
Retour dans l'onglet à traiter : sélectionner une colonne vide dans la première cellule de cette colonne mettre la formule : =MOD(LIGNE();32) sélectionner la colonne faire un copier puis collage spécial Valeurs Cette colonne étant toujours sélectionnée menu Données/Filtre/Automatique clic sur la flèche sélectionner Personnalisé dans la liste déroulante première conditon choisir égal dans liste déroulante mettre 0 en face deuxième condition choisir supérieur à dans liste déroulante mettre 15 en face cocher le bouton OU entre les 2 conditions Sélectionner la première ligne dont le n° est en bleu Faire CTRL+SHIFT+flèche bas pour sélectionner les lignes à détruire menu Edition/Supprimer la ligne menu Données/Filtre et décocher Automatique
Le résultat obtenu est le bon ? -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ "Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Bonjour,
D'abord recopier la feuille dans un onglet tout neuf , au cas où ....
Retour dans l'onglet à traiter :
sélectionner une colonne vide
dans la première cellule de cette colonne mettre la formule :
=MOD(LIGNE();32)
sélectionner la colonne
faire un copier puis collage spécial Valeurs
Cette colonne étant toujours sélectionnée
menu Données/Filtre/Automatique
clic sur la flèche
sélectionner Personnalisé dans la liste déroulante
première conditon choisir égal dans liste déroulante mettre 0 en face
deuxième condition choisir supérieur à dans liste déroulante mettre 15
en face
cocher le bouton OU entre les 2 conditions
Sélectionner la première ligne dont le n° est en bleu
Faire CTRL+SHIFT+flèche bas pour sélectionner les lignes à détruire
menu Edition/Supprimer la ligne
menu Données/Filtre et décocher Automatique
Le résultat obtenu est le bon ?
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
"Michel" <Michel@discussions.microsoft.com> a écrit dans le message de news:
070AFC44-9260-49BA-8134-CF6C9E42471E@microsoft.com...
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1
jusqu'à
la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les
lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes
48
à 64, etc... en fait une fiche(données) client comporte toujours 32
lignes,
et je désire garder uniquement les 15 premières lignes da ladite fiche.
D'abord recopier la feuille dans un onglet tout neuf , au cas où ....
Retour dans l'onglet à traiter : sélectionner une colonne vide dans la première cellule de cette colonne mettre la formule : =MOD(LIGNE();32) sélectionner la colonne faire un copier puis collage spécial Valeurs Cette colonne étant toujours sélectionnée menu Données/Filtre/Automatique clic sur la flèche sélectionner Personnalisé dans la liste déroulante première conditon choisir égal dans liste déroulante mettre 0 en face deuxième condition choisir supérieur à dans liste déroulante mettre 15 en face cocher le bouton OU entre les 2 conditions Sélectionner la première ligne dont le n° est en bleu Faire CTRL+SHIFT+flèche bas pour sélectionner les lignes à détruire menu Edition/Supprimer la ligne menu Données/Filtre et décocher Automatique
Le résultat obtenu est le bon ? -- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ "Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
yan
Salut essaie cela brut de décoffrage
For x = 16 To 36444 Step 15 y = x + 16 z = x & ":" & y Rows(z).Select Selection.Delete Shift:=xlUp dis moi? A+ yannick
"Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Salut
essaie cela brut de décoffrage
For x = 16 To 36444 Step 15
y = x + 16
z = x & ":" & y
Rows(z).Select
Selection.Delete Shift:=xlUp
dis moi?
A+
yannick
"Michel" <Michel@discussions.microsoft.com> a écrit dans le message de news:
070AFC44-9260-49BA-8134-CF6C9E42471E@microsoft.com...
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1
jusqu'à
la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les
lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes
48
à 64, etc... en fait une fiche(données) client comporte toujours 32
lignes,
et je désire garder uniquement les 15 premières lignes da ladite fiche.
For x = 16 To 36444 Step 15 y = x + 16 z = x & ":" & y Rows(z).Select Selection.Delete Shift:=xlUp dis moi? A+ yannick
"Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Daniel.M
Salut Michel,
Sub Det17DernLigneDesFiches() Dim nLi As Long, nCol As Long, res As Variant
' Stratégie pour effacement rapide (1 seul effacecement) ' 1.Mettre formule qui retourne VRAI pour les 15 premières lignes ' 2.Fixe les Valeurs ' 3.Tri sur cette condition (0 et 1) ' 4.Efface les lignes où la formule = 0 With Range("A1").CurrentRegion nLi = .Rows.Count nCol = .Columns.Count With .Offset(0, nCol).Resize(, 1) .FormulaR1C1 = "=--(MOD(ROW()-1,32)<15)" .Value = .Value End With End With With Range("A1").CurrentRegion ' désormais 1 col plus large ' Tri avec les 0 en dernier .Sort key1:=.Cells(1, nCol + 1), order1:=xlDescending res = Application.Match(0, .Offset(0, nCol).Resize(, 1), 0) If IsError(res) Then 'pas de faux, 0 ' rien à faire Else .Cells(res, 1).Resize(1 + nLi - res).EntireRow.Delete End If .Offset(0, nCol).Resize(, 1).EntireColumn.ClearContents End With
End Sub
Salutations,
Daniel M.
"Michel" wrote in message news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Salut Michel,
Sub Det17DernLigneDesFiches()
Dim nLi As Long, nCol As Long, res As Variant
' Stratégie pour effacement rapide (1 seul effacecement)
' 1.Mettre formule qui retourne VRAI pour les 15 premières lignes
' 2.Fixe les Valeurs
' 3.Tri sur cette condition (0 et 1)
' 4.Efface les lignes où la formule = 0
With Range("A1").CurrentRegion
nLi = .Rows.Count
nCol = .Columns.Count
With .Offset(0, nCol).Resize(, 1)
.FormulaR1C1 = "=--(MOD(ROW()-1,32)<15)"
.Value = .Value
End With
End With
With Range("A1").CurrentRegion ' désormais 1 col plus large
' Tri avec les 0 en dernier
.Sort key1:=.Cells(1, nCol + 1), order1:=xlDescending
res = Application.Match(0, .Offset(0, nCol).Resize(, 1), 0)
If IsError(res) Then 'pas de faux, 0
' rien à faire
Else
.Cells(res, 1).Resize(1 + nLi - res).EntireRow.Delete
End If
.Offset(0, nCol).Resize(, 1).EntireColumn.ClearContents
End With
End Sub
Salutations,
Daniel M.
"Michel" <Michel@discussions.microsoft.com> wrote in message
news:070AFC44-9260-49BA-8134-CF6C9E42471E@microsoft.com...
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à
la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les
lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48
à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes,
et je désire garder uniquement les 15 premières lignes da ladite fiche.
Sub Det17DernLigneDesFiches() Dim nLi As Long, nCol As Long, res As Variant
' Stratégie pour effacement rapide (1 seul effacecement) ' 1.Mettre formule qui retourne VRAI pour les 15 premières lignes ' 2.Fixe les Valeurs ' 3.Tri sur cette condition (0 et 1) ' 4.Efface les lignes où la formule = 0 With Range("A1").CurrentRegion nLi = .Rows.Count nCol = .Columns.Count With .Offset(0, nCol).Resize(, 1) .FormulaR1C1 = "=--(MOD(ROW()-1,32)<15)" .Value = .Value End With End With With Range("A1").CurrentRegion ' désormais 1 col plus large ' Tri avec les 0 en dernier .Sort key1:=.Cells(1, nCol + 1), order1:=xlDescending res = Application.Match(0, .Offset(0, nCol).Resize(, 1), 0) If IsError(res) Then 'pas de faux, 0 ' rien à faire Else .Cells(res, 1).Resize(1 + nLi - res).EntireRow.Delete End If .Offset(0, nCol).Resize(, 1).EntireColumn.ClearContents End With
End Sub
Salutations,
Daniel M.
"Michel" wrote in message news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Michel
Salut Yan,
Je te remercie, c'est exactement ce qu'il me fallait
A+
Michel
Salut essaie cela brut de décoffrage
For x = 16 To 36444 Step 15 y = x + 16 z = x & ":" & y Rows(z).Select Selection.Delete Shift:=xlUp dis moi? A+ yannick
"Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Salut Yan,
Je te remercie, c'est exactement ce qu'il me fallait
A+
Michel
Salut
essaie cela brut de décoffrage
For x = 16 To 36444 Step 15
y = x + 16
z = x & ":" & y
Rows(z).Select
Selection.Delete Shift:=xlUp
dis moi?
A+
yannick
"Michel" <Michel@discussions.microsoft.com> a écrit dans le message de news:
070AFC44-9260-49BA-8134-CF6C9E42471E@microsoft.com...
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1
jusqu'à
la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les
lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes
48
à 64, etc... en fait une fiche(données) client comporte toujours 32
lignes,
et je désire garder uniquement les 15 premières lignes da ladite fiche.
Je te remercie, c'est exactement ce qu'il me fallait
A+
Michel
Salut essaie cela brut de décoffrage
For x = 16 To 36444 Step 15 y = x + 16 z = x & ":" & y Rows(z).Select Selection.Delete Shift:=xlUp dis moi? A+ yannick
"Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
yan
Je suis ravi que cela te convienne A+ yannick
"Michel" a écrit dans le message de news:
Salut Yan,
Je te remercie, c'est exactement ce qu'il me fallait
A+
Michel
Salut essaie cela brut de décoffrage
For x = 16 To 36444 Step 15 y = x + 16 z = x & ":" & y Rows(z).Select Selection.Delete Shift:=xlUp dis moi? A+ yannick
"Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Je suis ravi que cela te convienne
A+
yannick
"Michel" <Michel@discussions.microsoft.com> a écrit dans le message de news:
B7E9968B-0431-4949-85B3-F53CA9E99228@microsoft.com...
Salut Yan,
Je te remercie, c'est exactement ce qu'il me fallait
A+
Michel
Salut
essaie cela brut de décoffrage
For x = 16 To 36444 Step 15
y = x + 16
z = x & ":" & y
Rows(z).Select
Selection.Delete Shift:=xlUp
dis moi?
A+
yannick
"Michel" <Michel@discussions.microsoft.com> a écrit dans le message de
news:
070AFC44-9260-49BA-8134-CF6C9E42471E@microsoft.com...
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1
jusqu'à
la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer
les
lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les
lignes
48
à 64, etc... en fait une fiche(données) client comporte toujours 32
lignes,
et je désire garder uniquement les 15 premières lignes da ladite fiche.
Je te remercie, c'est exactement ce qu'il me fallait
A+
Michel
Salut essaie cela brut de décoffrage
For x = 16 To 36444 Step 15 y = x + 16 z = x & ":" & y Rows(z).Select Selection.Delete Shift:=xlUp dis moi? A+ yannick
"Michel" a écrit dans le message de news:
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
PMO
Bonjour,
Ci-dessous un code à faire tourner sur une COPIE de votre classeur.
'******************************** Option Explicit Sub SuppressionLignes() Dim bool As Boolean Dim i& Dim ligFin& Dim deb& Dim nbPlage& On Error GoTo Erreur '---- Barre d'état ---- bool = Application.DisplayStatusBar If Not bool Then Application.DisplayStatusBar = True '---- Nombre de lignes au total ---- ligFin& = ActiveSheet.UsedRange.Rows.Count '---- On sort si Nb lignes n'est pas multiple de 32 ---- If ligFin& Mod 32 > 0 Then MsgBox prompt:="La feuille comporte " & _ ligFin& & " lignes. Ce n'est pas un multiple de 32", _ Title:="Programme stoppé" Exit Sub End If '---- Nombre de plages à traiter ---- nbPlage& = ligFin& 32 '---- Traitement suppression ---- Application.ScreenUpdating = False For i& = 1 To nbPlage& If i& Mod 20 = 0 Then Application.StatusBar = nbPlage& & _ " plages. Traitement de la plage N° " & i& End If deb& = 16 + (16 * (i& - 1)) - (i& - 1) Rows("" & deb& & ":" & deb& + 16 & "").Delete Next i& '---- Pseudo traitement d'erreurs ---- '---- Remet tout en place ---- Erreur: Application.ScreenUpdating = True Application.StatusBar = False Application.DisplayStatusBar = bool End Sub '********************************
Cordialement.
PMO Patrick Morange
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
Bonjour,
Ci-dessous un code à faire tourner sur une COPIE de votre classeur.
'********************************
Option Explicit
Sub SuppressionLignes()
Dim bool As Boolean
Dim i&
Dim ligFin&
Dim deb&
Dim nbPlage&
On Error GoTo Erreur
'---- Barre d'état ----
bool = Application.DisplayStatusBar
If Not bool Then Application.DisplayStatusBar = True
'---- Nombre de lignes au total ----
ligFin& = ActiveSheet.UsedRange.Rows.Count
'---- On sort si Nb lignes n'est pas multiple de 32 ----
If ligFin& Mod 32 > 0 Then
MsgBox prompt:="La feuille comporte " & _
ligFin& & " lignes. Ce n'est pas un multiple de 32", _
Title:="Programme stoppé"
Exit Sub
End If
'---- Nombre de plages à traiter ----
nbPlage& = ligFin& 32
'---- Traitement suppression ----
Application.ScreenUpdating = False
For i& = 1 To nbPlage&
If i& Mod 20 = 0 Then
Application.StatusBar = nbPlage& & _
" plages. Traitement de la plage N° " & i&
End If
deb& = 16 + (16 * (i& - 1)) - (i& - 1)
Rows("" & deb& & ":" & deb& + 16 & "").Delete
Next i&
'---- Pseudo traitement d'erreurs ----
'---- Remet tout en place ----
Erreur:
Application.ScreenUpdating = True
Application.StatusBar = False
Application.DisplayStatusBar = bool
End Sub
'********************************
Cordialement.
PMO
Patrick Morange
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à
la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les
lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48
à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes,
et je désire garder uniquement les 15 premières lignes da ladite fiche.
Ci-dessous un code à faire tourner sur une COPIE de votre classeur.
'******************************** Option Explicit Sub SuppressionLignes() Dim bool As Boolean Dim i& Dim ligFin& Dim deb& Dim nbPlage& On Error GoTo Erreur '---- Barre d'état ---- bool = Application.DisplayStatusBar If Not bool Then Application.DisplayStatusBar = True '---- Nombre de lignes au total ---- ligFin& = ActiveSheet.UsedRange.Rows.Count '---- On sort si Nb lignes n'est pas multiple de 32 ---- If ligFin& Mod 32 > 0 Then MsgBox prompt:="La feuille comporte " & _ ligFin& & " lignes. Ce n'est pas un multiple de 32", _ Title:="Programme stoppé" Exit Sub End If '---- Nombre de plages à traiter ---- nbPlage& = ligFin& 32 '---- Traitement suppression ---- Application.ScreenUpdating = False For i& = 1 To nbPlage& If i& Mod 20 = 0 Then Application.StatusBar = nbPlage& & _ " plages. Traitement de la plage N° " & i& End If deb& = 16 + (16 * (i& - 1)) - (i& - 1) Rows("" & deb& & ":" & deb& + 16 & "").Delete Next i& '---- Pseudo traitement d'erreurs ---- '---- Remet tout en place ---- Erreur: Application.ScreenUpdating = True Application.StatusBar = False Application.DisplayStatusBar = bool End Sub '********************************
Cordialement.
PMO Patrick Morange
Bonjour,
j'ai une feuille de calcule avec des données qui vont de la ligne 1 jusqu'à la ligne 36'444 et je désire garder les lignes 1 à 15, puis supprimer les lignes 16 à 32, puis garder les lignes 33 à 47, puis supprimer les lignes 48 à 64, etc... en fait une fiche(données) client comporte toujours 32 lignes, et je désire garder uniquement les 15 premières lignes da ladite fiche.
Merci de votre aide
AV
A l'évidence, tu n'as pas testé l'ensemble des solutions proposées ! C'est une grave erreur ! En tant que exégète officiel de Daniel M, je ne saurait trop te conseiller de tester la solution qu'il t'a proposé ! Elle est, et de très loin, la plus rapide et la plus sure !
AV
A l'évidence, tu n'as pas testé l'ensemble des solutions proposées !
C'est une grave erreur !
En tant que exégète officiel de Daniel M, je ne saurait trop te conseiller de
tester la solution qu'il t'a proposé !
Elle est, et de très loin, la plus rapide et la plus sure !
A l'évidence, tu n'as pas testé l'ensemble des solutions proposées ! C'est une grave erreur ! En tant que exégète officiel de Daniel M, je ne saurait trop te conseiller de tester la solution qu'il t'a proposé ! Elle est, et de très loin, la plus rapide et la plus sure !