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

automatisch een paar honderd knoppen genereren met (bijna) dezelfde functie

Status
Niet open voor verdere reacties.

formule

Gebruiker
Lid geworden
25 mei 2016
Berichten
37
Goedemiddag experts,

Ik heb een excel met ongeveer 110 rijen data

Aan elke rij wil ik een 5 tal knoppen toevoegen, elk in een eigen kolom (play 1-5), die zonder een audio player te openen elk een andere audio file afspelen (.wav bestand)

De locatie van het .wav bestand zal ik middels Matlab, waarmee ik de audio bestanden opneem, in een eigen tabblad en cel wegschrijven

Ik heb het nu voor elkaar dat ik middels een knop een .wav bestand met een pad uit een cel kan afspelen, zie voorbeeld

in module 1 heb ik de functie gemaakt om .wav bestanden mee af te spelen:

Code:
Private Declare PtrSafe Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As LongPtr, ByVal dwFlags As Long) As Boolean

Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000

Function SoundMe(StrSNDPath As String) As String
'Updateby Extendoffice 20161223
Call PlaySound(StrSNDPath, 0, SND_ASYNC Or SND_FILENAME)
SoundMe = ""
End Function


Vervolgens wordt die aangeroepen door de knop met als pad de waarde in cel B3 op blad Audio Links:

Code:
Private Sub CommandButton1_Click()

Call SoundMe(Worksheets("Audio Links").Cells(3, "b").Value)

End Sub

Ik heb voor dezelfde rij nog 2 knoppen gemaakt, die naar C3 en D3 verwijzen

Dat gaat allemaal prima!

Nu wil ik echter voor de 100 rijen eronder dezelfde 3 knoppen per rij maken, steeds verwijzend naar dezelfde kolommen op blad Audio Links als de drie bestaande knoppen

Het liefst zou ik hiervoor ook de verwijzing naar het pad relatief maken, dus ipv (Worksheets("Audio Links").Cells(3, "b").Value) zou ik liever niet die 3 van rij 3 gebruiken maar bijvoorbeeld deze rij of =VERT.ZOEKEN([@[Rij Nr]];Tabel2[#Alles];2;ONWAAR)

Dan kan de functie van de knoppen voor elke kolom voor elke rij hetzelfde zijn en hoeft de knop enkel nog gekopieerd te worden

Volgens mij kan dit niet zo makkelijk omdat een knop niet in een cel zit, maar corrigeer me als ik het fout heb

Ik hoop dat het zo duidelijk is

Alvast hartelijk dank voor het meedenken!

ps, je zal niets horen tenzij je een map C:\Test hebt met Alarm01.wav tot en met Alarm09.wav
sorry, ik kon geen voorbeeld maken die verwijst naar geluiden die iedereen heeft (geen idee waar die staan namelijk)

Verander gerust de verwijzingen naar geluiden die jij wel hebt om het te kunnen testen
 

Bijlagen

  • Test audio play from excel.xlsm
    30,8 KB · Weergaven: 30
Ik zou zeggen: 5 knoppen die verschuiven naar de actieve rij (actieve cel dus) en daar de waarden ophalen. Nergens nodig om daar 600 knoppen voor te maken.
 
Door een dubbelklik in de betreffende cel.
 
Dat klinkt goed

Dus ik kan met VBA een actie maken voor wanneer ik een cel dubbel klik?

Kan ik mijn huidige actie daaraan toekennen en vervolgens naar beneden doortrekken naar de andere cellen zodat de verwijzingen worden aangepast?

Dat zou een mooie oplossing zijn

Als iemand een klein voorbeeldje zou willen maken graag

Cheers
 
Doet niets af aan de code van @edmoor maar mijn voorkeur:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column = 1 And Target.Row > 1 Then
    PlaySound Range("A1") & "\" & [COLOR="#FF0000"]Target.Value[/COLOR], 1, &H1
    [COLOR="#FF0000"]Cancel = True[/COLOR]
  End If
End Sub
 
Is wel netter :thumb:
 
Haha

Heren bedankt!

Ik ben er even mee aan het stoeien geweest en heb de koppeling van de opnames vanuit matlab en de export van de links naar de wav bestanden naar een excel gereed

Vanuit die excel heb ik vervolgens een overzicht met alle data per audio file en kan ze nu netjes afspelen

Cheers!
 
Ok dan :)
Als extra informatie wil ik nog even opmerken dat de functie die je in #1 plaatste alleen voor de 64-bit editie van Office zal werken.
Mijn voorbeeldje werkt in zowel de 32- als de 64-bit editie. Het verschil zit in de functie declaratie.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan