Lecture d'un fichier wave par Excel VBA

Bonjour a tous, j'ai un petit fichier excel dont les cellules d'une colonne contiennent la position du début d'un morceau que je veux écouter dans un fichier Wave. J'ai un petit bout de code en VBA qui permet de lancer l'écoute lorsque je clic sur une cellule contenant la position (en heure minute seconde). Ce code apelle un code écrit en Power Shell.

Donc mon application vise a controler le morceaux que je veux faire jouer, avec Excel.

Ca ne fonctionne pas a tout les coups. Par exemple si je veux écouter la piece qui est a 2 minutes 25 sec., il arrive fréquemment que c'est la piece a 0 minute 0 sec qui joue. Si j'écoute une piece ailleurs, meme genre de probleme: il arrive fréquemment que c'est la piece a 0 minutes 0 seconde qui joue. Pourquoi ca ne marche pas toujours? Pourtant le power Shell indique bien la position de piece que j'ai cliqué dans excel.

Apres quelques recherches, j'ai l'impression que j'utilise mal la classe médiaélément. Je sais qu'il faut se placer en mode manual mais pour le reste je suis completement perdu!

Je vous envoie les 2 codes (VBA et Power Shell)

Merci de m'aider!

If Not Application.Intersect(target, Range("F3:F600")) Is Nothing Then    'clic dans une cellule contenant des positions de pieces de musique
       'Resultat = Range("F7").Value ' récupere l'heure de la cellule F7

     strArray = Split(ActiveCell.Value, ":")
     endB = UBound(strArray)

     If endB = 1 Then
            min = strArray(0)
            sec = strArray(1)
     Else
            hour = strArray(0)
            min = strArray(1)
            sec = strArray(2)
     End If

     'MsgBox ("Hour ; Min ; Sec = " & hour & " ; " & min & " ; " & sec)

     Call Shell("powershell.exe -ExecutionPolicy Unrestricted -File ""C:\Users\michel\Desktop\donnees récupérées\musique\music_script.ps1"" -hour " & hour & " -min " & min & " -sec " & sec, 1)
Param(
  [int]$hour = 0,
  [int]$min = 0,
  [int]$sec = 0
)

Write-Host "Script start"
Write-Host "Position : $hour;$min;$sec"

Add-Type –assemblyName PresentationFramework
$mp=New-Object System.Windows.Controls.MediaElement

$mp.UnloadedBehavior = 'Manual'
$mp.Position = New-Object System.TimeSpan($hour, $min, $sec);
Write-Host "Position set";

$mp.Source = "C:\Users\michel\Desktop\donnees récupérées\musique\musique audacity\Dust in the wind.wav";
Write-Host "Source Set"

$mp.Volume = 1
$mp.Play();
Write-Host "Playing...";

Read-Host "Press any key to stop";
$mp.Stop();
$mp.Close();  

Mon application fonctionne maintenant tres bien. Donc en résumé, lorsque je clic sur une cellule contenant les heures minute et secondes d'une position de morceaux, ce morceaux est jouer automatiquement!

L'application gratuit que j'utilise pour lire mes fichiers audio est VLC. J'utilise la fonction SHELL pour partir l'application avec l'argument Start Time, et bingo!

Capucin

Rechercher des sujets similaires à "lecture fichier wave vba"