sådan at det f.eks kun er felterne A1 til D1 og frem til A5 til D5 der er
synlige ?
MVH
Boel
Bo Br
"Boel" <m...@get2net.dk> skrev i en meddelelse
news:409a49ea$0$255$edfa...@dread11.news.tele.dk...
godt forslag, men ikke lige det jeg tænkte på, jeg er kun intereseret i at
se de nævnte celler, på din måde kan jeg blive ved med skjule kolloner og
rækker :-(
MVH
Boel
Så forstår jeg ikke rigtigt hvad det er du vil ??
Bo Br
>
> Så forstår jeg ikke rigtigt hvad det er du vil ??
>
Jeg vil f.eks. kun se 10x10 celler, de synlige celler skal helst fremstå som
et stykke papir, resten af arket skal ikke være synligt.
MVH
Boel
MVH
Boel
Og så kunne man måske blive indviet
i hvordan du gjorde.
Det er normalt at man kommer med
løsningen på problemet, når man har
spurtg andre til råds.
--
/Gevaldi
MVH
Boel
Spørgsmålet er lídt interessant, da jeg har fundet ud af, at hvis
f.eks. de 65000 liner ved en fejl er gjort "aktive" i et ark så fylder
filen meget mere end normalt. Jeg har et ark med 90 worksheets
hvor en del desværre er blevet med alle 65000 liner - doh - en
tom fil fylder så ca. 5 MB.
Det er ret uhensigtsmæssigt, er der ikke en måde man kan få
fjernet alle de linier som ikke bruges.
Tillægsspørsmål, kan man ændre opretteslsesdato og evt. forfatter
af en fil ?
Jeg skal lige forstå dit spørgsmål ret.
Du formaterer 65000 rækker pr. ark.
Det viser sig nu, at du "kun" skal bruge 500 rækker.
Dvs. filen "fylder" 64500 ubrugte formaterede rækker, som du ønsker fjernet?
At du bruger en række betyder, at der er data i mindst en celle.
Hvis det nu er sådan, at der er 10 tomme rækker blandt de 500 rækker, skal
de så også fjernes således, at du ender med rækker 490?
Med venlig hilsen
Jørgen Bondesen
NB. Du er meget velkommen til at skrive dit navn.
"NH" <dur....@nikkenej.tz> wrote in message
news:c97p1s$2cf2$1...@news.cybercity.dk...
Jae, det er nok korrekt, felterne er tomme, men der har været indsat data,
som så er fjernet igen. Dvs, hvis man ser på rullebjælken til højre, så dækker
den hele arket selv om der ikke er noget i felterne.
Jeg har prøvet at markere fra linie 15 og resten af arket ned og valgt
slet, men de forsvinder ikke af den grund, dvs. arket er ikke som hvis man
opretter et nyt ark mht. liner.
> At du bruger en række betyder, at der er data i mindst en celle.
Er du sikker på det ? Jeg har slettet 60.000 linier, men de figurerer
stadig i rullebjælken.
> Hvis det nu er sådan, at der er 10 tomme rækker blandt de 500 rækker, skal
> de så også fjernes således, at du ender med rækker 490?
Mine data kommer fortløbende fra line et og til måske 20 eller 100
forskelligt fra ark til ark.
Problemet opstod ved at jeg valgte at indsætte 100 speciel og så divider
i en kolonne hvorved hele kolonnen med blev aktiv, dvs. hvor der ikke var
data stod der 100 i stedet for. og jeg havde valgt at springe over tomme
felter mærkeligt nok.
Jeg valgte så at lave et nyt ark og fik barberet 4 MB af filen, men syntes
det kunne være rart at vide til en anden gang, om der var mulighed for
at omgå problemet. Der er sikkert andre med samme problem, da min
fil skal mailes til en større gruppe og jeg derfor ønsker den skal være så
lille som muligt.
> Med venlig hilsen
> Jørgen Bondesen
>
> NB. Du er meget velkommen til at skrive dit navn.
Jørgen Erhardtsen :-)
Skive
> Jae, det er nok korrekt, felterne er tomme, men der har været
> indsat data, som så er fjernet igen. Dvs, hvis man ser på
> rullebjælken til højre, så dækker den hele arket selv om der ikke
> er noget i felterne.
Excel husker adressen på den sidste celle du har været i inden for
denne session. Prøv at gemme filen og luk den op igen. Så skulle
adressen være glemt
--
Med venlig hilsen
Lars Klintholm
EFter at have læst tråden, har jeg prøvet at lege lidt med Excel for at
teste / prøve lidt lignede. Men kan det passe, at Excel-filen fylder 227 MB,
ved at jeg har åbnet en ny projektmappe, i et af regnearkene har jeg
indtastet et bogstav i samtlige celler og derefter gemt filen´(tastede et
bogstav i første celle og kopierede derefter til resten af cellerne)
227 MB lyder ret voldsomt for eet regneark, der er total brugt.
Jan
Lars Klintholm skrev:
Excel husker adressen på den sidste celle du har været i inden for
denne session. Prøv at gemme filen og luk den op igen. Så skulle
adressen være glemt
Svar JB: det er delvist rigtigt, men prøv at formater et område med farven,
gul.
Herefter ingen farve. Når filen åbnes igen vil [Ctrl + end] føre til den
sidste celle i det gule område.
'**********************************
NH skrev:
> At du bruger en række betyder, at der er data i mindst en celle.
Er du sikker på det ? Jeg har slettet 60.000 linier, men de figurerer
stadig i rullebjælken.
Svar JB: Det jeg mente var, at hvis der er data i en celle, så skal rækken
IKKE slettes. Det kunne faktisk være, at du havde en formel i en kolonne så
skal rækken ikke slettes hvis der er indhold i mere end 1 celle. Det har
intet at gøre med, at du har slettet data.
'***********************************
Jeg har selv problemet med data der slettes, hvorefter jeg har et par
tusinde "spøgelsesrækker" og de fylder.
Jeg har derfor nu kreeret nedenstående makro ud fra forskellige personers
anvisninger og jeg mener makroen er brugbar til problemet med
spøgelsesrækker/kolonner.
Jeg skal foreslå, at du tester på en kopi før den bruges rigtig, specielt
hvis det jeg skriver er "sort snak".
Hvis du ønsker uddybning, klarer vi nok også dette.
Indsæt nedenstående i et MODULE
'Dele empty rows in datarange (and before)
Const rowdatarange As Boolean = True
'Dele empty columns in datarange (and before)
Const columndatarange As Boolean = False
'select all sheets or activesheets
Const allsheets As Boolean = False
'Will not controle row after => 0
Const endrow As Integer = 1
'Will not controle column after => 0
Const endcolumn As Integer = 1
'Delete row if count = x
Const delcountrows As Integer = 0
'Delete columns if count = x
Const delcountcolumns As Integer = 0
Option Explicit
'----------------------------------------------------------
' Procedure : RowsColumns_EmptyDelete
' DateTime : 29-05-2004
' Author : Jørgen Bondesen and a lot of unknown persons.
' Purpose : Delete ghost rows/columns in activesheet or
' entire workbook.
' Notice : If you delete row where another cell have
' referece to a cell, the link will be
' destroyed.
' ATT ATT: Keep ESC down for breaking running macro.
' 200000 rows means 25 minutes and rising temperature from
' 42 to 67 degree C. Athlon 1800+.
' WinXP-UK, OffXP-UK.
'----------------------------------------------------------
'
Sub RowsColumns_EmptyDelete()
Application.ScreenUpdating = False
Dim Starttime As Date
Starttime = Now
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
'Only activesheets
If allsheets = False And sh.Name <> _
ActiveSheet.Name Then GoTo line09
Dim rangerows As Long
rangerows = sh.UsedRange.rows.Count
'Empty rows from row 1 => 65xxx
Dim r As Long
For r = 1 To rangerows
Dim countrowfirst As Integer
countrowfirst = Application.WorksheetFunction. _
CountA(sh.rows(r))
Dim countfirst As Long
If countrowfirst = delcountrows Then
countfirst = countfirst + 1
Else
GoTo line05
End If
Application.StatusBar = sh.Name & ", " & r
Next r
line05:
'Determine real last row/column
Dim RealLastRow As Long
Dim RealLastColumn As Long
Call GetRealLastCell(sh, RealLastRow, RealLastColumn)
'Rows
If rangerows > RealLastRow Then
sh.rows((RealLastRow + 1) & ":" & (rangerows + countfirst)). _
Delete Shift:=xlUp
End If
If rowdatarange = True Then
'***********
Dim datarangerows As Long
datarangerows = sh.UsedRange.rows.Count
If datarangerows < RealLastRow Then
Dim addrow As Long
addrow = RealLastRow - datarangerows
End If
Dim n As Long
For n = (datarangerows + addrow) To endrow Step -1
Dim countrow As Integer
countrow = Application.WorksheetFunction. _
CountA(sh.rows(n))
If countrow = delcountrows Then sh.rows(n).Delete _
Shift:=xlUp
Application.StatusBar = sh.Name & ", " & n
Next n
'***********
End If
'Columns
Dim rangecolumns As Long
rangecolumns = sh.UsedRange.Columns.Count
'Empty columns from column A => IV
Dim C As Long
For C = 1 To rangerows
Dim countcolumnsfirst As Integer
countcolumnsfirst = Application.WorksheetFunction. _
CountA(sh.Columns(C))
Dim countfirstcol As Long
If countcolumnsfirst = delcountcolumns Then
countfirstcol = countfirstcol + 1
Else
GoTo line07
End If
Next C
line07:
Dim x As Integer
If rangecolumns > RealLastColumn Then
For x = (rangecolumns + countfirstcol) To _
(RealLastColumn + 1) Step -1
sh.Columns(x).Delete Shift:=xlToLeft
Next x
End If
If columndatarange = True Then
'***********
Dim datarangecolumns As Long
datarangecolumns = sh.UsedRange.Columns.Count
If datarangecolumns < RealLastColumn Then
Dim addcol As Long
addcol = RealLastColumn - datarangecolumns
End If
Dim O As Long
For O = datarangecolumns + addcol To endcolumn Step -1
Dim countcolumns As Integer
countcolumns = Application.WorksheetFunction. _
CountA(sh.Columns(O))
If countcolumns = delcountcolumns Then _
sh.Columns(O).Delete Shift:=xlToLeft
Application.StatusBar = sh.Name & ", " & O
Next O
'***********
End If
line09:
Next sh
Dim xx As Long
xx = ActiveSheet.UsedRange.rows.Count
ActiveWorkbook.Save
Dim Endtime As Date
Endtime = Now
Application.StatusBar = "Finito, used time: " & _
Format((Endtime - Starttime), "HH:MM:SS")
End Sub
Public Function GetRealLastCell(sh As Worksheet, _
RealLastRow As Long, RealLastColumn As Long)
With sh
On Error Resume Next
RealLastRow = .Cells.Find("*", sh.Range("A1"), , , _
xlByRows, xlPrevious).Row
RealLastColumn = .Cells.Find("*", sh.Range("A1"), , _
, xlByColumns, xlPrevious).Column
End With
End Function
'**** end MACRO ***
Med venlig hilsen
Jørgen Bondesen
NB. Jeg vil blive meget glad for en tilbagemelding.
Det er desværre ikke den erfaring jeg har gjort.
Min fil kom til at fylde mere og mere for hver gang
jeg gemte den uden at tilføje data, også selv om
jeg gemte som ny projektmappe.
SNIP en makrokode
> Med venlig hilsen
> Jørgen Bondesen
>
> NB. Jeg vil blive meget glad for en tilbagemelding.
Det ser da meget ineteressant ud Jørgen og kompliceret,
jeg skal prøve at teste en af de nærmeste dage.
Umiddelbart vil jeg mene det må være en fejl, at Excel ikke
frigiver sig oplysninger om de celler som ikke er i brug og
som er valgt slettet, men det er muligt jeg har uret. I så
fald skal man da ikke rode for meget rundt hvis man vil
beholde en rimelig lille størrelse på filen.
Jeg har i øvrigt prøvet at gemme samme 5 MB Excel fil
som HTML - så fylder den kun 45 KB med samme inf.
dog mister jeg side- hoved og fod samt gitterliner.
Åbner jeg så denne HTML fil igen med Excel og gemme
som Excel-fil er den tilbage på de 5 MB og sidehoved
og fod er med igen - mærkeligt.
> Umiddelbart vil jeg mene det må være en fejl, at Excel ikke
> frigiver sig oplysninger om de celler som ikke er i brug og
> som er valgt slettet, men det er muligt jeg har uret.
Ja, det er en BUG, som jeg har valgt, at tage til efterretning og tage mine
forholdsregler.
Hvornår MS gør noget, er en anden sag.
> Jeg har i øvrigt prøvet at gemme samme 5 MB Excel fil
> som HTML - så fylder den kun 45 KB med samme inf.
> dog mister jeg side- hoved og fod samt gitterliner.
> Åbner jeg så denne HTML fil igen med Excel og gemme
> som Excel-fil er den tilbage på de 5 MB og sidehoved
> og fod er med igen - mærkeligt.
Jeg har aldrig arbejdet med HTML. Jeg gætter på at 45 kb til 5 MB skyldes,
at du også gemmer "ghost informations".
Du skulle måske overveje xml-formatet. Her bibeholdes side- hoved og fod
samt gitterliner.
Jeg ved ikke om xml-formatet var med i Excel 2000, men det er i XP.
Modtageren skal ligeledes have XP (2000).
Jeg kom pludselig i tanke om en artikel fra 12-05-2002:
Unusual File Size Increase
Unfortunately it is not too uncommon to have an Excel Workbook increase in
file size for no apparent reason. Below are some methods to overcome this
problem, that should be performed in the order stated! Please note OzGrid
accepts no responsibility for any loss of data. This means save a copy of
your Workbook first. After each step Save and check the File size by going
to File>Properties/General If it has reduced the file size you shouldn't
need to go any further!
Avoid saving as multiple versions. Save as "Microsoft Excel Workbook
(*.xls). You can make this the default by going to Tools>Options/Transition
and selecting Microsoft Excel Workbook from the Save Excel files as
Combobox. This alone can reduce file size by 50%
Do the following to ALL Worksheets. Select any single cell then push F5,
click Special and check the "Blanks" option and click Ok. Now go to
Edit>Clear>All. Manually go to the last used row in the Worksheet (do not
use Edit>Go to-Special "Last Cell"). Select the entire row beneath, then
holding down the Ctrl+Shift key push the Down Arrow. This should select all
unused rows. Now go to Edit>Clear>All. Do the same for the Columns. Now
Save.
Right click on any sheet name tab and select "Select all sheets". Now right
click again and select "Move or copy" Check the Create a copy option then
choose "(New Book)" and click Ok. Save this new Workbook as any name and
check it's file size via File>Properties/General. If no dramatic difference
delete one sheet at a time and Save, each time check it's file size via
File>Properties/General and see if there has been a disproportional
reduction in file size. If there has, the Worksheet may have been corrupt,
go back to the the original Workbook and copy the entire contents of the
possibly corrupt Worksheet. Come back to the new Workbook, insert a new
Worksheet and paste the data onto it. If this does not help you may need to
delete a few rows at a time (Saving each time) until you find the offending
row(s).
If you have Modules and/or UserForms in the Workbook, open the VBE (Alt+F11)
and right click on each in the "Project Explorer" (Ctrl+R) and Export. Now,
in a new Workbook again open the VBE and go to File>Import File.. and import
all Modules and UserForms into this Workbook. Use the Move or copy method
(as shown in step above) to copy all sheets into this Workbook then Save.
This may also be a good time to follow the links and read about Excel's
Start up switches. In particular the switch: /regserver Run this by closing
out of Excel completely, going to Start>Run then typing in:
Excel /regserver Note the space after "Excel"
XL97: Startup Switches for Microsoft Excel 97 (Q159474)
XL2000: Startup Switches for Microsoft Excel 2000 (Q211481)
Interessant ik', og her er så en makro:
'If whole sheet
Const WholeSh As Boolean = True
'If avoid row before = x (WholeSh = False)
Const StartRow As Long = 5
Option Explicit
'----------------------------------------------------------
' Procedure : GhostCellsRemove
' Date : 30-05-2004
' Author : Joergen Bondesen and article from OzGrid.
' Purpose : Remove "empty" cells if File Size Increase.
' ***ATT.***: ANY sort of formate will be removed from
' "empty" cells.
' You can't rely 100% on this macro. Duering
test, I experienced that the macro suddenly
would not remove "empty" cells. ????
'----------------------------------------------------------
'
Sub GhostCellsRemove()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
Dim TotRowsInSh As Long
TotRowsInSh = sh.Cells.Rows.Count
If WholeSh = True Then
sh.Cells.SpecialCells(xlCellTypeBlanks).Clear
Else
sh.Rows(StartRow & ":" & TotRowsInSh). _
SpecialCells(xlCellTypeBlanks).Clear
End If
Next sh
ActiveWorkbook.Save
' Call AddBorder
End Sub
Sub AddBorder()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
With sh.UsedRange
With .SpecialCells(xlLastCell)
.Borders(xlDiagonalDown).LineStyle = xlNone
.Borders(xlDiagonalUp).LineStyle = xlNone
End With
With .Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With .Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
End With
Next sh
ActiveWorkbook.Save
End Sub
Hej Jørgen
Referende til ovenstående indlæg har jeg nu været ved at teste den
makro du havde lavet - bedre sent end aldrig ....
Jeg får dog en fejl når jeg afvikler den og har postet
et billede i dk.binaere der viser fejlen.
Jeg syntes stadig, at det er et stort problem med de
spøgelsesceller i Excel.
Her er koden du skrev oprindelig :
Option Explicit
Application.ScreenUpdating = False
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Sheets
'Only activesheets
line09:
Next sh
ActiveWorkbook.Save
End Sub
'**** end MACRO ***
Med venlig hilsen
Jørgen Bondesen
NB. Jeg vil blive meget glad for en tilbagemelding.
Kunne du ikke beskrive den fejl du får.
--
Med venlig hilsen
Jørgen Bondesen
"N Sørensen" <virke...@nikkenej.se> wrote in message
news:ccer1b$1q40$1...@news.cybercity.dk...