till föregående sida med makro i excel?

Permalänk

till föregående sida med makro i excel?

Hej jag undrar om någon kan hjälpa mig med detta problem:

Har ett kalkylblad i excel med x antal flikar(sidor). Jag vill genom att trycka på en knapp på en sida komma till sidan jag var på innan, alltså inte samma sida varje gång.
Har sökt men kan inte hitta lösningen på detta/ Tacksam för svar

Permalänk
Medlem

trodde inte det skulle vara så svårt att skriva ett makro till det, men jag fixar inte det.

försökte fixa nån workbook kod men får inte excel att spara activesheet.index vid rätt tillfälle.

om nån har en lösning på hur man får excel att utföra ett komando innan man byter blad och som inte görs igen när bladet väl är bytt så är resten enkelt.

Permalänk
Medlem

Re: till föregående sida med makro i excel?

Citat:

Ursprungligen inskrivet av heavyswede
Hej jag undrar om någon kan hjälpa mig med detta problem:

Har ett kalkylblad i excel med x antal flikar(sidor). Jag vill genom att trycka på en knapp på en sida komma till sidan jag var på innan, alltså inte samma sida varje gång.
Har sökt men kan inte hitta lösningen på detta/ Tacksam för svar

En lösning finns här av Zack Barresse:

http://forums.techguy.org/business-applications/546347-excel-...

Visa signatur

jacko

Permalänk

Tack för hjälpen Jacko.
Skall genast testa, måste bara översätta och få allt på rätt plats(lite halvkass på engelska), men jag ger inte upp nu när jag redan suttit i ett antal timmar innan jag postade det här inlägget.

Permalänk
Medlem

där ser man.
någon annan hade tydligen lyckats.
provade själv på liknande sätt men fick inte det att fungera.

jaja...

edit: säg till om du behöver hjälp med att få koden på rätt ställen

Permalänk

Ja tack! Jag behöver all hjälp jag kan få.
Detta var över min intelligensnivå.

"-in any standard module", var är det?
Och hur får jag knappen länkad till dessa programmeringar?

Tacksam för all hjälp

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av heavyswede
Ja tack! Jag behöver all hjälp jag kan få.
Detta var över min intelligensnivå.

"-in any standard module", var är det?
Och hur får jag knappen länkad till dessa programmeringar?

Tacksam för all hjälp

Här finns en exempelfil:

http://www.webfilehost.com/?mode=viewupload&id=4663491

Jag brukar spela in ett makro för att skapa en standardmodul.

Ersätt det inspelade makrot med:

Option Explicit
Public strPrevSheet As String

Tryck Alt-F11 för att se alla objekt i projektet och dubbelklicka på

ThisWorkBook och kopiera dit:

Sub GotoLastSheet()
On Error Resume Next
ThisWorkbook.Sheets(strPrevSheet).Activate
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
strPrevSheet = Sh.Name
End Sub

Gör en formulärknapp på blad1 och koppla makrot GotoLastSheet() till knappen.

Kopiera sedan knappen till varje blad.

Sätt makrosäkerhet till Låg.
Obs jag har bytt strLastSheet till strPrevSheet!

Visa signatur

jacko

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av jacko
Här finns en exempelfil:

http://www.webfilehost.com/?mode=viewupload&id=4663491

Jag brukar spela in ett makro för att skapa en standardmodul.

Ersätt det inspelade makrot med:

Option Explicit
Public strPrevSheet As String

Tryck Alt-F11 för att se alla objekt i projektet och dubbelklicka på

ThisWorkBook och kopiera dit:

Sub GotoLastSheet()
On Error Resume Next
ThisWorkbook.Sheets(strPrevSheet).Activate
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
strPrevSheet = Sh.Name
End Sub

Gör en formulärknapp på blad1 och koppla makrot GotoLastSheet() till knappen.

Kopiera sedan knappen till varje blad.

Sätt makrosäkerhet till Låg.
Obs jag har bytt strLastSheet till strPrevSheet!

varför så komplicerat?
EDIT: varför har du gjort GotoLastSheet till en Workbookkod?
det "är" en modulkod, någon speciell anledning?

öppna din excelfil.
tryck ALT + F11 VBA editorn borde öppnas
på vänster sida av fönstret har du projektfönstret. (blad, thisworkbook, (userform, modul, klass om du har någon)).
om det inte finns någon modul i listan på projektfönstret klicka på menyknappen infoga sen modul. (nu borde ettt vitt fönster dyka upp)

i detta fönster klistrar du in texten:

Citat:

Public strLastSheet As String

Sub GotoLastSheet()
On Error Resume Next
ThisWorkbook.Sheets(strLastSheet).Activate
End Sub

sen dubbelklickar du på ThisWorkBook i projektfönstret och klistrar in denna text:

Citat:

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
strLastSheet = Sh.Name
End Sub

nu är det klart.

för att nu använda din nya funktion så måste du köra ett makro som heter GotoLastSheet (den du kopierade in i modulen).
i excel: Alt +F8 (verktyg-makro-makron..)
där ser du ditt makro.
om du nu trycker på alternativ kan du skapa ett kortkomando som som kör makrot (alltså går till föregående blad).

färdigt!

när du nu öppnar detta ark så kommer du få en fråga om du vill aktivera makro och att det är en säkerhetsrisk.
i detta fal är det inte det (säkerhetsrisk), men jag rekomenderar inte det jacko skrev att ställa ner säkerheten för att bli av med meddelandet.

det går att göra ett ark med makron tillförlitligt genom att lägga till betrodda utgivare. kommer inte ihåg hur jag gjorde för att åstakomma det men sök på google så fixar du säkert det.
på detta vis kan du behålla en en viss säkerhet samtidigt som du slipper meddelandena var gång du öppnar arket.

övrig info, om du är intresserad.

i projektfönstret i VBA editorn hade du olika "alternativ".

blad - detta är kod som körs när just detta blad (flik som du kallar det) aktiveras
ThisWorkBook - är kod som körs "hela tiden".
Modul - kod som skrivs här måste startas mauellt genom makro
Userform - det är om man vill skapa grafiska fönster "typ", ungefär som windowsprogram
klassmodul - vet faktiskt inte, har aldrig behövt använda det (tror jag)

så förstår du lite om VBA programering.

Permalänk

Tack Agonotheta och Jacko för erat engagemang. Nu har jag fått det att funka tack vare er.
Jag kommer att lägga upp fler av mina Excelproblem i framtiden nu när jag vet att man får så bra hjälp här på forumet!