trop de lignes impossible à supprimer

Le
jip
bonjour,
j'ai un petit fichier excel, à priori créé à partir d'un modèle a=
vec
un tas de lignes.
Il comporte 17 lignes et une ligne d'en-têtes sur 20 colonnes.
si je fais ctrl+fin j'arrive en L2033 CAA.
je supprime donc de la ligne 19 à 2035 mais re ctrl+fin j'arrive
toujours à L2033.
Pourquoi ?
j'ai plusieurs fichiers allant de 18 à plusieurs milliers de lignes à
traiter, en les important dans un logiciel qui lui reconnait 78
enregistrements au lieu des 17 par exemple dans le premier, puis 28 au
lieu de 8 dans le 2e, etc
(ces fichiers ont été créés dans calc)
je mets un exemple ici : http://cjoint.com/?0DBnpCkSTxP
Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichD
Le #23313781
Bonjour,

Voici un exemple de procédure "Test" qui va supprimer toutes
les lignes et colonnes inutiles et qui va te permettre d'utiliser
la sous-commande "Dernière cellule" du menu "atteindre"

Si les classeurs créés émanent d'un modèle, tu devrais ouvrir
le fichier modèle en tant que modèle (.xlt) et utiliser cette procédure
pour chacune de feuilles du modèle afin de supprimer les lignes et
colonnes inutiles.

'---------------------------------------
Sub test()
'Appel de la procédure, Nom de la feuille à traiter : Feuil1
Call Supprimer_Lignes_Inutiles "Feuil1"
End Sub
'-----------------------------------------

Sub Supprimer_Lignes_Inutiles(NomFeuille As String)
Dim DerLig As Long, DerCol As Integer, X As String

With Worksheets(NomFeuille)
If IsEmpty(.UsedRange) Then
X = .UsedRange.Address
Exit Sub
End If
DerLig = Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1
With .Range("A" & DerLig, Cells(Cells.Rows.Count, 1))
.EntireRow.Delete
End With
With .Range(Cells(1, DerCol), Cells(Cells.Rows.Count, DerCol))
.EntireColumn.Delete
End With
X = .UsedRange.Address
End With
End Sub
'-------------------------------------------------



MichD
--------------------------------------------
"jip" a écrit dans le message de groupe de discussion :


bonjour,
j'ai un petit fichier excel, à priori créé à partir d'un modèle avec
un tas de lignes.
Il comporte 17 lignes et une ligne d'en-têtes sur 20 colonnes.
si je fais ctrl+fin j'arrive en L2033 CAA.
je supprime donc de la ligne 19 à 2035 mais re ctrl+fin j'arrive
toujours à L2033....
Pourquoi ?
j'ai plusieurs fichiers allant de 18 à plusieurs milliers de lignes à
traiter, en les important dans un logiciel qui lui reconnait 78
enregistrements au lieu des 17 par exemple dans le premier, puis 28 au
lieu de 8 dans le 2e, etc...
(ces fichiers ont été créés dans calc)
je mets un exemple ici : http://cjoint.com/?0DBnpCkSTxP
Merci
MichD
Le #23313771
J'apporte une petite correction à cette procédure, il manque des points
devant les expressions Cells. Utilise ceci :

'-----------------------------------------------------
Sub Supprimer_Lignes_Inutiles(NomFeuille As String)
Dim DerLig As Long, DerCol As Integer, X As String

With Worksheets(NomFeuille)
If IsEmpty(.UsedRange) Then
X = .UsedRange.Address
Exit Sub
End If
DerLig = Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1
With .Range("A" & DerLig, .Cells(Cells.Rows.Count, 1))
.EntireRow.Delete
End With
With .Range(.Cells(1, DerCol), .Cells(.Cells.Rows.Count, DerCol))
.EntireColumn.Delete
End With
X = .UsedRange.Address
End With
End Sub
'-----------------------------------------------------


MichD
--------------------------------------------
Jacquouille
Le #23314021
Bonjour
Chez moi, la plage A21:T65536 est vide.
NBVAL(A21:T65536) me donne =0
Quant à la ligne 2033, il la donne vide aussi ....
.... ?
Tu n'aurais pas un format ou une MEFC qui trainerait ?

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"jip" a écrit dans le message de groupe de discussion :


bonjour,
j'ai un petit fichier excel, à priori créé à partir d'un modèle avec
un tas de lignes.
Il comporte 17 lignes et une ligne d'en-têtes sur 20 colonnes.
si je fais ctrl+fin j'arrive en L2033 CAA.
je supprime donc de la ligne 19 à 2035 mais re ctrl+fin j'arrive
toujours à L2033....
Pourquoi ?
j'ai plusieurs fichiers allant de 18 à plusieurs milliers de lignes à
traiter, en les important dans un logiciel qui lui reconnait 78
enregistrements au lieu des 17 par exemple dans le premier, puis 28 au
lieu de 8 dans le 2e, etc...
(ces fichiers ont été créés dans calc)
je mets un exemple ici : http://cjoint.com/?0DBnpCkSTxP
Merci
Jacquouille
Le #23314041
Re
Je viens de jouer avec ton fichier.
Tu parles de la ligne 2033 CAA. j'en déduis donc que tu travailles avec une
version plus récente que 2003. perso, je ne vais que jusque IV
J'ai baptisé ta plage A20:IV65536 du nom de zn.
=nbcar(zn) donne 0
=estvide(zn) donne FAUX.
la ligne 2033 me semble vide....
A première vue, il n'y aurait pas de MEFC (à vérifier dans les colonnes non
présentes en version 2003



Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"jip" a écrit dans le message de groupe de discussion :


bonjour,
j'ai un petit fichier excel, à priori créé à partir d'un modèle avec
un tas de lignes.
Il comporte 17 lignes et une ligne d'en-têtes sur 20 colonnes.
si je fais ctrl+fin j'arrive en L2033 CAA.
je supprime donc de la ligne 19 à 2035 mais re ctrl+fin j'arrive
toujours à L2033....
Pourquoi ?
j'ai plusieurs fichiers allant de 18 à plusieurs milliers de lignes à
traiter, en les important dans un logiciel qui lui reconnait 78
enregistrements au lieu des 17 par exemple dans le premier, puis 28 au
lieu de 8 dans le 2e, etc...
(ces fichiers ont été créés dans calc)
je mets un exemple ici : http://cjoint.com/?0DBnpCkSTxP
Merci
isabelle
Le #23314171
bonjour jip,

après avoir supprimer les lignes et colonnes en trop,
il suffit de sélectionner la cellule A1 et d'enregistrer le fichier.

--
isabelle

Le 2011-04-27 07:16, jip a écrit :
bonjour,
j'ai un petit fichier excel, à priori créé à partir d'un modèle avec
un tas de lignes.
Il comporte 17 lignes et une ligne d'en-têtes sur 20 colonnes.
si je fais ctrl+fin j'arrive en L2033 CAA.
je supprime donc de la ligne 19 à 2035 mais re ctrl+fin j'arrive
toujours à L2033....
Pourquoi ?
j'ai plusieurs fichiers allant de 18 à plusieurs milliers de lignes à
traiter, en les important dans un logiciel qui lui reconnait 78
enregistrements au lieu des 17 par exemple dans le premier, puis 28 au
lieu de 8 dans le 2e, etc...
(ces fichiers ont été créés dans calc)
je mets un exemple ici : http://cjoint.com/?0DBnpCkSTxP
Merci

MichD
Le #23314161
Bonjour Isabelle,

Si tu utilises ma procédure, tu peux traiter toutes les feuilles d'un classeur
comme ceci... et il n'est pas nécessaire d'enregistrer!
'----------------------------------
Sub test()
Dim Sh As Worksheet
For Each Sh In ThisWorkbook.Worksheets
Supprimer_Lignes_Inutiles Sh.Name
Next
End Sub
'----------------------------------


MichD
--------------------------------------------
Publicité
Poster une réponse
Anonyme