• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Excel werkbook is heel erg groot

Status
Niet open voor verdere reacties.

don42

Gebruiker
Lid geworden
25 apr 2014
Berichten
800
Beste allemaal
ik heb heel lang aan deze file zitten werken en nu kom ik er achter dat er iets mis is gegaan, er zijn enorm veel rijen aangemaakt
het zal wel te maken hebben met xldown maar ook als ik het verander blijft de sheet zo buitensporig groot
wie kan mij helpen
heb dit werkje echt nodig


door de volgende code
Code:
Private Sub CommandButton23_Click()
t = 2
Do While Sheets("Poule-A").Cells(t, 6) <> ""
If Cells(t, 8).Value = "A" Then Cells(t, 14).Value = Cells(t, 7).Value Else If Cells(t, 11).Value = "A" Then Cells(t, 14).Value = Cells(t, 10).Value
t = t + 1
Loop
Range(Range("b2:c2"), Range("b2:c2").End(xlDown)).Select
Selection.ClearContents

Range(Range("n2"), Range("n2").End(xlDown)).Copy
Range("c2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("a1").Select
Range("q3").Value = "0"
End Sub

is mijn werkje wel 10mb groot geworden
hoe kan ik dat herstellen?
ik heb duizenden lege rijen die zich niet laten verwijderen


bvd
Don
 
Je kan op elk werkblad via Ctrl-End de usedrange bepalen en de rest verwijderen, niet deleten maar echt de rijen en kolommen verwijderen.
Dan je bestand opslaan en sluiten.
Na opnieuw openen zou het tot de normale proporties teruggekeerd moeten zij,.
 
Hoi cobbe,

bedankt voor je reactie
maar het lukt niet om een regel te verwijderen deze komt gewoon terug ik zit met Ctrl-End op regel 1048576 dat is toch niet normaal
maar als je dit stukje code test

Code:
Range(Range("b2:c2"), Range("b2:c2").End(xlDown)).Select
Selection.ClearContents

Range(Range("n2"), Range("n2").End(xlDown)).Copy
Range("c2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("a1").Select
Range("q3").Value = "0"
End Sub

dan gebeurt het dat je al die regels krijgt

Don
 
Nadat je hebt gedaan wat Cobbe zei moet je Excel afsluiten en dan dat document weer openen, dus niet eerst weer andere dingen ermee gaan doen.
 
Als je die code nu eens een beetje aanzuiverde:
Code:
Sub cobbe()
 Range("b2:c" & Range("b" & Rows.Count).End(xlUp).Row).ClearContents
  Range("n2" & Range("n" & Rows.Count).End(xlUp).Row).Copy Range("c2")
   Range("q3").Value = "0"
 
Ik heb het voor elkaar vraag me niet hoe maar het werkt

Code:
Private Sub CommandButton23_Click()
t = 2
Do While Sheets("Poule-A").Cells(t, 6) <> ""
If Cells(t, 8).Value = "A" Then Cells(t, 14).Value = Cells(t, 7).Value Else If Cells(t, 11).Value = "A" Then Cells(t, 14).Value = Cells(t, 10).Value
t = t + 1
Loop
Range(Range("b2:c2"), Range("b2:c2").End(xlDown)).Select
Selection.ClearContents
Range("a1").Select
If Range("n2").Value = "" Then
Else
If Range("n3").Value = "" Then
Range("n2").Value = Range("n2").Value
Else
Range(Range("n2"), Range("n2").End(xlDown)).Copy
Range("c2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("a1").Select
Range("q3").Value = "0"
End If
End If
End Sub



het probleem zat er in als in kolom N niks of maar 1 waarde (n2) stond dan maakte hij zoveel rijen aan
kreeg die ook niet weg moest een nieuw tabblad aanmaken
misschien willen jullie nog eens naar de code kijken (maar hij werkt zei hij trots :D)

don
 
Laatst bewerkt:
Er valt nog heel wat te verbeteren aan die code, ook qua leesbaarheid. Begin eens met wat Cobbe liet zien in #5.
 
Ik heb het op veel manieren geprobeerd maar krijg nog steeds foutmeldingen, nog even proberen
 
Bijv.

Code:
Private Sub CommandButton23_Click()
 [N2:N200] = [if(F2:F200="",if(N2:N200="","",N2:N200),if(H2:H200="A",G2:G200,if(K2:K200="A",J2:J200,if(N2:N200="","",N2:N200))))]
  
 [c2:C200].ClearContents
 [b2:B200] = [N2:N200].Value
End Sub

NB. Zonodig '200' aanpassen (groter of kleiner)
 
Deze werkt

Heb de code aangepast is dit wat je bedoeld

Code:
Private Sub CommandButton23_Click()
[N2:N200] = [if(F2:F200="",if(N2:N200="","",N2:N200),if(H2:H200="A",G2:G200,if(K2:K200="A",J2:J200,if(N2:N200="","",N2:N200))))]
Range(Range("b2:c2"), Range("b2:c2").End(xlDown)).Select
Selection.ClearContents
Range("a1").Select
Range(Range("n2"), Range("n2").End(xlDown)).Copy
Range("c2").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("a1").Select
Range("q3").Value = "0"
End Sub

Kan/wil je mij kort uitleggen waarom toch de hele kolom N gevuld word zonder een loop
dat zie ik niet

graag je mening
Don
 
Laatst bewerkt:
Neen niet goed!! @snb heeft je de code toch gegeven:

Code:
Private Sub CommandButton23_Click()
 [N2:N200] = [if(F2:F200="",if(N2:N200="","",N2:N200),if(H2:H200="A",G2:G200,if(K2:K200="A",J2:J200,if(N2:N200="","",N2:N200))))]
  [c2:C200].ClearContents
   [b2:B200] = [N2:N200].Value
End Sub
 
Ik heb de code van @Cobbe nu aan de praat het werkt super
misschien een kleine uitleg hoe het werkt
maar heel erg bedankt

:d don
 
Laatst bewerkt:
Stapje veder

ik heb de code van Cobbe nu in gebruik
heb het in een nieuw blad gezet en alles is een stuk duidelijker hoe de code werkt
ben er verder mee gegaan in mijn werkblad waar ik een poule indeling maak

Code:
[N2:N100] = [if(F2:F100="",if(N2:N100="","",N2:N100),if(H2:H100="A",G2:G100,if(N2:N100="","",N2:N100)))]
[P2:P100] = [if(F2:F100="",if(P2:P100="","",P2:P100),if(K2:K100="B",J2:J100,if(P2:P100="","",P2:P100)))]

[N2:N100] = [if(F2:F100="",if(N2:N100="","",N2:N100),if(H2:H100="B",J2:J100,if(N2:N100="","",N2:N100)))]
[P2:P100] = [if(F2:F100="",if(P2:P100="","",P2:P100),if(K2:K100="A",G2:G100,if(P2:P100="","",P2:P100)))]

Kan deze code korter?
Don
 
Het is niet de bedoeling dat je in een vraag van iemand anders een eigen vraag stelt (zeker niet als die al is opgelost), dus graag een eigen vraag maken :).
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan