Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: ListObjects vraagje  (gelezen 24225 keer)

0 leden en 2 gasten bekijken dit topic.

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
ListObjects vraagje
« Gepost op: 17 februari 2020, 11:29:07 »
Hallo Helpers en Oplossers

Ik heb een stukje code die aan het eind van het jaar, wanneer ik mijn ritboekhouding wil klaarmaken voor het volgende jaar, van een tabel de rijen verwijderd. Dit lukt ook wel met onderstaande code maar duurt bij bijna 5000 rijen héééééééééééél lang  >:( Mijn vraag is, is dit te versnellen?

        With ws.ListObjects("Tabel11")
            If .ListRows.Count > 1 Then
                q = .ListRows.Count
                For i = 1 To q
                .ListRows(1).Delete
                Next i
            End If
        End With

Alvast al weer bedankt voor uw aandacht  ;D
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: ListObjects vraagje
« Reactie #1 Gepost op: 17 februari 2020, 13:01:50 »
Dit moet voldoende zijn:
Sub Dotch()
Set ws = Worksheets("Blad1")
    ws.ListObjects("Tabel11").DataBodyRange.Delete
End Sub

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: ListObjects vraagje
« Reactie #2 Gepost op: 17 februari 2020, 13:14:22 »
Top, dat werkt als een tierelier

Dank voor je input   \o/
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: ListObjects vraagje
« Reactie #3 Gepost op: 17 februari 2020, 13:27:49 »
Graag gedaan :)

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.277
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: ListObjects vraagje
« Reactie #4 Gepost op: 17 februari 2020, 18:16:17 »
Waarom met VBA???
Er vanuit gaande dat je tabelheader op regel 1 staat in de databody vanaf regel 2 begint, dan regel 2 selecteren door op de 2 te klikken. Dan Ctrl + Shift + pijl naar beneden indrukken. De hele databody is nu geselecteerd. Druk op Del op je toetsenbord en weg is alles...
Is toch veel eenvoudiger dan met VBA?  ;)
______________________________

Groet, Leo

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: ListObjects vraagje
« Reactie #5 Gepost op: 17 februari 2020, 18:20:07 »
Je heb gelijk RedHead, mocht het hier gaan om een enkele tabel. Tot dit jaar deed ik alles ook nog gewoon handmatig leegmaken en data aanpassen aan het nieuwe jaar, nu ben ik aan het kijken of ik dit met 1 druk op de knop kan bewerkstelligen ;)
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: ListObjects vraagje
« Reactie #6 Gepost op: 05 maart 2020, 15:14:37 »
Zelf gebruik ik deze code voor het leegmaken van 4 tabellen.
For i = 1 To 4
      ActiveSheet.ListObjects(i).DataBodyRange.Delete
    Next i
Groet,

Albert

Offline Ntr

  • Lid
  • *
  • Berichten: 20
  • Geslacht: Man
  • Oplossing.be
Re: ListObjects vraagje
« Reactie #7 Gepost op: 05 maart 2020, 17:47:12 »
Je krijgt een foutmelding als je listobject nog leeg is. Om dat te ondervangen gebruik ik deze code.
  With ActiveSheet.ListObjects(1)
    If .ListRows.Count Then .DataBodyRange.Delete
  End With

Offline AD1957

  • Ervaren lid
  • ***
  • Berichten: 250
  • Oplossing.be
Re: ListObjects vraagje
« Reactie #8 Gepost op: 06 maart 2020, 08:59:30 »
Ik had  "on Errror resume Next" om dit te ondervangen.
De code van jou is beter.
Groet,

Albert

Offline Josc1965

  • Ervaren lid
  • ***
  • Berichten: 279
  • Geslacht: Man
  • Je leert echt wat op "Oplossing.be"
Re: ListObjects vraagje
« Reactie #9 Gepost op: 06 maart 2020, 10:48:17 »
Ik ben niet zo'n fan van  "on Error resume Next", zeker niet in de leercurve waarin ik bezig ben ;) Uiteraard waardeer ik elke inbreng!
Johan
Windows 10 Home   NLD 64bit
Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz 2808
838F
Intel(R) HD Graphics 630 1024MB -
NVIDIA Virtual Audio Device (Wave Extensible) (WDM)
C:\ NTFS 118,01GB 44,78GB 8.079MB
AV: Avast Antivirus
FW: Windows Firewal Enabled: True
Office 2016

 


www.combell.com