Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketSetFocus på specifik fane i Ribbon

 Besvar Besvar
Forfatter
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Emne: SetFocus på specifik fane i Ribbon
    Sendt: 08.Apr.2016 kl. 09:57
Hej

Jeg har et Ribbon med 2 faner.
Fane1 - id=Tab2)
- Dette er hovedfanen og her har jeg Buttons, der åbner nogle indtastnings-Userforme.

Fane2- id=Tab1)
- Her har jeg en enkelt Button til en Password-Userform
- Når korrekt password er tastet, åbnes en ny gruppe (id=Group10).

Når (id=Group10) lukkes på (id=Button1), bliver den stående på fane2 (id=Tab1).
Her vil jeg godt have den til at hoppe tilbage til fane1 (id=Tab2).

Hvordan skal koden se ud ?
Og hvor skal den placeres i, hvad jeg formoder, id=Button1 ?
Jeg er sikker på, det bare er en simpel lille SetFocus-linje, der skal tilføjes Geek

Download ark her
Password til at åbne Admin = Bus  (med stort B)
<group 
   id="Group10"
   getVisible="grpView_getVisible"
   autoScale="true"
   centerVertically="true">
     <button 
        id="Button1"
        imageMso="AdpStoredProcedureQueryDelete"
        label="Luk administrator"
        size="large"
        onAction="Button1_onAction"/>
     <button 
        id="Button8"
        imageMso="FileDocumentEncrypt"
        label="Skift password"
        size="large"
        onAction="Button8_onAction"/>
</group >

Ps.
Det samme må også godt ske på LUK Button i Password-Userformen, men så snakker vi om reel VBA kodning.
Kan det også lade sig gøre at lave en kode til SetFous = Ribbon id=Tab2 på Password/Luk Button ?

På forhånd tak.

Mvh.
Ib






Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top



Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 08.Apr.2016 kl. 13:04
Jeg går ud fra, at du husker, at sætte en global Ribbon variabel i din 'OnLoad' makro.
I mine projekter kalder jeg altid denne variabel for 'RibbonX'.

Dermed kan du altid aktivere en, hvilken som helst, tab i Ribbon, når som helst, i din kode med
RibbonX.ActivateTab ControlID:="Tab_ID"
Du kan se, hvordan det gøres, ved at downloade et, hvilket som helst (næsten), regneark fra mit website, der benytter Ribbon.
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 08.Apr.2016 kl. 14:29
 Hmmmm - Tjaaa, hvis du lige snakkede dansk også Ermm

Jeg sidder ikke og koder mit Ribbon direkte Custom UI Editoren, som du gør.
Jeg bruger Andy's Ribbon Editor, til at generere alle mine koder.

Når jeg kigger i et af dine ark, kan jeg heller ikke finde din "onLoad Makro".
Du bygger arkene op, på en måde, jeg slet ikke forstår.
Husk, det er logisk for en, kan være raketvidenskab for en anden.

Det jeg tror er den, du kalder "OnLoad Makroen", har jeg i et module.
Det ser sådan ud og jeg tror det er den røde kode.

Måske skal koden sættes ind, hvor jeg har indsat med blåt.
Det er jo den kode, der må åbne og lukke Group1, hvor Button1 er i.
Option Explicit

Public g_rbxUI As IRibbonUI
Public g_blnAdminUser As Boolean
Public g_blnShowChangesGroup As Boolean
Public g_blnShowViewGroup As Boolean
______________________________________________________________
Public Sub rbx_onLoad(Ribbon As IRibbonUI)
    Set g_rbxUI = Ribbon
End Sub
______________________________________________________________
Public Sub tabs_getVisible(control As IRibbonControl, ByRef returnedVal)
    returnedVal = g_blnAdminUser
End Sub
______________________________________________________________
Public Sub grpChanges_getVisible(control As IRibbonControl, ByRef returnedVal)
    returnedVal = g_blnShowChangesGroup
End Sub
______________________________________________________________
Public Sub grpView_getVisible(control As IRibbonControl, ByRef returnedVal)
    Select Case UCase(control.ID)
    Case "GROUP1"
        returnedVal = Not g_blnShowViewGroup
    Case "GROUP10"
        returnedVal = g_blnShowViewGroup
    Case Else
        returnedVal = True
        Kode der hopper til fane1 id=Tab2 her
    End Select
End Sub

Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 08.Apr.2016 kl. 18:42
Citér  Hmmmm - Tjaaa, hvis du lige snakkede dansk også Ermm
Ja, det er ikke min stærke side, men jeg skal prøve  Smile
Citér Når jeg kigger i et af dine ark, kan jeg heller ikke finde din "onLoad Makro".
Så er det fordi, du overhovedet ikke kigger efter - der er et modul, der klart og tydelig hedder 'VBA_RibbonX_CallBacks' - det kræver altså ikke den store raket videnskab, at regne ud, at alle callbacks makroerne til ribbon ligger i dette modul!
Og, i dette modul, er der en makro, der klart og tydelig hedder 'RibbonX_OnLoad' - igen vil jeg mene, at selv en fåreavler fra vest-Jylland kan regne ud, at dette er 'OnLoad' makroen til Ribbon'et!
Citér Du bygger arkene op, på en måde, jeg slet ikke forstår.
Du mener 'logisk' og gennemskueligt?
Ja, det kunne du lære lidt af  LOL

Til gengæld ser det ud til, at du gør PRÆCIST, som du skal  Thumbs Up
Set g_rbxUI = Ribbon
Altså burde du kunne aktivere din ribbon tab med
g_rbxUI.ActivateTab ControlID:="Tab2"
Nu merer jeg personligt ikke, at jeg kan skære det mere ud i pap...

PS: Og, Andy's ribbon editor ødelægger mere end den hjælper - du kommer aldrig til at lære det, så længe du benytter den - især, hvis du slet ikke selv har opfattet at du sætter ribbonet i onload-makroen, som jeg beskrev:
Public Sub rbx_onLoad(Ribbon As IRibbonUI)
    Set g_rbxUI = Ribbon
End Sub
Hvordan kan man ikke se, at, "Hey, jeg sætter ribbonet i 'OnLoad', som han bad om!Question
Du har endda selv lavet koden?!?
Jeg fastholder min påstand om, at det burde du kunne have set selv, og at Andy's editor ødelægger folks mulighed for at lave et reelt stykke arbejde og indlæring!
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
Ib Hansen Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 15.Apr.2014
Land: Danmark
Status: Offline
Point: 652
Direkte link til dette indlæg Sendt: 09.Apr.2016 kl. 11:38
Jeg kan som sagt ikke selv lave koderne, men bruger i stedet nogle af de "gamle koder" jeg har gemt og Andy's Editor til at lave nye Buttons osv.
Derfor ved jeg nok heller ikke helt, hvad der sker inde bag ved Ermm

Jeg havde faktisk misforstået det hele.
Jeg mener at have set et eller andet sted, at SetFocus koden skulle laves inde i XML'en og at linje derfor skulle tilføjes derinde.
Derfor indsatte jeg også XML koden med Group10 og Button1.

Da du spurgte om jeg havde sat en Global Ribbon Variable, var det grøn snak og jeg anede slet ikke hvad det rent faktisk betød og derfor sad også og rodede rundt inde i XML.
Derfor hentydningen til det Danske, da det hele var temmeligt uklart for mig.

Men nu er der gået en prås op for mig.
XML er bare Ribbon layout, som CSS på en hjemmeside.
Og selvfølgelig er SetFocus en macro, der køres fra en Button.

Det går lidt langsomt, men jeg lærer hele tiden Embarrassed

g_rbxUI.ActivateTab ControlID:="Tab2" virker perfekt Clap

Jeg må virkelig se at få det lært, da jeg bruger "Ribbon" i alt jeg laver, men med de gamle koder fra Andy.

Mvh.
Ib


Excel 2010 Dk og 2019 Dk på samme computer.
Bruger dog stadig mest 2010..
Men sådan er der jo så majet :o)
Til top
EXCELGAARD Se dropdown
Platin bruger
Platin bruger


Medlem: 27.Dec.2012
Land: Denmark
Status: Offline
Point: 5412
Direkte link til dette indlæg Sendt: 09.Apr.2016 kl. 13:28
Heh, heh - ja, jeg må erkende, at min manglende tålmodighed løb lidt af med mig igen - især fordi du endda selv havde markeret den linje, jeg henviste til, med rødt  Smile

Men, rart at høre at du ikke lader dig slå ud, bare fordi nørden her har lidt temperament ind i mellem  Evil Smile
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk