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

Hoe kan ik een ActiveX-element op mijn werkblad besturen?

Status
Niet open voor verdere reacties.

AndreXL

Gebruiker
Lid geworden
1 jan 2008
Berichten
33
Ik schrijf op dit moment een script om mp3 bestanden direct vanuit Excel, zonder andere programma's af te kunnen spelen. Dit lukt me goed met een API. Om eea te finetunen zoek ik nog enkele mogelijkheden.
Op mijn werkblad heb ik uit de werkset besturingselementen oa een commandbutton, een spinbutton, een combobox en een scrollbar staan.
Ik wil de diverse elementen van deze activex-elementen kunnen veranderen dmv een VBA script, maar krijg het nog niet voor elkaar.
oa: de max en value van de scrollbar, maar ook de waarde van de combobox kunnen beïnvloeden dmv de spinbutton. (pijl omhoog = eerstvolgende keuze uit selectie in de lijst, en andersom). De scrollbar en andere elementen zijn niet verbonden dmv linkedcell.

Ik probeer het volgende bij de scrollbar, ten behoeve van de positie van de song.
Code:
[B]With Sheets("Mijn werkblad").Shapes("ScrollBar1")[/B]
   .Max = Range("Tijd") '= totale lengte van de song, bijv. 5 minuten, 5 seconden in 1/10 seconde, dus 3050
   .Value = range("Positie") ' is (huidige) positie vanaf start vanaf de song in 1/10 seconde (waarde tussen 0 en 3050)
End With

Tijd en Positie zijn in werkelijkheid andere, werkende code, maar heb ik op deze manier versimpeld. Het gaat hier om het vullen van de .Max en .Value waarden.
Op de vetgedrukte regel krijg ik al een foutmelding bij het uitvoeren van deze code. Kennelijk roep ik het niet goed aan. Vanuit de VBA-help krijg ik alleen voorbeelden om dit in te stellen voor een userform. Dat ben ik (nog) niet van plan om op mijn werkblad in te zetten. Ik zoek dus hiervoor een andere manier. Op soortgelijke manier wil ik ook nog dmv de spinbutton een hogere of lagere waarde uit mijn lijst selecteren uit de Optionbutton. Ik denk hierbij aan .Listindex = .listindex + of - 1 maar dit werkt niet.
Wie heeft de oplossing?

Groet,
André
 
Laatst bewerkt:
Superzeeuw,

Helaas, ik snap nog niet zo goed waarnaar je verwijst: in je 1e reactie een grafiek, zonder VBA,
in je 2e reactie een vergelijkbare "grafiek" -is het feitelijk niet- in een userform.

zoals aangegeven, zoek ik slechts de aansturing van enkele activeX elementen, zonder userform.

André
 
Er zijn 2 mogelijkheden nl via de Shapes-collectie of rechtstreeks met de objectnaam
Code:
Sub tst1()
With Sheets("Mijn werkblad").Shapes("ScrollBar1").OLEFormat.Object.Object
   .Max = Range("Tijd") '= totale lengte van de song, bijv. 5 minuten, 5 seconden in 1/10 seconde, dus 3050
   .Value = Range("Positie") ' is (huidige) positie vanaf start vanaf de song in 1/10 seconde (waarde tussen 0 en 3050)
End With
End Sub
Sub tst2()
With Sheets("Mijn werkblad").ScrollBar1
   .Max = Range("Tijd") '= totale lengte van de song, bijv. 5 minuten, 5 seconden in 1/10 seconde, dus 3050
   .Value = Range("Positie") ' is (huidige) positie vanaf start vanaf de song in 1/10 seconde (waarde tussen 0 en 3050)
End With
End Sub
 
Warmebakkertje, superzeeuw,

Hartelijk dank voor jullie antwoorden. Dit zetje had ik precies nodig.
De eenvoudigste is dus With Sheets("Mijn werkblad").ScrollBar1, deze gebruik ik nu succesvol.

Groet,

André
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan