Avatar billede Dosotherm Nybegynder
18. januar 2013 - 11:02 Der er 9 kommentarer og
1 løsning

Springe mellem ark v.h.a. Makro

Hej!
Jeg har aldrig brugt makroer, og har derfor brug for lidt hjælp i mit Excel 2010 regneark.

Jeg skal have oprettet en knap på forsiden (ark1), som leder mig hen til et navngivet ark med en tegning (tegn1,tegn2,tegn3 eller tegn4) afhængig af, hvad der bliver valgt i feltet B2 på forsiden (Datavaliderings liste bestående af valgene: kursus 1, kursus 2, kursus 3, kursus 4). Hvis man har valgt kursus 1 i listen skal man ved tryk på knappen automatisk komme over på arket "kursus 1". Hvis man har valgt kursus 2 kommer man automatisk over på arket "tegn2 o.s.v.

Jeg havde ligeledes forestillet mig, at arkene tegn1 til tegn4 er skjulte og man derfor via et hyperlink skal trykke på tegningerne for at komme tilbage til forsiden. Er det ikke den nemmeste måde at gøre det på?

Håber en kan hjælpe mig
Avatar billede Asger Carlsen Nybegynder
18. januar 2013 - 12:24 #1
Denne lille stump kode burde kunne klare det.

' Vælger navn der står i celle B2
fane = Range("B2")

' Skifterfane til "fane"
Sheets(fane).Select
Avatar billede somalpe Nybegynder
18. januar 2013 - 16:07 #2
Du kan evt. prøve a lave en knap på din forside og sætte følgende kode in i click eventen:

Sub Button1_Click()
 
  On Error GoTo fejlHåndtering
 
  visFane = Range("B2").Value
  Sheets(visFane).Visible = xlSheetVisible
  Sheets(visFane).Select
  tidligerefane = ActiveSheet.Previous.Name
  Range("A1").Select
  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        tidligerefane & "!A1", TextToDisplay:="<<<<< TILBAGE"
 
fejlHåndtering:
    If Err = 9 Then
      MsgBox ("Fanen " & visFane & " findes ikke i dette regneark")
    Else
      If Err <> 0 Then
        MsgBox ("Fejl " & Err)
      End If
    End If
   
End Sub

Denne sørger for at du bliver sendt til den fane som er valgt i B2. Den laver endvidere en hyperlink i A1 på den nye fane der peger tilbage på den fane som man kom fra (forsiden)

For at gemme din fane med tegningen igen, kan du på forsiden højreklikke på selve fanen og vælge "View Code" og indsætte følgende:

Private Sub Worksheet_Activate()
  Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
      If ws.Name <> ActiveSheet.Name Then
        ws.Visible = xlSheetHidden
      End If
  Next ws
End Sub

Den sørger for at lige så snart du aktiverer "forside fanen" vil den gemme alle faner på dit regneark undtagen selve forsiden.
Avatar billede Dosotherm Nybegynder
21. januar 2013 - 13:21 #3
Hej og tak for svarende. Coder_carl, håber det er iorden, at jeg prøver det andet svar først. Kommer tættest på det, jeg håbede at opnå.
Avatar billede Dosotherm Nybegynder
21. januar 2013 - 14:04 #4
Hej Somalpe.
Tak for svaret. Har prøvet at lægge koden ind i knappen samt koden ind i programkoden på arkene. Virker næsten efter hensigten. Der kom dog en fejlmeddelse, da jeg trykkede på knappen, at den ikke kunne finde arket. Jeg prøvede at omdøbe tegningerne/arkene, så de har de samme navne som valgmulighederne i B2. Det virker, men ikke helt som jeg gerne ville have haft det.
Når jeg nu efterfølgende trykker på "<<<<< TILBAGE" som bliver sat ind i A1 på tegningerne sker der kun det, at alle arkene, undtaget det, jeg står i skjules - Altså det ark med tegningen, jeg valgte. Jeg kommer ikke tilbage til forsiden, som jeg i mellemtiden har omdøbt til "Dosotherm".
Håber du kan hjælpe mig med at få rettet de sidste par ting?
Avatar billede Asger Carlsen Nybegynder
21. januar 2013 - 16:28 #5
#3 => helt fair, det er også noget mere grundigt end hvad jeg kom med. Troede bare du manglede en kommando.
Avatar billede somalpe Nybegynder
22. januar 2013 - 00:13 #6
Her er der en lidt modificeret udgave:

Sub Knap1_Klik()
 
  On Error GoTo fejlHåndtering
  tidligerefane = ActiveSheet.Name
  visFane = Range("B2").Value
  Sheets(visFane).Visible = xlSheetVisible
  Sheets(visFane).Select
 
  Range("A1").Select
  ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        tidligerefane & "!A1", TextToDisplay:="<<<<< TILBAGE"
 
ProcedureDone:
  Exit Sub
 
fejlHåndtering:
    If Err = 9 Then
      MsgBox (Err & " Fanen " & visFane & " findes ikke i dette regneark")
    Else
      If Err <> 0 Then
        MsgBox ("Fejl " & Err)
      End If
    End If

End Sub

Prøv den og se om der stadig er problemer,
Avatar billede Dosotherm Nybegynder
22. januar 2013 - 06:31 #7
Tak for tilbagemeldingen. Virker desværre heller ikke. kommer med en fejlmelding: "Referencen er ugyldig", når jeg trykker på "<<<<< TILBAGE" ??
Avatar billede somalpe Nybegynder
22. januar 2013 - 09:09 #8
Det undrer mig at det ikke virker ved dig da det virker find her. Prøv evt at modificere Hyperlinket således at du udskifter
tidligerefane & "!A1"
med navnet på din forside
"Dosotherm!A1"
Virker det ?
Avatar billede Dosotherm Nybegynder
23. januar 2013 - 10:34 #9
Tak for svaret. Det første var også rigtigt. Min fejl; havde af en eller anden grund ikke fået kopieret hele koden med over. Sorry og mange tak for hjælpen! Er jo nybegynder i dette forum. Hvordan får jeg lagt pointene over til dig?

Måske du også kan hjælpe mig med det næste, jeg har planlagt.
Er meningen at regnearket skal sendes ud til forskellige mennesker. Derfor vil jeg også låse/beskytte arket. Men mit spørgsmål er: Til hver af de 4 tegninger/skemaer/ark, hvortil der nu, med din hjælp, er et link på forsiden og tilbage igen, er der ca. 10 små skitser på/i hver, der er placeret, så de dækker et område af flettede celle), vil jeg gerne have, at man ved et valgfri tryk på en af skitserne, kommer videre til en mere detaljeret, ny tegning (A-4 størrelse).
D.v.s. 4 ark, hvorpå der igen er ca. 10 valgmuligheder på hver, for at få vist, evt. printet en ny, mere detaljeret tegning. Altså links til ca. 40 tegninger placeret et eller andet sted i regnearket. Kan selvfølgelig gøres ved at oprette 40 ark med hver sin PDF-tegning, hvortil der linkes v.h.a. et alm. hyperlink, men er der ikke en lidt lettere måde at gøre det på.
Avatar billede somalpe Nybegynder
23. januar 2013 - 15:41 #10
Point giver du ved at acceptere dette her svar.

Jeg ser lige om jeg ikke kan hjælpe dig med billederne når jeg får tid.

Du kunne evt. oprette et nyt spørgsmål så andre også kan byde ind med en mulig løsning :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester