Probleme de code du a migration vers EXCEL 2007

GClaire

XLDnaute Occasionnel
Supporter XLD
Salut toute la communauté.

Et oui cela fait un bail que je n'ai pas posté, mais je viens de temps en temps voir la vie de ce forum.

J'espère que toute cette communauté va bien, il y a eu du nouveau depuis s'est vraiment trés, trés bien, bravo david.

Donc mon probleme, il y a quelque année avec l'aide de plusieur (@Thierry, Vériland, Ti etc...) de ce forum, un fichier de gestion de gala de danse a été créer (D'ailleur il lui a vallu le record du plus long post, lol).

Il fonctionné bien, mais du faite d'être passé sur excel 2007, un code ne fonctionne plus, alors déjà que j'avais des lacunes sous 2000 là , s'est encore pire.

Et le pire s'est que je dois remmettre ses feuilles samedi matin, je suis dans la mouise, hihihi.

Donc il y aurai :

1) une modif de ce code pour la migration vers 2007.

A priori sous 2007 le code "With Application.FileSearch", n'éxiste plus.

Voici le code du module, cela se passe dans la Sub "RecupDonneesBallets".

Code:
Option Explicit

Function ChoixDossierFichier(Racine, Optional SelType As Byte = 0)
'affiche la boite de dialogue Windows de recherche d'un dossier
'ou d'un fichier     '(fs) d'après un code [url]http://www.vbfrance.com[/url]
Dim objShell, objFolder, Chemin, SecuriteSlash, FlagChoix&, Msg$
If SelType = 0 Then
    FlagChoix = &H1&: Msg = "Choisissez un dossier :"
Else
    FlagChoix = &H4000&: Msg = "Choisissez un fichier :"
End If

Set objShell = CreateObject("Shell.Application")
'le troisième paramètre permet de choisir
'la sélection d'un dossier ou d'un fichier (0 ou 1)
'le dernier paramètre permet de choisir le dossier racine
Set objFolder = objShell.BrowseForFolder(&H0&, Msg, FlagChoix, Racine)
On Error Resume Next
Chemin = objFolder.ParentFolder.ParseName(objFolder.Title).Path & ""
If objFolder.Title = "Bureau" Then Chemin = "C:\Windows\Bureau"
If objFolder.Title = "" Then Chemin = ""

SecuriteSlash = InStr(objFolder.Title, ":")
If SecuriteSlash > 0 Then
    Chemin = Mid(objFolder.Title, SecuriteSlash - 1, 2) & ""
End If
ChoixDossierFichier = Chemin
End Function

Sub RecupDonneesBallets()
 Dim txt As String, i As Long, fil As String
 Dim tablo1, tablo2, Organisateurs As String
 Dim Annee As String, a As String, b As String, c As String, d As String, e As String, f As String
 Dim g, f1, ligne As Long, choix      ', fso, dossier
With Sheets("Tool_Planning")
        Application.ScreenUpdating = False
        Range("A14:G14").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        Range("A14").Select
End With
 txt = "Musiques pour le gala"
 choix = ChoixDossierFichier("O:\Spectacle années en cours\")
 If choix <> "" Then
        With Application.FileSearch
        .LookIn = choix
        .Filename = "*.wav"
        .SearchSubFolders = True
            If .Execute > 0 Then
                For i = 1 To .FoundFiles.Count
                    fil = .FoundFiles(i)
                    tablo1 = Split(fil, "\")
                    tablo2 = Split(tablo1(UBound(tablo1)), "-")
                        If UBound(tablo1) = 6 And _
                            UBound(tablo2) = 3 And _
                            InStr(1, UCase(fil), UCase(txt)) > 0 Then
'Organisateurs
Organisateurs = tablo1(2)
'Année
Annee = tablo1(1)
Annee = Right(Annee, 4)
'A : N° de la partie -> (Donnée récupérée par rapport au dossier)
      a = tablo1(4)
      a = Application.Substitute(a, "Partie ", "")
'B : N° du ballet -> (Donnée récupérée avec le nom du fichier)
      b = tablo2(0)
'C : Nom du prof -> (Données récupérées par rapport au dossier)
      c = tablo1(5)
'D : Groupe d 'élève -> (Données récupérées avec le nom du fichier)
      d = tablo2(1)
'E : Interprètes -> (Données récupérées avec le nom du fichier)
      e = tablo2(3)
      e = Left(e, Len(e) - 4)
'F : Titres -> (Données récupérées avec le nom du fichier)
      f = tablo2(2)
'G : La durée de la chanson --> (Données récupérées avec le poids du fichier)
      '(39934/176400)1024=232 sec soit 3'52 sec
      g = FileLen(fil)
      g = g / 176400 / 60 / 60 / 24
'NUMEROTATION DES FICHIERS
With Sheets("Tool_Planning")
        Application.ScreenUpdating = False
        .Range("E6") = Organisateurs
        ligne = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(ligne, "A") = a
        .Cells(ligne, "B") = b
        .Cells(ligne, "C") = c
        .Cells(ligne, "D") = d
        .Cells(ligne, "E") = e
        .Cells(ligne, "F") = f
        .Cells(ligne, "G") = g
        .Cells(ligne, "G").NumberFormat = "mm:ss"
            If Range("A14").Value = 0 Then Exit Sub
                
                Range("A14:G14").Select
                Range(Selection, Selection.End(xlDown)).Select
                Selection.Sort Key1:=Range("A14"), Order1:=xlAscending, _
                        Header:=xlNo, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
                Range("A14").Select
    End With
     End If
    Next i
   End If
  End With
 End If
Application.ScreenUpdating = True
Call creer_feuille

End Sub


2) Et une modification en raison de fichier MP3 que l'on me donne en même temps.

A la base ce fichier devait rechercher dans un endroit les fichier Wav et en faisant un calcul donné son temps en mm:ss

Maintenant je peux avoir du MP3 et du wav et la formule de calcul pour du MP3 et plus bonne.

Ma question serait il possible de modifier cela en fonction de l'extension du fichier?

C'est a dire, admettons qu'il y ai dans un dossier des deux possibilités que le calucul se fasse quand même, ou si cela est possible d'utiliser les Id-Tag des fichiers

Donc je vous met en lien le fichier et la structure sans musiques (pour éviter d'allourdire), si quelqu'un veux bien me dépatouiller.

Heu comment faut procéder pour mettre un lien pour un fichier, cela m'a jeté a chaque fois, lol

Je vous remercie par avance pour toute votre aide, salutations G'Claire
 
Dernière édition:

GClaire

XLDnaute Occasionnel
Supporter XLD
Re : Probleme de code du a migration vers EXCEL 2007

Salut

A priori le faite de faire le test


If Répertoire <> "\" Then


A l'aire de bien fonctionner et ne pose pas de probleme pour la suite, je verrai dans le temps a l'utilisation si j'ai un souci.

Pour ton code, je viens d'essyer, il m'ouvre l'explorateur windows sur C: et si je fait "Annuler", il me dit bien qu'il y a aucun fichier choisi.

Pour ce probleme je pense, que cela devrait aller.

Pour ce qui est de mon trie de la feuille planning, j'y est réussi.

La dernière petite modification ou amélioration serait :

Serait il possible de regarder les calculs du temps en (mm:ss), suivant les format de fichiers de musique (MP3, Wave ou WMA), afin de pouvoir y faire les calcule suivant ce format?

Voici le code de calcul et de remplissage de ma feuille planning

Code:
'G : La durée de la chanson --> (Données récupérées avec le poids du fichier)
      '(39934/176400)1024=232 sec soit 3'52 sec
      G = FileLen(Fil)
      G = G / 176400 / 60 / 60 / 24
'NUMEROTATION DES FICHIERS
With Sheets("Tool_Planning")
        Application.ScreenUpdating = False
        .Range("C4") = Organisateurs
        Ligne = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(Ligne, "A") = A
        '.Cells(Ligne, "A").NumberFormat = "00"
        .Cells(Ligne, "B") = B
        '.Cells(Ligne, "B").NumberFormat = "00"
        .Cells(Ligne, "C") = C
        .Cells(Ligne, "D") = D
        .Cells(Ligne, "E") = E
        .Cells(Ligne, "F") = F
        .Cells(Ligne, "G") = G
        .Cells(Ligne, "G").NumberFormat = "mm:ss"
            If Range("A14").Value = 0 Then Exit Sub
                Range("A14:G14").Select
                Range(Selection, Selection.End(xlDown)).Select
                Selection.Sort Key1:=Range("A14"), Order1:=xlAscending, _
                        Header:=xlNo, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
                Range("A14").Select
End With

Je vous remercie par avance salutations, G'Claire
 

JNP

XLDnaute Barbatruc
Re : Probleme de code du a migration vers EXCEL 2007

Bonjour le forum :),
Après quelques heures de recherche :( sur l'aide et sur le Net, j'ai fini par dégotter sur un autre forum un bout de code qui devrait te convenir. Le pire, c'est que c'est notre excellent JB qui l'a posté :p.
Code:
Sub Durée()
Set myShell = CreateObject("Shell.Application")
Set myFolder = myShell.Namespace("Chemin du dossier")
Set myFile = myFolder.Items.Item("Nom du fichier")
MsgBox myFolder.GetDetailsOf(myFile, 21)
End Sub
Bonne journée :cool:
 

JNP

XLDnaute Barbatruc
Re : Probleme de code du a migration vers EXCEL 2007

Re :),
J'avoue que j'ai du mal à te cerner... Le code de JB te permets de récupérer la durée du morceau, que ce soit du wma, du mp3 ou autre...
Où se situe ton problème ?
Bonne soirée :cool:
 

GClaire

XLDnaute Occasionnel
Supporter XLD
Re : Probleme de code du a migration vers EXCEL 2007

Salut tout le monde.

Donc comme je l'ai dit sur l'autre post, je n'ai pas continué sur mon besoin, car prie par le temps, j'ai du faire au plus vite et plus simple, reconvertire tous mes fichier en wave, car dans ce cas de figure cela fonctionne.

Le soucie que j'ai remarqué, est que les MP3 que l'on m'envoie, les champs (ID TAG), ne sont pas renseigné, avant quand je faisait les montages, tous ces champs étaient renseignés, et cela aurai résole mon probleme.

Donc j'en suis arrivé a dire soit :

1) il faut que je renseigne moi même ses champs, et le temps que cela va me prendre.

2) Je demande aux personne de me donner des fichiers avec les champs renseigner, je peu toujours réver, car ils ne sauront pas faire.

3) Je demande aux personnes de me donner des fichiers en WAVE, mais ceux si sont plus lourds et risque de bloquer en mail ou alors solution de MSN

4) Je reconvertie les fichier en WAVE, je pense être la meilleur solution, le soucie, c'est que de convertire sans cesse, je perds en qualité.

Voili, voilou ou j'en suis.

Merci a vous et désolé de ne pas avoir répondu, s'est pas trés cool surtout que vous avez tenté de m'aider.

Salutations, G'Claire
 

JNP

XLDnaute Barbatruc
Re : Probleme de code du a migration vers EXCEL 2007

Re :),
C'est quand même bizarre parce que la durée d'un morceau mp3, c'est intrinsèque. Tu n'as pas accès à ces tags (Audio : Durée, Débit, Chaîne et Taux d'échantillonage), vu que toute modification serait impossible et n'aurait aucun sens... Donc tu ne peux pas modifier ces tags, et à priori, ils ne peuvent pas ne pas être renseignés automatiquement. Peux-tu nous mettre un de ces fichier en ligne, ou me l'envoyer sur mon adresse msn que tu connait, j'aimerais y jeter un oeil ;).
Bon courage :cool:
 
Haut Bas