[VBA] Excel Sheetnaam onthouden om hier later terug te keren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Da_maniaC
  • Registratie: September 2004
  • Laatst online: 31-05 14:58

Da_maniaC

a.k.a. The Sequenz Pounder

Topicstarter
Hey mensen :),

Situatie:
Ik heb een Excelfile met meerdere Sheets. Op al deze sheets bevindt zich een knop die Macro "A" start.
Deze Macro maakt een verborgen sheet zichtbaar.
Op deze verborgen sheet staan wederom een aantal knoppen om handelingen uit te voeren, waaronder een knop "Annuleren" (welke een macro "Annuleren" start).
Nu zou ik graag met deze knop weer terug willen keren naar de Sheet waar ik Macro "A" heb gestart.
Om dit te doen onthoud ik in Macro "A" de Sheetnaam van de Sheet waaruit de macro wordt gestart.
Wanneer ik nu echter deze waarde aan wil roepen in de macro "Annuleren" dan krijg ik echter een standaard debug error (Subscript out of Range).
Waarschijnlijk is mijn benadering niet goed waardoor ik in de macro "Annuleren" een waarde aanroep die niet bekend is.

Het deel van de Code in Macro "A":
code:
1
2
3
4
'   De Sheetnaam van de Sheet waarin de macro wordt gestart wordt onthouden:

    Dim SheetName As String
    SheetName = ActiveSheet.Name


Het deel van de code in Macro "Annuleren":
code:
1
2
3
'   De laatstgebruikte Sheet wordt weer geselecteerd

    Sheets(SheetName).Activate


Weet iemand misschien wat ik verkeerd doe? :)

Inventory | Instagram: @sequenzpounder | http://www.zdaemon.org | ZDaemon! Client/Server port for DOOM!


Acties:
  • 0 Henk 'm!

  • ocwil
  • Registratie: Mei 2007
  • Laatst online: 11-09 15:14
Ik kan het mis hebben maar de waarde "SheetName" in macro A die heb je niet in macro Annuleren
een tussen oplossing is om de "SheetName" op te slaan in een veld op de verborgen sheet
om vervolgens in de macro Annuleren dat veld uit te lezen.

[ Voor 8% gewijzigd door ocwil op 13-03-2012 00:33 ]

~ Portal 2 maps: linkje ~ LoL (EUW): Ocwil ~


Acties:
  • 0 Henk 'm!

  • Da_maniaC
  • Registratie: September 2004
  • Laatst online: 31-05 14:58

Da_maniaC

a.k.a. The Sequenz Pounder

Topicstarter
Opzich een goed idee... en het werk! :)
Een stukje verderop in de code doe ik hetzelfde maar dan met een Cell adres. Dit doe ik die maal. De eerste twee keer gaat het goed, maar de derde keer niet (Ik gebruik exact dezelfde syntax).

Het is gelukt. :)
Bij het gebruiken van 'Select' itt 'Value' moet eerst de Sheet apart geactiveerd worden en vervolgens kan ik de Cell selecteren.

[ Voor 46% gewijzigd door Da_maniaC op 13-03-2012 03:02 ]

Inventory | Instagram: @sequenzpounder | http://www.zdaemon.org | ZDaemon! Client/Server port for DOOM!


Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

ocwil schreef op dinsdag 13 maart 2012 @ 00:32:
[...]
een tussen oplossing is om de "SheetName" op te slaan in een veld op de verborgen sheet
om vervolgens in de macro Annuleren dat veld uit te lezen.
Gebruikelijker is het om daarvoor een variabele op moduleniveau te gebruiken.
Visual Basic:
1
2
3
4
5
6
7
8
Private s As Worksheet
Sub A()
   Set s = ActiveSheet
End Sub

Sub B()
   If Not (s Is Nothing) Then s.Activate
End Sub

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