• 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.

Flexibel Lint

Status
Niet open voor verdere reacties.

mulderwme

Gebruiker
Lid geworden
12 dec 2014
Berichten
210
Hallo allemaal,

Bij een Excelbestand maak ik weleens een extra tabblad in het Lint voor dat betreffende bestand.
Ik heb daarvan een voorbeeld en pas dat dan aan. XML vind ik best lastig.

Stel, ik heb een login Inkoop, Verkoop en Onderhoud.
Iedereen werkt in hetzelfde bestand.

Kan het dan zo dat iemand van Verkoop die het bestand opent alleen de tab Verkoop ziet, enz.

Ik ben benieuwd!

Groet
Willem
 
Als je XML in de CustomUI bedoelt dan kan je in de callback routines bepalen welke tab zichtbaar is en welke niet.
 
Ik weet hoe ik in de callback werkbladen kan verbergen en zichtbaar kan maken, maar hoe geef ik aan dat het om de tab Verkoop of Inkoop gaat?
 
Dat kan met de ribbonui_getvisible callback functie.
Bijvoorbeeld:
Code:
Private Sub ribbonui_getvisible(ByRef control As IRibbonControl, ByRef ReturnValue As Variant)
    Select Case control.ID
        Case "TAB_INKOOP":    ReturnValue = Environ("username") = "Inkoop"
        Case "TAB_VERKOOP":   ReturnValue = Environ("username") = "Verkoop"
        Case "TAB_ONDERHOUD": ReturnValue = Environ("username") = "Onderhoud"
    End Select
End Sub

De gebruikte TAB namen zijn uiteraard afhankelijk van je XML en ribbonui_ van je ribbon declaratie.
Het te gebruiken XML attribuut is: getVisible="ribbonui_getvisible"
 
Laatst bewerkt:
Bedankt Edmoor, ik ga het proberen.

Is er ook ergens een naslagwerk te vinden van alles wat met het lint te maken heeft?
 
Dat is inderdaad een prima site er voor, maar dat het in het Duits is zal veel mensen ervan weerhouden deze te gebruiken.
 
Voor sommigen hier lijkt Nederlands een groter obstakel ;)
 
Haha, dat is helemaal waar :cool:
 
In de bijlage staat het bestand.

In het xlm bestand heb ik getvisible toegevoegd, maar niet op de juiste manier want het bijbehorende lint is niet zichtbaar.

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">

  <ribbon startFromScratch="false">

    <tabs>

<!--TAB ALGEMEEN-->
	<tab id="TabAlgemeen" label="ALGEMEEN" getVisible="" insertAfterMso="TabDeveloper">
> 
		<group id="customGroup01" label=" ">
			<button id="customButton01" label="Opslaan ALG" size="large" onAction="OpslaanRibb" image="Save-01-WF" />
		</group>
	</tab>


<!--TAB INKOOP-->
      <tab id="TabINKOOP" label="INKOOP" getVisible="Jan" insertAfterMso="ALGEMEEN" >
> 
		<group id="customGroup02" label=" ">
			<button id="customButton02" label="Opslaan INK" size="large" onAction="OpslaanRibb" image="Save-01-WF" />
		</group>
      </tab>

<!--TAB VERKOOP-->
      <tab id="TabVERKOOP" label="VERKOOP" getVisible="Piet" insertAfterMso="ALGEMEEN" >
> 
		<group id="customGroup03" label=" ">
			<button id="customButton03" label="Opslaan VERK" size="large" onAction="OpslaanRibb" image="Save-01-WF" />
		</group>
      </tab>

<!--TAB ONDERHOUD-->
      <tab id="TabONDERHOUD" label="ONDERHOUD" getVisible="Klaas" insertAfterMso="ALGEMEEN" >
> 
		<group id="customGroup04" label=" ">
			<button id="customButton04" label="Opslaan ONDERH" size="large" onAction="OpslaanRibb" image="Save-01-WF" />
		</group>
      </tab>
    </tabs>
  </ribbon>
  
</customUI>
 
Daardoor is zelfs de bijlage niet zichtbaar :d

Dit lijkt me niet zo'n slimme zet:

PHP:
<!--TAB INKOOP-->
      <tab id="TabINKOOP" label="INKOOP" getVisible="Jan" insertAfterMso="ALGEMEEN" >
>

Beperk het tot (verwijder dus: <!--TAB INKOOP--> >)

PHP:
<tab id="TabINKOOP" label="INKOOP" insertAfterMso="ALGEMEEN" >
 
Laatst bewerkt:
oeps, beginnersfoutje
 

Bijlagen

  • Test Tabs in het lint.xlsm
    15,5 KB · Weergaven: 38
Bitte, lese meine Nachricht mal etwas genauer.
 
Laatst bewerkt:
Nee hoor, geenszins. Maar bekijk het nog eens goed.
 
Gelukkig.

Maar ik kom er niet goed uit.
Mijn GetVisible zou een macro aanroepen.
Dat heb ik inmiddels door. Dat is niet de bedoeling.

Zoals ik het in mijn hoofd heb is dat het blad Algemeen als enige zichtbaar is als het bestand wordt geopend.
Als ik daar in A1 "Jan" intik, dat de tab "Inkoop" zichtbaar wordt of "Verkoop" als ik Piet intik.

Ik probeer e.e.a. een beetje snappen in combi met de tip van Edmoor waar hij "username" aangeeft. Maar volgens mij heb ik geen Control.ID als ik een waarde uit A1 haal.
 
Je kan het ribbon alleen aanpassen vanuit de context van het ribbon.
Een wijziging in een cel is buiten die context en zal alleen worden gelezen bij het openen van het document.
Waar in de Callback nu Sheets("Blad1").Range("A1") staat zou je dus kunnen wijzigen in Environ("username").

Kijk eens hier in je eigen document:
Bekijk bijlage Test Tabs in het lint.xlsm

Let erop dat de in de callbacks gebruikte Control.ID's exact overeen komen met wat je in de XML hebt gebruikt.

Dit is de XML nu:
PHP:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
  <ribbon>
    <tabs>
      <tab id="TabONDERHOUD"
	     label="ONDERHOUD"
	     getVisible = "ribbonui_getvisible"
	     insertAfterMso="TabDeveloper" >

		<group id="customGroup04"
			 label=" ">
			<button id="customButton04"
				  label="Opslaan ONDERH"
				  size="large"
				  onAction="OpslaanRibb"
				  image="Save-01-WF" />
		</group>
      </tab>
      <tab id="TabVERKOOP"
	     label="VERKOOP"
	     getVisible = "ribbonui_getvisible"
	     insertAfterMso="TabDeveloper">
		<group id="customGroup03"
			 label=" ">
			<button id="customButton03"
				  label="Opslaan VERK"
				  size="large"
				  onAction="OpslaanRibb"
				  image="Save-01-WF" />
		</group>
      </tab>
      <tab id="TabINKOOP"
	     label="INKOOP"
	     getVisible = "ribbonui_getvisible"
	     insertAfterMso="TabDeveloper">
		<group id="customGroup02"
			 label=" ">
			<button id="customButton02"
				  label="Opslaan INK"
				  size="large"
				  onAction="OpslaanRibb"
				  image="Save-01-WF" />
		</group>
      </tab>
	<tab id="TabAlgemeen"
	     label="ALGEMEEN"
	     insertAfterMso="TabDeveloper">
		<group id="customGroup01"
			 label=" ">

			<button id="customButton01"
				  label="Opslaan ALG"
				  size="large"
				  onAction="OpslaanRibb"
				  image="Save-01-WF" />
		</group>
	</tab>
    </tabs>
  </ribbon>
</customUI>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan