[VBA/Excel 2003] lege regels niet exporteren

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

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
ik heb een Excel (2003) file met gegevens, waar na een aantal macro-bewerkingen ongeveer 150 regels met data overblijven. De rest is gewoon leeg.

Na al diverse dingen te hebben geprobeerd:
  • copy/paste in een nieuwe sheet
  • alle onderliggende regels, en naastliggende kolommen verwijderen
  • alle onderliggende regels, en naastliggende kolommen verbergen
  • copy/paste in een nieuwe file
  • export als csv
  • export als txt, comma-delimited, tab-delimited
  • zoeken op GoT naar mogelijke andere oplossingen
kom ik er niet meer uit.

Steeds na het exporteren naar txt (wat uiteindelijk de bedoeling is) heb ik 150 regels data, tab-gescheiden, maar ook nog 5 kolommen leeg, en afhankelijk van wat ik probeer tussen de 1000 en 65000 LEGE REGELS, die ook worden geexporteerd. (na import in bv Access heb je dan dus evenzoveel lege regels in je db staan :X)

Wie kan mij hiermee helpen. tnx im voraus :)

iets met foto's...


  • onkl
  • Registratie: Oktober 2002
  • Laatst online: 23:54
Kijk eens wat je usedrange is.
code:
1
2
3
sub test
msgbox activeworksheet.usedrange.address
end sub

Hier een topic in experts exchange wat zijdelings gerelateerd lijkt.

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
Visual Basic:
1
2
3
sub test()
msgbox activesheet.usedrange.address
end sub
geeft aan $A$1:$M$1000
Dit zou moeten zijn ongeveer (variabel) rond de $A$1 : $M 150-200.
Is er een manier om makkelijk te ontdekken wat de laatste gevulde cel in een kolom is ?
(ik kom niet verder dan een Do until...Loop icm een IF activecell.value="" o.i.d.)

iets met foto's...


  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
ok, ik heb gevonden, op experts exchange (thanks @ onkl)
Visual Basic:
1
2
3
4
lastrow = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

nu moet ik de uitkomst hiervan nog zien te gebruiken... is er een code als SetRange o.i.d. F1 in VBA helpt niet echt :X

iets met foto's...


  • Bud_s
  • Registratie: Maart 2002
  • Laatst online: 01-08 16:55
Dit zou evt. kunnen mwt

code:
1
2
3
4
5
SheetName = ActiveSheet.Name
LaatsteRij = Sheets(SheetName).Range("a65536").End(xlUp).Row 
' bovenstaande geeft de laatste rij waarvoor kolom a gevuld is

For Rij = EersteRij To LaatsteRij

  • Gulf_5
  • Registratie: Maart 2004
  • Laatst online: 20-10-2024

Gulf_5

Lucht-v/w-aardig

Topicstarter
FYI nog even mijn oplossing voor het probleem, thanks for your help !
Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Range("A1").Select
lastrow = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lastcol = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
    

Range("a1").Select
ActiveCell.Offset(lastrow - 1, lastcol - 1).Select

adres = ActiveCell.Address
Range("a1", adres).Select
Selection.Copy
'en lekker plakken in een nieuwe sheetje doen :-)

iets met foto's...

Pagina: 1