Toon posts:

[EXCEL] macro voor regel te verwijderen

Pagina: 1
Acties:
  • 143 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Geachte die hard VB'ers en andere geïntresseerde,

Ik heb een probleem met een te schrijven macro, ik heb er geen ervaring mee en er zijn toch weer andere regeltjes en plichtjes dan bij C++/pascal/PHP.

Daarom wil ik een beroep op jullie doen om mijn probleem op te lossen.

Het doel van de macro is om in een excel sheet om de 55 regels 7 regels te verwijderen ( en dat deze verwijderde regels weer aansluiten, naar boven schuiven ) het zou helemaal mooi zijn als je eerste regel van de selecite en de laatste regel van de selectie en hoelang is als variable word opgegeven zodat de gebruiker per document kan varieren.
ik heb zelf al wat geprobeerd het is voor iemand wie vaker met macro's bezig is zo gedaan denk ik.

Wat ik tot nu toe in elkaar heb geflanst is dit:


( de manier van commentaar geven zal vast niet kloppen maar dat heb ik er nu even bijgezet om misverstanden te voorkomen )

startselect = 62
//eerste rij van de te verwijderen selectie
endselect = 67
// laatste rij van de te verwijderen selectie
laatsteregel = InputBox("Laatste rij", 40000)
// de lengte in rijen van het document, de weergave klopt niet helemaal omdat
// de standaart waarde 40000 zou moeten zijn alleen dat gooit hij nu in de titel
// terwijl dat Laatste rij had moeten zijn
laatsteregel = laatsteregel / 50
// laatsteregel gedeelt door 50 zodat je ongeveer het aantal keren hebt dat
// de loop zal moeten doorlopen
For teller = 1 To laatsteregel
Rows("startselect:endselect").Select
// rows werkt op een of andere manier niet ( terwijl cijfers inplaats van
// vars wel lukt )
Selection.Delete Shift:=xlUp
startselect = startselect + 55
endselect = endselect + 55
Next teller


nogmaals dit zal wel heel omslachtig wezen maar het gaat mij alleen maar om het resultaat want ik heb nu een bestand voor excel van 5 mb waarbij ik om de 55 regels 7 regels moet verwijderen.

Voor als je me kan helpen alvast heel erg bedankt...

----------COPY/PASTE----------
Sub Export()
'
' Export Macro
' Sneltoets: CTRL+e
startselect = 62
endselect = 67
laatsteregel = InputBox("Laatste rij", 40000)
laatsteregel = laatsteregel / 50
For teller = 1 To laatsteregel
Rows("startselect:endselect").Select
Selection.Delete Shift:=xlUp
startselect = startselect + 55
endselect = endselect + 55
Next teller

End Sub
----------COPY/PASTE----------

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

en de vraag is?

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB/AI

Front verplichte underscores

Inderdaad: wat is je specifieke vraag? (cq waar gaat het fout?)

Als je variabelen wilt gebruiken moet je dat doen lijkt me (is bijna altijd aan te raden), hoeven wij niet mee te helpen :P

Er is trouwens totaal geen reden om met selection te werken: roep dan meteen de rijen aan.

Nog we even een tip:
Application.ScreenUpdating = False
alle code
Application.ScreenUpdating = True

Maakt het gruwelijk veel sneller :Y)

[ Voor 13% gewijzigd door F_J_K op 15-01-2004 18:38 . Reden: selection is niet handig ]

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)