Avatar billede tida Juniormester
16. marts 2007 - 11:17 Der er 15 kommentarer og
1 løsning

Hop til dato via userform.

Jeg har netop oprettet en userform med det tilhørende kontrolelement Calender Control 10.0.
Nu kunne jeg godt tænke mig en makro der i den aktuelle fil fik cursoren til at hoppe hen til den, i userformen, valgte dato.

Lige nu ser min makro således ud

Sub ShowIt()
application.Goto Reference:="VÆLGDATO"
    UserForm1.Show
End Sub

og så går jeg død ;-)

Nu skulle makroen gerne søge i samtlige ark i filen (også de skjulte) og stille sig på datoen...kan nogen hjælpe mig med det ??
Avatar billede olehen Nybegynder
16. marts 2007 - 13:48 #1
Ja, tryk ind på din userform og klik på din calender. I properties finder du tagindex - sæt den til 1. Så er det første step når du bruger tab tasten.

Sub ShowIt()
application.Goto Reference:="VÆLGDATO"
    UserForm1.Show
Me.Calender.SetFocus
End Sub


Eller også:

Sub userform_Activate()
Me.Calender.SetFocus
End Sub
Avatar billede tida Juniormester
16. marts 2007 - 14:10 #2
Hmmm...kanikke finde tagindex.....kun tag...mon det er det samme ?
Jeg får problemer med ME.Calender.SetFocus, den giver mig Compile error,
Invalid use of Me keyword
Avatar billede supertekst Ekspert
16. marts 2007 - 18:19 #3
Hvor er "dato" placeret - på fanen eller i de enkelte ark?
Avatar billede olehen Nybegynder
19. marts 2007 - 09:33 #4
"Calender" - huskende du at skifte til det navn du har givet din Calender?? Hvis du trykker Me."så kommer der forslag op"
Avatar billede tida Juniormester
22. marts 2007 - 08:41 #5
Ja, undskyld den lange svartid, jeg har ikke været på pinden i et stykke tid....og Jo navnet var godt nok. Jeg må indrømme at jeg har opgivet ævret for nu det blev for kompliceret, men tak for forsøget.
Avatar billede supertekst Ekspert
22. marts 2007 - 08:53 #6
Man skal ikke - opgive!
Er det arkfanerne, der indeholder datoen??
- prøv at sende regnearket til: pb@supertekst-it.dk
Avatar billede tida Juniormester
22. marts 2007 - 09:36 #7
Filen fylder er stor over 3 MB og indeholde nogle "følsomme" data så jeg kan ikke lige vupti sende den videre, jeg kunne muligvis konstruere en eksempel fil.

Men først kan jeg lige prøve at forklare mig lidt bedre.

Filen fungerer som en kalender og indeholder omkring 10 ark. Hvert ark viser et halvår og kun de 2 aktuelle halvår vises, de øvrige er skjulte. Hver kolonne (fra D til ca GD) viser en dag. Datoen vises i række 2.

Nu vil jeg gerne have en "Find dato" knap, således at userformen Calendar aktiveres og når jeg prikker på en dato hopper Excel til denne dato, og hvis der er tale om en gammel dato hives arket frem fra gemmerne.

Jeg er kommet så langt at userformen er oprettet, når jeg trykker på min "Find dato" knap indsættes datoen i celle A1....her stopper min ekspertise :-)...og jeg har brug for hjælp.
Avatar billede supertekst Ekspert
22. marts 2007 - 09:46 #8
Hvis det er arkfanerne, der har datoen:

Private Sub Calendar1_Click()      'Ved klik på dato i kalender - navn evt. tilpasses
    dato = CStr(Calendar1.Value)
   
    For Each ark In ActiveWorkbook.Sheets
        If ark.Name = dato Then
            ark.Activate
            Exit Sub
        End If
    Next
    MsgBox ("Dato kunne ikke findes")
End Sub
Avatar billede tida Juniormester
22. marts 2007 - 09:53 #9
Men det er det ikke....datoerne ligger i arkene i række 2...arkene hedder typisk "1.Halvår 2005" o.s.v.
Avatar billede supertekst Ekspert
22. marts 2007 - 09:53 #10
OK - det er forståeligt...

Din forklaring kan anvendes - vender tilbage....
Avatar billede supertekst Ekspert
22. marts 2007 - 09:54 #11
Tillægsspørgsmål - hvad står der på arkfanerne: 01-01-07 - 30-06-07 f.eks. eller ?
Avatar billede tida Juniormester
22. marts 2007 - 10:02 #12
som jeg skrev før...arkfanerne hedder f.eks. "1.HALVÅR 2005" hhv. "2.HALVÅR 2007" o.s.v.
Avatar billede supertekst Ekspert
22. marts 2007 - 10:31 #13
undskyld - havde ikke bemærket det...
Avatar billede supertekst Ekspert
22. marts 2007 - 10:48 #14
Følgende kode er indlagt i Userform, der kun indeholder kalenderen:
Hvordan skal proceduren være vedr. de skjulte ark - de bliver vist når søgningen lander i sådan et.

Dim dato As Date, halvÅr As String, måned, år
Private Sub Calendar1_Click()      'Ved klik på dato i kalender - navn evt. tilpasses
    dato = Calendar1.Value
    år = Format(dato, "YYYY")
    måned = DatePart("m", CStr(dato), 2, 2)
    If måned < 7 Then
        halvÅr = "1"
    Else
        halvÅr = "2"
    End If
   
    findRelevanteArk
End Sub
Private Sub findRelevanteArk()
Dim arkNavn
    arkNavn = halvÅr + ".HALVÅR " + år
   
    For Each ark In ActiveWorkbook.Sheets
        If ark.Name = arkNavn Then
            ark.Visible = True
            ark.Activate
            SøgIark
            Exit Sub
        End If
    Next
    MsgBox ("Dato kunne ikke findes")
End Sub
Private Sub SøgIark()
Dim antalKol
        antalKol = ActiveCell.SpecialCells(xlLastCell).Column
       
        For k = 4 To antalKol
            If Cells(2, k) = dato Then
                Cells(2, k).Select
                Exit Sub
            End If
           
        Next k
End Sub
Avatar billede tida Juniormester
22. marts 2007 - 11:03 #15
Hvad kan jeg sige......

det er bare suverænt...lige i øjet, tusind tak - never never opgivedet er forstået :-)

smid et svar
Avatar billede supertekst Ekspert
22. marts 2007 - 11:14 #16
Fint... - her er et svar...
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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