• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Terug naar tabblad!

  • Onderwerp starter Onderwerp starter DZP
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

DZP

Gebruiker
Lid geworden
26 feb 2007
Berichten
242
Terug naar bladtab!

Ik ga om een handeling te plegen via VBA naar een ander tabblad in het zelfde bestand maar daarna wil ik weer terug naar het vorige tabblad waar ik als laatste ben geweest.
Dit varieert omdat het iedere week een ander tabblad is.
Is dit ook mogelijk via VBA of is dat teveel gevraagd van het systeem.:o
 
Laatst bewerkt:
Ik ben er mee bezig.... Gaat iets vreemds fout..... :confused:
Kom er op terug.

Ow ja... Ik ga ervan uit dat je het over een Werkblad hebt en niet over een Tabblad. Zijn namelijk 2 totaal verschillende dingen ;)
 
In een werkmap zijn tabbladen en werkbladen toch aardig synoniem hoor.
Probeer eens
 
Puur voorbeeld:

Code:
'    Code by J. Radjesh Klauke
'    http://office.webforums.nl

Private Sub Workbook_Open()
    Call Module1.LastSheetAccess
End Sub

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    With Sheets("Blad1")
        .Range("A2").Value = .Range("A1").Value
        .Range("A1").Value = Sh.Name
    End With
End Sub

Roep deze module aan als je naar laatste blad wilt: (ALT+F8)

Code:
'    Code by J. Radjesh Klauke
'    http://office.webforums.nl

Option Explicit

Sub LastSheetAccess()
    Sheets(Sheets("Blad1").Range("A2").Value).Activate
End Sub

:thumb:

@ Richard: In een werkboek hebben we ook te maken met VBA. in de Formulieren wordt gewerkt met Tabbladen. Maar dat is overigens ook niet ter sprake :thumb: :)
 
Bij de opties staat inderdaad bladtabs en niet tabblad en het is inderdaad een werkblad, dus beide gelijk.

Maar mijn vraag is nog niet beantwoord omdat ik de vraag blijkbaar niet goed heb gesteld.
Ik heb een voorbeeldje bijgesloten zodat ik hoop dat het wat duidelijker is.
Sorry voor de moeite, de overlast en de misverstanden.
 

Bijlagen

Laatst bewerkt:
Ik hoop dat dit is wat je bedoeld.

Je kunt diverse keren werkbladen selecteren. Er wordt op de achtergrond onthouden in welke werkblad je voor het laatst iets hebt gewijzigd.

Je hebt geen knop nodig om naar blad11 te gaan. Klik gewoon op dit tabblad. (Ik heb ook een macro toegevoegd die dit doet.
Met de knop op blad11 kom je op het werkblad terecht waarin het laatst een wijziging is gedaan.
 

Bijlagen

Marcel zei:
Je kunt diverse keren werkbladen selecteren. Er wordt op de achtergrond onthouden in welke werkblad je voor het laatst iets hebt gewijzigd.
Dat is perfect.
Marcel zei:
Je hebt geen knop nodig om naar blad11 te gaan. Klik gewoon op dit tabblad.
Helaas moet dat wel want niet alle bladen zijn zichtbaar.
(Het zijn er teveel <-> +/- 60).

Marcel zei:
Ik heb ook een macro toegevoegd die dit doet.
Die kan ik helaas niet vinden.
Marcel zei:
Met de knop op blad11 kom je op het werkblad terecht waarin het laatst een wijziging is gedaan.
Dit is het en het werkt zoals ik graag wil.
Marcel bedankt voor je tijd en je inzet.:thumb:


De eindoplossing nog even bijgevoegd!!
 

Bijlagen

Laatst bewerkt:
Helaas heb ik hem weer geopend want het werkt nog niet bij mij.

Onderstaande macro heb ik in ieder werkblad ingevoerd!!
Code:
Private Sub Worksheet_Activate()
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    SheetWaarde = ActiveSheet.Name
End Sub


Onderstaande macro staat in blad 68 en heb ik gebruikt om terug te gaan naar het laatst geactiveerde blad!!
Code:
Private Sub CommandButton1_Click()

    Dim SheetTeller As Long
    Dim Sheetvolgnummer As Long
    
    If Len(SheetWaarde) > 0 Then
    SheetTeller = ActiveWorkbook.Sheets.Count
    Sheetvolgnummer = 1
    MsgBox SheetWaarde
    For Sheetvolgnummer = 1 To SheetTeller
    
    If Sheets(Sheetvolgnummer).Name = SheetWaarde Then
    Exit For
    Else
    End If
    Next Sheetvolgnummer
    
    Sheets(Sheetvolgnummer).Activate
    Else
    End If
End Sub

verder heb ik 68 bladen en 5 verschillende namen daarin:
van 1 t/m 53 (weken),
van Jan t/m dec (maanden)
en nog diverse totaal bladen.

Dus mijn vraag is wat zou ik fout kunnen doen waardoor het niet werkt.
(Als ik in de bijlage de namen verandert blijf hij het wel doen ?)
Wie weet is Marcel nog in de buurt:)
 
Laatst bewerkt:
Waarom wordt in de code met een teller gewerkt om het juiste tab te vinden, terwijl je een sheet ook kan aanspreken met zijn naam, en dus die teller overbodig maakt?

Oh ja, je zegt dat het niet werkt, maar voor ons zegt dat niet veel. Kan je even zeggen WAT er juist niet werkt?

edit: ik heb het maar snel even bekeken, maar geloof dat onderstaande code hetzelfde doet als diegene de je nu gebruikt, alleen is hij korter en efficienter:

If Len(sheetwaarde) > 0 Then
Sheets(sheetwaarde).Activate
Else
MsgBox "Geen sheetwaarde bekend"
End If
 
Laatst bewerkt:
Misschien is de kortste methode wel die van mij...:D Ik maak gebruik van het Workbook_SheetDeactivate-event van de module ThisWorkbook. Zodra je een sheet verlaat wordt het event afgeschoten en de public variabele 'sSheetNaam' gevuld.
Code:
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

    MsgBox "Zojuist verlaten... " & Sh.Name
    sSheetNaam = Sh.Name

End Sub
Door nou een gewone module aan te maken en dit stukje code daarin te plaatsen en vervolgens een knop op je 'help-sheet' die je hieraan verbindt, wordt je altijd weer teruggezet in je vorige sheet!
Code:
Public sSheetNaam As String

Sub ReturnToSheet()

    Sheets(sSheetNaam).Select

End Sub

Om hier ff mee te spelen is het het handigste om een nieuw workbook te maken met daarin een aantal sheets. Plak dan de codes in de juiste modules; maak een knop op (bijvoorbeeld blad 1) en koppel daar het laatste codeblokje aan. Ga heen en weer schakelen tussen je sheets. Je ziet dan een msgbox met de zojuist verlaten sheetnaam.

Groet, Leo
 
Dat begrijp ik Wigi:
Ginger en Leo zijn volgens mij dezelfde persoon!!
Maar ik kom er niet uit dus daarom heb ik een bijlage er in gezet om aan te geven wat ik gedaan heb, zodat een ander misschien kan aangeven wat ik niet goed heb gedaan!!

Ik begrijp dat ik iets moet doen met onderstaande gegevens maar ik weet niet wat!!
Origineel gepost door Ginger
Ik maak gebruik van het Workbook_SheetDeactivate-event van de module ThisWorkbook.
Gr. + alvast fijne dagen.;)
 
Het is inmiddels gelukt dus bedankt voor je tikje in de goede richting.
Maar nu geeft hij iedere keer aan van welke sheet ik afkom maar ik wil eigenlijk nog een sheet verder terug. Is dat mogelijk.

Nog even de bijlage tot nu toe!
 

Bijlagen

Laatst bewerkt:
DZP, Prettig dat het je nu gelukt is. Alle modules in een VBA-structuur zijn hierarchisch. Een 'ThisWorkbook' staat boven een 'Sheet module' die op zijn beurt weer boven een 'standaard module' staat. Je hoefde dus alleen het deactivate-event in de module ThisWorkbook te plaatsen. De rest kon weg.
Maar wat bedoel je nou met...
ik wil eigenlijk nog een sheet verder terug
?????
Je wilde toch juist terugkeren naar de sheet waar je bezig was???

Groet, Leo (of Ginger of RedHead.... Hmmmm ik begin me op de diverse fora wel als een gespleten persoonlijkheid te zien... :D:D:rolleyes:)
 
Dat begrijp ik Wigi:
Ginger en Leo zijn volgens mij dezelfde persoon!!

WTF! :shocked:

Laat ik nu net altijd gedacht hebben dat dat 2 verschillende personen waren die toevallig op dezelfde momenten online waren... :eek:

:rolleyes:

Goed dat het gelukt is nu via het duwtje in de rug.
 
Heren, U wordt bedankt voor uw hulp,:thumb:
Vanwege het zoeken en spelen in de éne oplossing ben ik uiteindelijk geslaagd in de juiste oplossing voor mij en dat is toch die van Marcel.
Nogmaals een ieder fijne dagen toegewenst en nogmaals bedankt allemaal.

Bedenk wel 1 ding:
Als iedereen alles weet zijn er géén vragen meer.:D

Als nog de bijlage ingevoerd:
 

Bijlagen

Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan