je cherche à progresser sur VBA et je souhaite optimiser un code qui
concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou
plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement
Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme
de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné :
WAVFilechemin = ThisWorkbook.Path & "\" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur
de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de
fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Sub PlayWAV(litmoi)
Dim WAVfil As String
If litmoi = 1 Then
WAVfil = "alles klar.wav"
ElseIf litmoi = 2 Then
WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai
obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "\" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Penet
Va regarder du côté de la fonction Dir(sChemin).
La première fois que tu l'utilise elle te renvoie un fichier selon les critères définis par sChemin.
Puis il suffit d'utiliser Dir() sans argument pour que la fonction te renvoie le fichier suivant selon les mêmes critères.
HTH PP
"Olivier B" <benardo974(supprimer contenu des parenthèses)@hotmail.com> a écrit dans le message de news:
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné : WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0 Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 Sub PlayWAV(litmoi) Dim WAVfil As String
If litmoi = 1 Then WAVfil = "alles klar.wav" ElseIf litmoi = 2 Then WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
End Sub
-- olivier
Va regarder du côté de la fonction Dir(sChemin).
La première fois que tu l'utilise elle te renvoie un fichier
selon les critères définis par sChemin.
Puis il suffit d'utiliser Dir() sans argument pour que
la fonction te renvoie le fichier suivant selon les mêmes
critères.
HTH
PP
"Olivier B" <benardo974(supprimer contenu des parenthèses)@hotmail.com> a écrit dans le message de news:
C19CC085-3330-4EDB-865F-A2FB3E06B294@microsoft.com...
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui
concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou
plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement
Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme
de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné :
WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur
de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de
fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Sub PlayWAV(litmoi)
Dim WAVfil As String
If litmoi = 1 Then
WAVfil = "alles klar.wav"
ElseIf litmoi = 2 Then
WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai
obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
La première fois que tu l'utilise elle te renvoie un fichier selon les critères définis par sChemin.
Puis il suffit d'utiliser Dir() sans argument pour que la fonction te renvoie le fichier suivant selon les mêmes critères.
HTH PP
"Olivier B" <benardo974(supprimer contenu des parenthèses)@hotmail.com> a écrit dans le message de news:
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné : WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0 Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 Sub PlayWAV(litmoi) Dim WAVfil As String
If litmoi = 1 Then WAVfil = "alles klar.wav" ElseIf litmoi = 2 Then WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
End Sub
-- olivier
lSteph
Bonjour,
Voici un exemple:
ATTENTION depuis excel fichier ouvrir se positionner sur un répertoire contenant des .wav
Materiel Userform1, Combobox1, CommandButton1 Voici le code du userform:
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Function Alarm() Dim WAVFile As String Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 On Error GoTo ErrHandler
WAVFile = ComboBox1 Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME) Alarm = True Exit Function
ErrHandler: Alarm = False End Function
Private Sub CommandButton1_Click() Alarm End Sub
Private Sub UserForm_Initialize()
Dim cpt As Long Dim f As String cpt = 1 f = Dir("*.wav") ComboBox1.Clear Do While Len(f) > 0 cpt = cpt + 1 ComboBox1.AddItem f f = Dir Loop
End Sub
'Cordialement. 'lSteph
Olivier B vient de nous annoncer :
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné : WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0 Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 Sub PlayWAV(litmoi) Dim WAVfil As String
If litmoi = 1 Then WAVfil = "alles klar.wav" ElseIf litmoi = 2 Then WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
End Sub
-- - -
Bonjour,
Voici un exemple:
ATTENTION depuis excel fichier ouvrir
se positionner sur un répertoire contenant des .wav
Materiel Userform1, Combobox1, CommandButton1
Voici le code du userform:
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Function Alarm()
Dim WAVFile As String
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
On Error GoTo ErrHandler
WAVFile = ComboBox1
Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME)
Alarm = True
Exit Function
ErrHandler:
Alarm = False
End Function
Private Sub CommandButton1_Click()
Alarm
End Sub
Private Sub UserForm_Initialize()
Dim cpt As Long
Dim f As String
cpt = 1
f = Dir("*.wav")
ComboBox1.Clear
Do While Len(f) > 0
cpt = cpt + 1
ComboBox1.AddItem f
f = Dir
Loop
End Sub
'Cordialement.
'lSteph
Olivier B vient de nous annoncer :
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui
concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou
plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement
Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme
de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné :
WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur
de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de
fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Sub PlayWAV(litmoi)
Dim WAVfil As String
If litmoi = 1 Then
WAVfil = "alles klar.wav"
ElseIf litmoi = 2 Then
WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai
obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
ATTENTION depuis excel fichier ouvrir se positionner sur un répertoire contenant des .wav
Materiel Userform1, Combobox1, CommandButton1 Voici le code du userform:
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Private Function Alarm() Dim WAVFile As String Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 On Error GoTo ErrHandler
WAVFile = ComboBox1 Call PlaySound(WAVFile, 0&, SND_ASYNC Or SND_FILENAME) Alarm = True Exit Function
ErrHandler: Alarm = False End Function
Private Sub CommandButton1_Click() Alarm End Sub
Private Sub UserForm_Initialize()
Dim cpt As Long Dim f As String cpt = 1 f = Dir("*.wav") ComboBox1.Clear Do While Len(f) > 0 cpt = cpt + 1 ComboBox1.AddItem f f = Dir Loop
End Sub
'Cordialement. 'lSteph
Olivier B vient de nous annoncer :
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné : WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0 Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 Sub PlayWAV(litmoi) Dim WAVfil As String
If litmoi = 1 Then WAVfil = "alles klar.wav" ElseIf litmoi = 2 Then WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
End Sub
-- - -
lSteph
Re, outre l'exemple donné pour
mais aucune idée comment incrémenter WAVFile(
peut-être revenir à l'objet:
construire une référence en VBA C'est un string
donc il y a .fullname qui donne le nom complet et correspond à .path & "/" & .name
Le problème c'est de les stocker pour les utiliser et que les boucles vont commencer à friser si tu dois te taper n répertoires. Une alternative un peu lourdingue serait via Démarrer executer cmd cd dir *.wav/s/b>listsons.txt ...patienter exit
et de récupèrer la liste dans excel
Ou + simple amha, mais tout dépend de l'objectif final serait d'avoir un répertoire "Sons" où tu mets tout les sons que tu veux.
Cordialement.
lSteph
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné : WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0 Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 Sub PlayWAV(litmoi) Dim WAVfil As String
If litmoi = 1 Then WAVfil = "alles klar.wav" ElseIf litmoi = 2 Then WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
End Sub
-- - -
Re,
outre l'exemple donné pour
mais aucune idée comment incrémenter WAVFile(
peut-être revenir à
l'objet:
construire une référence en VBA
C'est un string
donc il y a .fullname qui donne le nom complet
et correspond à .path & "/" & .name
Le problème c'est de les stocker pour les utiliser
et que les boucles vont commencer à friser si tu dois te taper n
répertoires.
Une alternative un peu lourdingue serait via Démarrer
executer
cmd
cd
dir *.wav/s/b>listsons.txt
...patienter
exit
et de récupèrer la liste dans excel
Ou + simple amha, mais tout dépend de l'objectif final
serait d'avoir un répertoire "Sons" où tu mets tout les sons que tu
veux.
Cordialement.
lSteph
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui
concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou
plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement
Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme
de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné :
WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur
de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de
fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _
Alias "PlaySoundA" (ByVal lpszName As String, _
ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0
Const SND_ASYNC = &H1
Const SND_FILENAME = &H20000
Sub PlayWAV(litmoi)
Dim WAVfil As String
If litmoi = 1 Then
WAVfil = "alles klar.wav"
ElseIf litmoi = 2 Then
WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai
obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)
donc il y a .fullname qui donne le nom complet et correspond à .path & "/" & .name
Le problème c'est de les stocker pour les utiliser et que les boucles vont commencer à friser si tu dois te taper n répertoires. Une alternative un peu lourdingue serait via Démarrer executer cmd cd dir *.wav/s/b>listsons.txt ...patienter exit
et de récupèrer la liste dans excel
Ou + simple amha, mais tout dépend de l'objectif final serait d'avoir un répertoire "Sons" où tu mets tout les sons que tu veux.
Cordialement.
lSteph
Bonjour !
je cherche à progresser sur VBA et je souhaite optimiser un code qui concerne la construction de liens "logiques"
à partir d'un bouton d'un userform, je désire faire référence à un ou plusieurs fichiers externes.
Comment définir une fonction ou une procédure qui me donnerai plus simplement Le Chemin du répertoire + le nom du fichier
Un truc du genre : WAVFile(litmoi as integer) qui me renvoi bien sous forme de string Le Chemin du répertoire + le nom du fichier
Un post précédent m'a donné : WAVFilechemin = ThisWorkbook.Path & "" & WAVfile(litmoi)
mais aucune idée comment incrémenter WAVFile(litmoi) pour qu'à chaque valeur de l'entier naturel "litmoi", il retourne une valeur donnée d'un nom de fichier plus simplement qu'avec des if ... then ... elseif ... endif
Private Declare Function PlaySound Lib "winmm.dll" _ Alias "PlaySoundA" (ByVal lpszName As String, _ ByVal hModule As Long, ByVal dwFlags As Long) As Long
Const SND_SYNC = &H0 Const SND_ASYNC = &H1 Const SND_FILENAME = &H20000 Sub PlayWAV(litmoi) Dim WAVfil As String
If litmoi = 1 Then WAVfil = "alles klar.wav" ElseIf litmoi = 2 Then WAVfil = "das da.wav"
... et ainsi de suite pour un grand nombre de noms de fichiers dont j'ai obtenu la liste via vba...
End If
WAVFilechemin = ThisWorkbook.Path & "" & WAVfil
Call PlaySound(WAVFilechemin, 0&, SND_ASYNC Or SND_FILENAME)