Toon posts:

[VBA] Range toekennen aan een variabele & traagheid na print

Pagina: 1
Acties:

  • Hoshimaru
  • Registratie: oktober 2004
  • Laatst online: 08-10-2018
Hoi medetweakers :)

Ik heb voor m'n werk een Excel tooltje gemaakt mbv VBA dat me helpt bij het uitpluizen van de correcte IATA taxes en tariffs voor vliegtuigtickets. De bedoeling is het juiste bedrag te berekenen en reeks FQT+ commando's te genereren voor het GDS systeem dat we gebruiken.

Voorlopig zit in dat toolje een stuk VBA-code met hardcoded ranges. Ik zou daar graag vanaf willen stappen, zodat ik niet telkens die ganse code moet overlopen om alles een paar rows op te schuiven als er iets nieuws bij komt kijken.

Het volgend stukje code zorgt voor nogal wat kopbrekerij ^^"
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub getRanges()
    Dim wxRange, allRange As Range
    Dim txRange As Range
    Dim rangeStr As String
    
    Set allRange = Worksheets("Refund").UsedRange
    
    'Taxes range
    wxRange = allRange.Find("TAXES").Offset(0, 0).Address
    rangeStr = rangeStr + CStr(wxRange)
    wxRange = allRange.Find("SUBTOTAL").Offset(-1, 0).Address
    rangeStr = rangeStr + CStr(wxRange)
    
    'For info only. To be removed
    MsgBox "txRange: " + CStr(txRange) + " - xwRange: " + CStr(wxRange), vbInformation

End Sub

Hoe kan ik de gevonden wxRange toekennen aan de variabele txRange? Ik zoek me hier onnozel naar en heb nog geen oplossing gevonden :s Ik dacht dat "Set txRange = wxRange" wel zou lukken, maar dat is dus niet het geval D: Toch zijn beide variabelen van het type "Range".

Voorts ziet er ook nog een stukje code in om een rapportje te printen:
code:
1
2
3
4
5
6
7
8
9
10
11
Private Sub CmdPrint_Click()
    Dim printRange As Range

    With ActiveSheet.PageSetup
        .PrintArea = Worksheets("Refund").UsedRange.Address
        .FitToPagesWide = 1
        .FitToPagesTall = 1
    End With
    ActiveSheet.PrintOut From:=1, To:=1

End Sub

Zodra die code wordt uitgevoerd is de ineens gans excel super traag. Enig idee waar dit aan kan liggen?

't gaat om Excel 2000 >_<

  • pedorus
  • Registratie: januari 2008
  • Niet online
Hoshimaru schreef op vrijdag 15 oktober 2010 @ 12:34:
Toch zijn beide variabelen van het type "Range".
Nee, wxRange is een variant-string met het adres erin. Als je dim a,b as type doet, is a een variant. Met Range([string]) kun je er weer een range van maken, of je kunt gewoon dat .Address niet daar gebruiken waar je dat nu doet...
Zodra die code wordt uitgevoerd is de ineens gans excel super traag. Enig idee waar dit aan kan liggen?
Printen op de achtergrond op een trage pc?
't gaat om Excel 2000 >_<
Deze versie van Excel krijgt geen updates meer en is een security risk... :p

Vitamine D tekorten in Nederland | Middelen tegen corona


  • NMe
  • Registratie: februari 2004
  • Laatst online: 24-09 13:16

NMe

Quia Ego Sic Dico.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • _heretic_
  • Registratie: mei 2004
  • Laatst online: 16-12-2012

_heretic_

so, a chicken is not a sparrow

de beschikbare vba-afdrukobjecten zijn berucht om hun traagheid. afdrukken op achtergrond en xlmcode gebruiken kan helpen.

In corporate religions as in others, the heretic must be cast out not because of the probability that he is wrong but because of the possibility that he is right.


  • Hoshimaru
  • Registratie: oktober 2004
  • Laatst online: 08-10-2018
Thanks voor de tips (^_^)b

Dit stukje code doet exact wat ik nodig heb.
code:
1
2
3
4
5
6
Set wxRange = allRange.Find("TAXES").Offset(0, 1)
rangeStr = Replace(CStr(wxRange.Address), "$", "")
Set wxRange = allRange.Find("TAX TOTAL").Offset(-1, 1)
rangeStr = rangeStr + ":" + Replace(CStr(wxRange.Address), "$", "")
Set txRange = Range(rangeStr)
rangeStr = ""


Voor het printen lijkt het niet zo een pc probleem te zijn. Het is een Intel Core 2 Duo E6600.
Voorts print het zo goed als onmiddellijk, maar het is eenmaal de printopdracht gegeven dat m'n excel sheet traag reageert. Als ik het sluit en opnieuw open is het weer in orde, totdat ik weer eens die printfunctie gebruik.


Nintendo Switch (OLED model) Apple iPhone 13 LG G1 Google Pixel 6 Call of Duty: Vanguard Samsung Galaxy S21 5G Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True

Tweakers maakt gebruik van cookies

Bij het bezoeken van het forum plaatst Tweakers alleen functionele en analytische cookies voor optimalisatie en analyse om de website-ervaring te verbeteren. Op het forum worden geen trackingcookies geplaatst. Voor het bekijken van video's en grafieken van derden vragen we je toestemming, we gebruiken daarvoor externe tooling die mogelijk cookies kunnen plaatsen.

Meer informatie vind je in ons cookiebeleid.

Sluiten

Forum cookie-instellingen

Bekijk de onderstaande instellingen en maak je keuze. Meer informatie vind je in ons cookiebeleid.

Functionele en analytische cookies

Deze cookies helpen de website zijn functies uit te voeren en zijn verplicht. Meer details

janee

    Cookies van derden

    Deze cookies kunnen geplaatst worden door derde partijen via ingesloten content en om de gebruikerservaring van de website te verbeteren. Meer details

    janee