Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide pour me dépanner sur une procédure

19 réponses
Avatar
G''Claire
Salut a toute et tous.

Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.

Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
procédure de vérification des fichiers audio dont le nom me sert a remplire
mes feuilles.

Donc voici comment je manipule cela .

1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"

2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
années en cours.

3) La je sélectione le dossier de ma prestation (Chaque dossier de
prestation est constituer de la même manière):

Dans ce dossier il y a :

a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
procédure.

Et dans ce dossier il y a X parties de la prestation (Cela me sert a
remplire des informations dans les feuilles):

Partie 1
Partie 2
Partie 3


Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
sert a remplire des informations dans les feuilles)

Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
sservent juste a extraire le nom du fichier pour remplire des informations
dans les feuilles)

J'espère que c'est claire.

Donc voici la procédure et cela bloque à : With Application.FileSearch.

Et comme erreur j'ai :

Erreur d'éxécution '445'
Cet objet ne gère pas action.



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 = "*.MP3"
.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

J'espère vraiment être assez claire afin que vous puissiez me dépanner, car
la je nage complètement.

Cette procédure je ne l'ai pas écrite et je ne me rappel plus qui me la
faite, c'est un fichier ou beaucoup d'internaute m'ont aidé.

Si besoin est je peux fournire le fichier complet, il n'y a rien de
confidentiel.

Sincères salutations, G'Claire

10 réponses

1 2
Avatar
MichDenis
Bonjour G Claire,

Sous Excel 2003, tout semble normal, ta procédure s'exécute.
Sous Excel 2007, la méthode FileSearch n'existe plus.





"G''Claire" a écrit dans le message de groupe de
discussion :
Salut a toute et tous.

Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.

Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
procédure de vérification des fichiers audio dont le nom me sert a remplire
mes feuilles.

Donc voici comment je manipule cela .

1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"

2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
années en cours.

3) La je sélectione le dossier de ma prestation (Chaque dossier de
prestation est constituer de la même manière):

Dans ce dossier il y a :

a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
procédure.

Et dans ce dossier il y a X parties de la prestation (Cela me sert a
remplire des informations dans les feuilles):

Partie 1
Partie 2
Partie 3


Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
sert a remplire des informations dans les feuilles)

Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
sservent juste a extraire le nom du fichier pour remplire des informations
dans les feuilles)

J'espère que c'est claire.

Donc voici la procédure et cela bloque à : With Application.FileSearch.

Et comme erreur j'ai :

Erreur d'éxécution '445'
Cet objet ne gère pas action.



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 = "*.MP3"
.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#2 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:úlse, 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

J'espère vraiment être assez claire afin que vous puissiez me dépanner, car
la je nage complètement.

Cette procédure je ne l'ai pas écrite et je ne me rappel plus qui me la
faite, c'est un fichier ou beaucoup d'internaute m'ont aidé.

Si besoin est je peux fournire le fichier complet, il n'y a rien de
confidentiel.

Sincères salutations, G'Claire
Avatar
G''Claire
MichDenis, Le forum.

Merci pour ta réponse.
Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
remédier a cela? Une autre fonction?

Merci beaucoup, G'Claire

"MichDenis" a écrit :

Bonjour G Claire,

Sous Excel 2003, tout semble normal, ta procédure s'exécute.
Sous Excel 2007, la méthode FileSearch n'existe plus.





"G''Claire" a écrit dans le message de groupe de
discussion :
Salut a toute et tous.

Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.

Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
procédure de vérification des fichiers audio dont le nom me sert a remplire
mes feuilles.

Donc voici comment je manipule cela .

1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"

2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
années en cours.

3) La je sélectione le dossier de ma prestation (Chaque dossier de
prestation est constituer de la même manière):

Dans ce dossier il y a :

a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
procédure.

Et dans ce dossier il y a X parties de la prestation (Cela me sert a
remplire des informations dans les feuilles):

Partie 1
Partie 2
Partie 3


Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
sert a remplire des informations dans les feuilles)

Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
sservent juste a extraire le nom du fichier pour remplire des informations
dans les feuilles)

J'espère que c'est claire.

Donc voici la procédure et cela bloque à : With Application.FileSearch.

Et comme erreur j'ai :

Erreur d'éxécution '445'
Cet objet ne gère pas action.



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 = "*.MP3"
.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#2 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:úlse, 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

J'espère vraiment être assez claire afin que vous puissiez me dépanner, car
la je nage complètement.

Cette procédure je ne l'ai pas écrite et je ne me rappel plus qui me la
faite, c'est un fichier ou beaucoup d'internaute m'ont aidé.

Si besoin est je peux fournire le fichier complet, il n'y a rien de
confidentiel.

Sincères salutations, G'Claire




Avatar
MichDenis
Tout ce qui suit dans un module standard.

Tu appelles la procédure : Liste_Des_Fichiers

La procédure "Traitement" n'a pas été retouchée

'Déclaration des variables dans le haut du module
Option Explicit
Dim Tblo()
Dim A As Long
'----------------------------------------
Sub Liste_Des_Fichiers()
Dim X
Dim Répertoire As String

A = 0
Répertoire = ChoixDossierFichier & ""
If Répertoire <> "" Then
Call Contenu_Répertoire(Répertoire)
Call FoldersInFolder(Répertoire)
Call Traitement
End If
End Sub
'----------------------------------------
Sub FoldersInFolder(myFolderName As String)

Dim FSO As Object
Dim myBaseFolder As Object
Dim myFolder As Object

Set FSO = CreateObject("scripting.filesystemobject")
Set myBaseFolder = FSO.GetFolder(myFolderName)
For Each myFolder In myBaseFolder.SubFolders
Call Contenu_Répertoire(myFolder.Path & "")
Call FoldersInFolder(myFolder.Path)
Next myFolder

End Sub
'----------------------------------------
Sub Contenu_Répertoire(Chemin As String)
Dim Fichier As String
Fichier = Dir(Chemin & "*.xls")
Do While Fichier <> ""
A = A + 1
ReDim Preserve Tblo(A)
Tblo(A) = Chemin & Fichier
Fichier = Dir()
Loop
End Sub
'----------------------------------------
Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = "c:"
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function
'----------------------------------------
Sub Traitement()
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
Dim C As String, D As String, E As String, F As String
Dim G, f1, Ligne As Long, Choix ', fso, dossier

For I = 1 To UBound(Tblo)
Fil = Tblo(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#2 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:úlse, Orientation:=xlTopToBottom
Range("A14").Select
End With
End If
Next I
End Sub
'----------------------------------------





"G''Claire" a écrit dans le message de groupe de
discussion :
MichDenis, Le forum.

Merci pour ta réponse.
Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
remédier a cela? Une autre fonction?

Merci beaucoup, G'Claire

"MichDenis" a écrit :

Bonjour G Claire,

Sous Excel 2003, tout semble normal, ta procédure s'exécute.
Sous Excel 2007, la méthode FileSearch n'existe plus.





"G''Claire" a écrit dans le message de groupe de
discussion :
Salut a toute et tous.

Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.

Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
procédure de vérification des fichiers audio dont le nom me sert a remplire
mes feuilles.

Donc voici comment je manipule cela .

1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"

2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
années en cours.

3) La je sélectione le dossier de ma prestation (Chaque dossier de
prestation est constituer de la même manière):

Dans ce dossier il y a :

a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
procédure.

Et dans ce dossier il y a X parties de la prestation (Cela me sert a
remplire des informations dans les feuilles):

Partie 1
Partie 2
Partie 3


Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
sert a remplire des informations dans les feuilles)

Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
sservent juste a extraire le nom du fichier pour remplire des informations
dans les feuilles)

J'espère que c'est claire.

Donc voici la procédure et cela bloque à : With Application.FileSearch.

Et comme erreur j'ai :

Erreur d'éxécution '445'
Cet objet ne gère pas action.



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 = "*.MP3"
.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#2 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:úlse, 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

J'espère vraiment être assez claire afin que vous puissiez me dépanner, car
la je nage complètement.

Cette procédure je ne l'ai pas écrite et je ne me rappel plus qui me la
faite, c'est un fichier ou beaucoup d'internaute m'ont aidé.

Si besoin est je peux fournire le fichier complet, il n'y a rien de
confidentiel.

Sincères salutations, G'Claire




Avatar
MichDenis
Oups, dans la procédure "Contenu_Répertoire"

Tu dois adapter l'extension de fichier à cette ligne de code

Fichier = Dir(Chemin & "*.xls")

Tu modifies .xls pour .mp3 ou l'extension de fichier de ton choix




"MichDenis" a écrit dans le message de groupe de discussion :

Tout ce qui suit dans un module standard.

Tu appelles la procédure : Liste_Des_Fichiers

La procédure "Traitement" n'a pas été retouchée

'Déclaration des variables dans le haut du module
Option Explicit
Dim Tblo()
Dim A As Long
'----------------------------------------
Sub Liste_Des_Fichiers()
Dim X
Dim Répertoire As String

A = 0
Répertoire = ChoixDossierFichier & ""
If Répertoire <> "" Then
Call Contenu_Répertoire(Répertoire)
Call FoldersInFolder(Répertoire)
Call Traitement
End If
End Sub
'----------------------------------------
Sub FoldersInFolder(myFolderName As String)

Dim FSO As Object
Dim myBaseFolder As Object
Dim myFolder As Object

Set FSO = CreateObject("scripting.filesystemobject")
Set myBaseFolder = FSO.GetFolder(myFolderName)
For Each myFolder In myBaseFolder.SubFolders
Call Contenu_Répertoire(myFolder.Path & "")
Call FoldersInFolder(myFolder.Path)
Next myFolder

End Sub
'----------------------------------------
Sub Contenu_Répertoire(Chemin As String)
Dim Fichier As String
Fichier = Dir(Chemin & "*.xls")
Do While Fichier <> ""
A = A + 1
ReDim Preserve Tblo(A)
Tblo(A) = Chemin & Fichier
Fichier = Dir()
Loop
End Sub
'----------------------------------------
Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = "c:"
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function
'----------------------------------------
Sub Traitement()
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
Dim C As String, D As String, E As String, F As String
Dim G, f1, Ligne As Long, Choix ', fso, dossier

For I = 1 To UBound(Tblo)
Fil = Tblo(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#2 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:úlse, Orientation:=xlTopToBottom
Range("A14").Select
End With
End If
Next I
End Sub
'----------------------------------------





"G''Claire" a écrit dans le message de groupe de
discussion :
MichDenis, Le forum.

Merci pour ta réponse.
Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
remédier a cela? Une autre fonction?

Merci beaucoup, G'Claire

"MichDenis" a écrit :

Bonjour G Claire,

Sous Excel 2003, tout semble normal, ta procédure s'exécute.
Sous Excel 2007, la méthode FileSearch n'existe plus.





"G''Claire" a écrit dans le message de groupe de
discussion :
Salut a toute et tous.

Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.

Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
procédure de vérification des fichiers audio dont le nom me sert a remplire
mes feuilles.

Donc voici comment je manipule cela .

1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"

2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
années en cours.

3) La je sélectione le dossier de ma prestation (Chaque dossier de
prestation est constituer de la même manière):

Dans ce dossier il y a :

a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
procédure.

Et dans ce dossier il y a X parties de la prestation (Cela me sert a
remplire des informations dans les feuilles):

Partie 1
Partie 2
Partie 3


Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
sert a remplire des informations dans les feuilles)

Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
sservent juste a extraire le nom du fichier pour remplire des informations
dans les feuilles)

J'espère que c'est claire.

Donc voici la procédure et cela bloque à : With Application.FileSearch.

Et comme erreur j'ai :

Erreur d'éxécution '445'
Cet objet ne gère pas action.



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 = "*.MP3"
.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#2 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:úlse, 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

J'espère vraiment être assez claire afin que vous puissiez me dépanner, car
la je nage complètement.

Cette procédure je ne l'ai pas écrite et je ne me rappel plus qui me la
faite, c'est un fichier ou beaucoup d'internaute m'ont aidé.

Si besoin est je peux fournire le fichier complet, il n'y a rien de
confidentiel.

Sincères salutations, G'Claire




Avatar
G''Claire
MichDenis, le forum

Je te remercie beaucoup, je test cela et te tiens au courant.

Encore Merci pour ton aide, G'Claire

"MichDenis" a écrit :

Oups, dans la procédure "Contenu_Répertoire"

Tu dois adapter l'extension de fichier à cette ligne de code

Fichier = Dir(Chemin & "*.xls")

Tu modifies .xls pour .mp3 ou l'extension de fichier de ton choix




"MichDenis" a écrit dans le message de groupe de discussion :

Tout ce qui suit dans un module standard.

Tu appelles la procédure : Liste_Des_Fichiers

La procédure "Traitement" n'a pas été retouchée

'Déclaration des variables dans le haut du module
Option Explicit
Dim Tblo()
Dim A As Long
'----------------------------------------
Sub Liste_Des_Fichiers()
Dim X
Dim Répertoire As String

A = 0
Répertoire = ChoixDossierFichier & ""
If Répertoire <> "" Then
Call Contenu_Répertoire(Répertoire)
Call FoldersInFolder(Répertoire)
Call Traitement
End If
End Sub
'----------------------------------------
Sub FoldersInFolder(myFolderName As String)

Dim FSO As Object
Dim myBaseFolder As Object
Dim myFolder As Object

Set FSO = CreateObject("scripting.filesystemobject")
Set myBaseFolder = FSO.GetFolder(myFolderName)
For Each myFolder In myBaseFolder.SubFolders
Call Contenu_Répertoire(myFolder.Path & "")
Call FoldersInFolder(myFolder.Path)
Next myFolder

End Sub
'----------------------------------------
Sub Contenu_Répertoire(Chemin As String)
Dim Fichier As String
Fichier = Dir(Chemin & "*.xls")
Do While Fichier <> ""
A = A + 1
ReDim Preserve Tblo(A)
Tblo(A) = Chemin & Fichier
Fichier = Dir()
Loop
End Sub
'----------------------------------------
Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = "c:"
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function
'----------------------------------------
Sub Traitement()
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
Dim C As String, D As String, E As String, F As String
Dim G, f1, Ligne As Long, Choix ', fso, dossier

For I = 1 To UBound(Tblo)
Fil = Tblo(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#2 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:úlse, Orientation:=xlTopToBottom
Range("A14").Select
End With
End If
Next I
End Sub
'----------------------------------------





"G''Claire" a écrit dans le message de groupe de
discussion :
MichDenis, Le forum.

Merci pour ta réponse.
Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
remédier a cela? Une autre fonction?

Merci beaucoup, G'Claire

"MichDenis" a écrit :

> Bonjour G Claire,
>
> Sous Excel 2003, tout semble normal, ta procédure s'exécute.
> Sous Excel 2007, la méthode FileSearch n'existe plus.
>
>
>
>
>
> "G''Claire" a écrit dans le message de groupe de
> discussion :
> Salut a toute et tous.
>
> Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
> et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.
>
> Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
> feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
> procédure de vérification des fichiers audio dont le nom me sert a remplire
> mes feuilles.
>
> Donc voici comment je manipule cela .
>
> 1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"
>
> 2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
> années en cours.
>
> 3) La je sélectione le dossier de ma prestation (Chaque dossier de
> prestation est constituer de la même manière):
>
> Dans ce dossier il y a :
>
> a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
> b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
> procédure.
>
> Et dans ce dossier il y a X parties de la prestation (Cela me sert a
> remplire des informations dans les feuilles):
>
> Partie 1
> Partie 2
> Partie 3
>
>
> Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
> sert a remplire des informations dans les feuilles)
>
> Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
> sservent juste a extraire le nom du fichier pour remplire des informations
> dans les feuilles)
>
> J'espère que c'est claire.
>
> Donc voici la procédure et cela bloque à : With Application.FileSearch.
>
> Et comme erreur j'ai :
>
> Erreur d'éxécution '445'
> Cet objet ne gère pas action.
>
>
>
> 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 = "*.MP3"
> .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#2 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:úlse, 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
>


Avatar
G''Claire
MichDenis.

Donc je viens de tester cela.

J'ai modifier l'extension et aussi le départ du dossier car comme tout ce
passe sur un P-C en réseau, cela n'était plus sur C:

Cela fonctionne, j'ai remarqué lors de l'importation de la liste dans ma
feuille que :

1) Que même si je ne choisi pas un dossier du spectacle, que je fasse "OK",
ou que je choisisse un dossier prestation qui n'est pas fini (Qui ne contiens
pas le dossier "Musique pour le gala", cela importe le premier dossier avec
le dossier "Musique pour le gala", la chose que je crains est que si je
possède plusieurs dossier de ce nom que cela me les importe tous, ou pas le
bon.

Pour cela serait il possible de faire une validation du dossier du
spectacle, lors du choix et que si aucun dossier n'est choisi que cela me le
demande, et que si un dossier est choisi sans le dossier "Musique pour le
gala, cela me prévienne.


2) La liste n'était pas numéroter comme il faut de 1 a X lignes, es-ce
qaussi dù a Excel 2007, voici une impression écran (Je ne sais si on peu en
mettre des liens, me dire, sorry) du résultat de l'importation.

http://img30.imageshack.us/img30/1053/gestionballet.jpg

3) Je ne sais pas si cela est due a Excell 2007, mais a priori mon calcul
pour le temps en Minutes et seconde, n'est plus correct.

Voici ma procédure :

'G : La durée de la chanson --> (Données récupérées avec le poids du fichier)
'(39934/176400)1024#2 sec soit 3'52 sec
g = FileLen(fil)
g = g / 176400 / 60 / 60 / 24

Un truc si cela viens d'excel 2007 ou non.

Voici ma procédure pour effacer le planning (Mis dans le bouton "RAZ
Planning).

Private Sub CommandButton5_Click()
Dim Cell As Range
Dim reponse
reponse = MsgBox("Supprimer toutes les lignes ?", vbYesNo, "CONFIRMATION")
If reponse = vbYes _
Then
Range(Cells(14, 3), Cells(200, 13)).ClearContents
Range(Cells(15, 1), Cells(200, 13)).ClearContents
End If

End Sub

Merci beaucoup pour ton aide, G'Claire

"G''Claire" a écrit :

MichDenis, le forum

Je te remercie beaucoup, je test cela et te tiens au courant.

Encore Merci pour ton aide, G'Claire

"MichDenis" a écrit :

> Oups, dans la procédure "Contenu_Répertoire"
>
> Tu dois adapter l'extension de fichier à cette ligne de code
>
> Fichier = Dir(Chemin & "*.xls")
>
> Tu modifies .xls pour .mp3 ou l'extension de fichier de ton choix
>
>
>
>
> "MichDenis" a écrit dans le message de groupe de discussion :
>
> Tout ce qui suit dans un module standard.
>
> Tu appelles la procédure : Liste_Des_Fichiers
>
> La procédure "Traitement" n'a pas été retouchée
>
> 'Déclaration des variables dans le haut du module
> Option Explicit
> Dim Tblo()
> Dim A As Long
> '----------------------------------------
> Sub Liste_Des_Fichiers()
> Dim X
> Dim Répertoire As String
>
> A = 0
> Répertoire = ChoixDossierFichier & ""
> If Répertoire <> "" Then
> Call Contenu_Répertoire(Répertoire)
> Call FoldersInFolder(Répertoire)
> Call Traitement
> End If
> End Sub
> '----------------------------------------
> Sub FoldersInFolder(myFolderName As String)
>
> Dim FSO As Object
> Dim myBaseFolder As Object
> Dim myFolder As Object
>
> Set FSO = CreateObject("scripting.filesystemobject")
> Set myBaseFolder = FSO.GetFolder(myFolderName)
> For Each myFolder In myBaseFolder.SubFolders
> Call Contenu_Répertoire(myFolder.Path & "")
> Call FoldersInFolder(myFolder.Path)
> Next myFolder
>
> End Sub
> '----------------------------------------
> Sub Contenu_Répertoire(Chemin As String)
> Dim Fichier As String
> Fichier = Dir(Chemin & "*.xls")
> Do While Fichier <> ""
> A = A + 1
> ReDim Preserve Tblo(A)
> Tblo(A) = Chemin & Fichier
> Fichier = Dir()
> Loop
> End Sub
> '----------------------------------------
> Function ChoixDossierFichier$(Optional Racine)
> Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$
>
> If IsMissing(Racine) Then Racine = "c:"
> Msg = "Choisissez le fichier à ouvrir :"
> Set objShell = CreateObject("Shell.Application")
> Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
> On Error Resume Next
> Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
> ChoixDossierFichier = Chemin
> End Function
> '----------------------------------------
> Sub Traitement()
> 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
> Dim C As String, D As String, E As String, F As String
> Dim G, f1, Ligne As Long, Choix ', fso, dossier
>
> For I = 1 To UBound(Tblo)
> Fil = Tblo(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#2 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:úlse, Orientation:=xlTopToBottom
> Range("A14").Select
> End With
> End If
> Next I
> End Sub
> '----------------------------------------
>
>
>
>
>
> "G''Claire" a écrit dans le message de groupe de
> discussion :
> MichDenis, Le forum.
>
> Merci pour ta réponse.
> Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
> remédier a cela? Une autre fonction?
>
> Merci beaucoup, G'Claire
>
> "MichDenis" a écrit :
>
> > Bonjour G Claire,
> >
> > Sous Excel 2003, tout semble normal, ta procédure s'exécute.
> > Sous Excel 2007, la méthode FileSearch n'existe plus.
> >
> >
> >
> >
> >
> > "G''Claire" a écrit dans le message de groupe de
> > discussion :
> > Salut a toute et tous.
> >
> > Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
> > et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.
> >
> > Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
> > feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
> > procédure de vérification des fichiers audio dont le nom me sert a remplire
> > mes feuilles.
> >
> > Donc voici comment je manipule cela .
> >
> > 1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"
> >
> > 2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
> > années en cours.
> >
> > 3) La je sélectione le dossier de ma prestation (Chaque dossier de
> > prestation est constituer de la même manière):
> >
> > Dans ce dossier il y a :
> >
> > a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
> > b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
> > procédure.
> >
> > Et dans ce dossier il y a X parties de la prestation (Cela me sert a
> > remplire des informations dans les feuilles):
> >
> > Partie 1
> > Partie 2
> > Partie 3
> >
> >
> > Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
> > sert a remplire des informations dans les feuilles)
> >
> > Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
> > sservent juste a extraire le nom du fichier pour remplire des informations
> > dans les feuilles)
> >
> > J'espère que c'est claire.
> >
> > Donc voici la procédure et cela bloque à : With Application.FileSearch.
> >
> > Et comme erreur j'ai :
> >
> > Erreur d'éxécution '445'
> > Cet objet ne gère pas action.
> >
> >
> >
> > 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 = "*.MP3"
> > .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#2 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:úlse, Orientation:=xlTopToBottom
> > Range("A14").Select
> > End With
> > End If
> > Next i


Avatar
G''Claire
Re

Désolé, mais je viens de m'apercevoir que je ne poeux pas faire "Annuler",
lors de la fenêtre "Rechercher un dossier", cela me met l'erreur :

Erreur d'éxécution '52'
Nom ou numero de fichier incorrect.

Es-ce normale? lol

Merci encore, G'Claire




"G''Claire" a écrit :

MichDenis.

Donc je viens de tester cela.

J'ai modifier l'extension et aussi le départ du dossier car comme tout ce
passe sur un P-C en réseau, cela n'était plus sur C:

Cela fonctionne, j'ai remarqué lors de l'importation de la liste dans ma
feuille que :

1) Que même si je ne choisi pas un dossier du spectacle, que je fasse "OK",
ou que je choisisse un dossier prestation qui n'est pas fini (Qui ne contiens
pas le dossier "Musique pour le gala", cela importe le premier dossier avec
le dossier "Musique pour le gala", la chose que je crains est que si je
possède plusieurs dossier de ce nom que cela me les importe tous, ou pas le
bon.

Pour cela serait il possible de faire une validation du dossier du
spectacle, lors du choix et que si aucun dossier n'est choisi que cela me le
demande, et que si un dossier est choisi sans le dossier "Musique pour le
gala, cela me prévienne.


2) La liste n'était pas numéroter comme il faut de 1 a X lignes, es-ce
qaussi dù a Excel 2007, voici une impression écran (Je ne sais si on peu en
mettre des liens, me dire, sorry) du résultat de l'importation.

http://img30.imageshack.us/img30/1053/gestionballet.jpg

3) Je ne sais pas si cela est due a Excell 2007, mais a priori mon calcul
pour le temps en Minutes et seconde, n'est plus correct.

Voici ma procédure :

'G : La durée de la chanson --> (Données récupérées avec le poids du fichier)
'(39934/176400)1024#2 sec soit 3'52 sec
g = FileLen(fil)
g = g / 176400 / 60 / 60 / 24

Un truc si cela viens d'excel 2007 ou non.

Voici ma procédure pour effacer le planning (Mis dans le bouton "RAZ
Planning).

Private Sub CommandButton5_Click()
Dim Cell As Range
Dim reponse
reponse = MsgBox("Supprimer toutes les lignes ?", vbYesNo, "CONFIRMATION")
If reponse = vbYes _
Then
Range(Cells(14, 3), Cells(200, 13)).ClearContents
Range(Cells(15, 1), Cells(200, 13)).ClearContents
End If

End Sub

Merci beaucoup pour ton aide, G'Claire

"G''Claire" a écrit :

> MichDenis, le forum
>
> Je te remercie beaucoup, je test cela et te tiens au courant.
>
> Encore Merci pour ton aide, G'Claire
>
> "MichDenis" a écrit :
>
> > Oups, dans la procédure "Contenu_Répertoire"
> >
> > Tu dois adapter l'extension de fichier à cette ligne de code
> >
> > Fichier = Dir(Chemin & "*.xls")
> >
> > Tu modifies .xls pour .mp3 ou l'extension de fichier de ton choix
> >
> >
> >
> >
> > "MichDenis" a écrit dans le message de groupe de discussion :
> >
> > Tout ce qui suit dans un module standard.
> >
> > Tu appelles la procédure : Liste_Des_Fichiers
> >
> > La procédure "Traitement" n'a pas été retouchée
> >
> > 'Déclaration des variables dans le haut du module
> > Option Explicit
> > Dim Tblo()
> > Dim A As Long
> > '----------------------------------------
> > Sub Liste_Des_Fichiers()
> > Dim X
> > Dim Répertoire As String
> >
> > A = 0
> > Répertoire = ChoixDossierFichier & ""
> > If Répertoire <> "" Then
> > Call Contenu_Répertoire(Répertoire)
> > Call FoldersInFolder(Répertoire)
> > Call Traitement
> > End If
> > End Sub
> > '----------------------------------------
> > Sub FoldersInFolder(myFolderName As String)
> >
> > Dim FSO As Object
> > Dim myBaseFolder As Object
> > Dim myFolder As Object
> >
> > Set FSO = CreateObject("scripting.filesystemobject")
> > Set myBaseFolder = FSO.GetFolder(myFolderName)
> > For Each myFolder In myBaseFolder.SubFolders
> > Call Contenu_Répertoire(myFolder.Path & "")
> > Call FoldersInFolder(myFolder.Path)
> > Next myFolder
> >
> > End Sub
> > '----------------------------------------
> > Sub Contenu_Répertoire(Chemin As String)
> > Dim Fichier As String
> > Fichier = Dir(Chemin & "*.xls")
> > Do While Fichier <> ""
> > A = A + 1
> > ReDim Preserve Tblo(A)
> > Tblo(A) = Chemin & Fichier
> > Fichier = Dir()
> > Loop
> > End Sub
> > '----------------------------------------
> > Function ChoixDossierFichier$(Optional Racine)
> > Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$
> >
> > If IsMissing(Racine) Then Racine = "c:"
> > Msg = "Choisissez le fichier à ouvrir :"
> > Set objShell = CreateObject("Shell.Application")
> > Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
> > On Error Resume Next
> > Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
> > ChoixDossierFichier = Chemin
> > End Function
> > '----------------------------------------
> > Sub Traitement()
> > 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
> > Dim C As String, D As String, E As String, F As String
> > Dim G, f1, Ligne As Long, Choix ', fso, dossier
> >
> > For I = 1 To UBound(Tblo)
> > Fil = Tblo(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#2 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:úlse, Orientation:=xlTopToBottom
> > Range("A14").Select
> > End With
> > End If
> > Next I
> > End Sub
> > '----------------------------------------
> >
> >
> >
> >
> >
> > "G''Claire" a écrit dans le message de groupe de
> > discussion :
> > MichDenis, Le forum.
> >
> > Merci pour ta réponse.
> > Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
> > remédier a cela? Une autre fonction?
> >
> > Merci beaucoup, G'Claire
> >
> > "MichDenis" a écrit :
> >
> > > Bonjour G Claire,
> > >
> > > Sous Excel 2003, tout semble normal, ta procédure s'exécute.
> > > Sous Excel 2007, la méthode FileSearch n'existe plus.
> > >
> > >
> > >
> > >
> > >
> > > "G''Claire" a écrit dans le message de groupe de
> > > discussion :
> > > Salut a toute et tous.
> > >
> > > Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
> > > et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.
> > >
> > > Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
> > > feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
> > > procédure de vérification des fichiers audio dont le nom me sert a remplire
> > > mes feuilles.
> > >
> > > Donc voici comment je manipule cela .
> > >
> > > 1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"
> > >
> > > 2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
> > > années en cours.
> > >
> > > 3) La je sélectione le dossier de ma prestation (Chaque dossier de
> > > prestation est constituer de la même manière):
> > >
> > > Dans ce dossier il y a :
> > >
> > > a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
> > > b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
> > > procédure.
> > >
> > > Et dans ce dossier il y a X parties de la prestation (Cela me sert a
> > > remplire des informations dans les feuilles):
> > >
> > > Partie 1
> > > Partie 2
> > > Partie 3
> > >
> > >
> > > Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
> > > sert a remplire des informations dans les feuilles)
> > >
> > > Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
> > > sservent juste a extraire le nom du fichier pour remplire des informations
> > > dans les feuilles)
> > >
> > > J'espère que c'est claire.
> > >
> > > Donc voici la procédure et cela bloque à : With Application.FileSearch.
> > >
> > > Et comme erreur j'ai :
> > >
> > > Erreur d'éxécution '445'
> > > Cet objet ne gère pas action.
> > >
> > >
> > >
> > > 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")


Avatar
MichDenis
J'ai seulement modifier le début comme ceci :


Option Explicit
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
Dim Tblo()
Dim A As Long
'---------------------------------------------
Public Sub ChDirNet(szPath As String)
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'---------------------------------------------
Sub Liste_Des_Fichiers()
Dim X
Dim Répertoire As String

Répertoire = "c:UsersDMDocuments"
ChDirNet Répertoire
A = 0
Répertoire = ChoixDossierFichier & ""
If Répertoire <> "" Then
Call Contenu_Répertoire(Répertoire)
Call FoldersInFolder(Répertoire)
Call Traitement
End If

End Sub
'------------------------------------------



"G''Claire" a écrit dans le message de groupe de
discussion :
Re

Désolé, mais je viens de m'apercevoir que je ne poeux pas faire "Annuler",
lors de la fenêtre "Rechercher un dossier", cela me met l'erreur :

Erreur d'éxécution '52'
Nom ou numero de fichier incorrect.

Es-ce normale? lol

Merci encore, G'Claire




"G''Claire" a écrit :

MichDenis.

Donc je viens de tester cela.

J'ai modifier l'extension et aussi le départ du dossier car comme tout ce
passe sur un P-C en réseau, cela n'était plus sur C:

Cela fonctionne, j'ai remarqué lors de l'importation de la liste dans ma
feuille que :

1) Que même si je ne choisi pas un dossier du spectacle, que je fasse "OK",
ou que je choisisse un dossier prestation qui n'est pas fini (Qui ne contiens
pas le dossier "Musique pour le gala", cela importe le premier dossier avec
le dossier "Musique pour le gala", la chose que je crains est que si je
possède plusieurs dossier de ce nom que cela me les importe tous, ou pas le
bon.

Pour cela serait il possible de faire une validation du dossier du
spectacle, lors du choix et que si aucun dossier n'est choisi que cela me le
demande, et que si un dossier est choisi sans le dossier "Musique pour le
gala, cela me prévienne.


2) La liste n'était pas numéroter comme il faut de 1 a X lignes, es-ce
qaussi dù a Excel 2007, voici une impression écran (Je ne sais si on peu en
mettre des liens, me dire, sorry) du résultat de l'importation.

http://img30.imageshack.us/img30/1053/gestionballet.jpg

3) Je ne sais pas si cela est due a Excell 2007, mais a priori mon calcul
pour le temps en Minutes et seconde, n'est plus correct.

Voici ma procédure :

'G : La durée de la chanson --> (Données récupérées avec le poids du fichier)
'(39934/176400)1024#2 sec soit 3'52 sec
g = FileLen(fil)
g = g / 176400 / 60 / 60 / 24

Un truc si cela viens d'excel 2007 ou non.

Voici ma procédure pour effacer le planning (Mis dans le bouton "RAZ
Planning).

Private Sub CommandButton5_Click()
Dim Cell As Range
Dim reponse
reponse = MsgBox("Supprimer toutes les lignes ?", vbYesNo, "CONFIRMATION")
If reponse = vbYes _
Then
Range(Cells(14, 3), Cells(200, 13)).ClearContents
Range(Cells(15, 1), Cells(200, 13)).ClearContents
End If

End Sub

Merci beaucoup pour ton aide, G'Claire

"G''Claire" a écrit :

> MichDenis, le forum
>
> Je te remercie beaucoup, je test cela et te tiens au courant.
>
> Encore Merci pour ton aide, G'Claire
>
> "MichDenis" a écrit :
>
> > Oups, dans la procédure "Contenu_Répertoire"
> >
> > Tu dois adapter l'extension de fichier à cette ligne de code
> >
> > Fichier = Dir(Chemin & "*.xls")
> >
> > Tu modifies .xls pour .mp3 ou l'extension de fichier de ton choix
> >
> >
> >
> >
> > "MichDenis" a écrit dans le message de groupe de discussion
> > :
> >
> > Tout ce qui suit dans un module standard.
> >
> > Tu appelles la procédure : Liste_Des_Fichiers
> >
> > La procédure "Traitement" n'a pas été retouchée
> >
> > 'Déclaration des variables dans le haut du module
> > Option Explicit
> > Dim Tblo()
> > Dim A As Long
> > '----------------------------------------
> > Sub Liste_Des_Fichiers()
> > Dim X
> > Dim Répertoire As String
> >
> > A = 0
> > Répertoire = ChoixDossierFichier & ""
> > If Répertoire <> "" Then
> > Call Contenu_Répertoire(Répertoire)
> > Call FoldersInFolder(Répertoire)
> > Call Traitement
> > End If
> > End Sub
> > '----------------------------------------
> > Sub FoldersInFolder(myFolderName As String)
> >
> > Dim FSO As Object
> > Dim myBaseFolder As Object
> > Dim myFolder As Object
> >
> > Set FSO = CreateObject("scripting.filesystemobject")
> > Set myBaseFolder = FSO.GetFolder(myFolderName)
> > For Each myFolder In myBaseFolder.SubFolders
> > Call Contenu_Répertoire(myFolder.Path & "")
> > Call FoldersInFolder(myFolder.Path)
> > Next myFolder
> >
> > End Sub
> > '----------------------------------------
> > Sub Contenu_Répertoire(Chemin As String)
> > Dim Fichier As String
> > Fichier = Dir(Chemin & "*.xls")
> > Do While Fichier <> ""
> > A = A + 1
> > ReDim Preserve Tblo(A)
> > Tblo(A) = Chemin & Fichier
> > Fichier = Dir()
> > Loop
> > End Sub
> > '----------------------------------------
> > Function ChoixDossierFichier$(Optional Racine)
> > Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$
> >
> > If IsMissing(Racine) Then Racine = "c:"
> > Msg = "Choisissez le fichier à ouvrir :"
> > Set objShell = CreateObject("Shell.Application")
> > Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
> > On Error Resume Next
> > Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
> > ChoixDossierFichier = Chemin
> > End Function
> > '----------------------------------------
> > Sub Traitement()
> > 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
> > Dim C As String, D As String, E As String, F As String
> > Dim G, f1, Ligne As Long, Choix ', fso, dossier
> >
> > For I = 1 To UBound(Tblo)
> > Fil = Tblo(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#2 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:úlse, Orientation:=xlTopToBottom
> > Range("A14").Select
> > End With
> > End If
> > Next I
> > End Sub
> > '----------------------------------------
> >
> >
> >
> >
> >
> > "G''Claire" a écrit dans le message de groupe de
> > discussion :
> > MichDenis, Le forum.
> >
> > Merci pour ta réponse.
> > Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
> > remédier a cela? Une autre fonction?
> >
> > Merci beaucoup, G'Claire
> >
> > "MichDenis" a écrit :
> >
> > > Bonjour G Claire,
> > >
> > > Sous Excel 2003, tout semble normal, ta procédure s'exécute.
> > > Sous Excel 2007, la méthode FileSearch n'existe plus.
> > >
> > >
> > >
> > >
> > >
> > > "G''Claire" a écrit dans le message de groupe
> > > de
> > > discussion :
> > > Salut a toute et tous.
> > >
> > > Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
> > > et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.
> > >
> > > Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
> > > feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
> > > procédure de vérification des fichiers audio dont le nom me sert a remplire
> > > mes feuilles.
> > >
> > > Donc voici comment je manipule cela .
> > >
> > > 1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"
> > >
> > > 2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
> > > années en cours.
> > >
> > > 3) La je sélectione le dossier de ma prestation (Chaque dossier de
> > > prestation est constituer de la même manière):
> > >
> > > Dans ce dossier il y a :
> > >
> > > a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
> > > b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
> > > procédure.
> > >
> > > Et dans ce dossier il y a X parties de la prestation (Cela me sert a
> > > remplire des informations dans les feuilles):
> > >
> > > Partie 1
> > > Partie 2
> > > Partie 3
> > >
> > >
> > > Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
> > > sert a remplire des informations dans les feuilles)
> > >
> > > Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
> > > sservent juste a extraire le nom du fichier pour remplire des informations
> > > dans les feuilles)
> > >
> > > J'espère que c'est claire.
> > >
> > > Donc voici la procédure et cela bloque à : With Application.FileSearch.
> > >
> > > Et comme erreur j'ai :
> > >
> > > Erreur d'éxécution '445'
> > > Cet objet ne gère pas action.
> > >
> > >
> > >
> > > 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")


Avatar
MichDenis
Pour plus de sécurité, tu peux ajouter ceci
dans la procédure "Liste_Des_Fichiers" afin
de t'assurer que le répertoire retenu existe
réellement.


Répertoire = "c:denis"
If Dir(Répertoire, vbDirectory) = "" Then
MsgBox "Répertoire : " & Répertoire & _
" inexistant." & vbCrLf & "Opération annulée."
Exit Sub
End If




"MichDenis" a écrit dans le message de groupe de discussion :

J'ai seulement modifier le début comme ceci :


Option Explicit
Private Declare Function SetCurrentDirectoryA Lib _
"kernel32" (ByVal lpPathName As String) As Long
Dim Tblo()
Dim A As Long
'---------------------------------------------
Public Sub ChDirNet(szPath As String)
Dim lReturn As Long
lReturn = SetCurrentDirectoryA(szPath)
If lReturn = 0 Then Err.Raise vbObjectError + 1, "Error setting path."
End Sub
'---------------------------------------------
Sub Liste_Des_Fichiers()
Dim X
Dim Répertoire As String

Répertoire = "c:UsersDMDocuments"
ChDirNet Répertoire
A = 0
Répertoire = ChoixDossierFichier & ""
If Répertoire <> "" Then
Call Contenu_Répertoire(Répertoire)
Call FoldersInFolder(Répertoire)
Call Traitement
End If

End Sub
'------------------------------------------



"G''Claire" a écrit dans le message de groupe de
discussion :
Re

Désolé, mais je viens de m'apercevoir que je ne poeux pas faire "Annuler",
lors de la fenêtre "Rechercher un dossier", cela me met l'erreur :

Erreur d'éxécution '52'
Nom ou numero de fichier incorrect.

Es-ce normale? lol

Merci encore, G'Claire




"G''Claire" a écrit :

MichDenis.

Donc je viens de tester cela.

J'ai modifier l'extension et aussi le départ du dossier car comme tout ce
passe sur un P-C en réseau, cela n'était plus sur C:

Cela fonctionne, j'ai remarqué lors de l'importation de la liste dans ma
feuille que :

1) Que même si je ne choisi pas un dossier du spectacle, que je fasse "OK",
ou que je choisisse un dossier prestation qui n'est pas fini (Qui ne contiens
pas le dossier "Musique pour le gala", cela importe le premier dossier avec
le dossier "Musique pour le gala", la chose que je crains est que si je
possède plusieurs dossier de ce nom que cela me les importe tous, ou pas le
bon.

Pour cela serait il possible de faire une validation du dossier du
spectacle, lors du choix et que si aucun dossier n'est choisi que cela me le
demande, et que si un dossier est choisi sans le dossier "Musique pour le
gala, cela me prévienne.


2) La liste n'était pas numéroter comme il faut de 1 a X lignes, es-ce
qaussi dù a Excel 2007, voici une impression écran (Je ne sais si on peu en
mettre des liens, me dire, sorry) du résultat de l'importation.

http://img30.imageshack.us/img30/1053/gestionballet.jpg

3) Je ne sais pas si cela est due a Excell 2007, mais a priori mon calcul
pour le temps en Minutes et seconde, n'est plus correct.

Voici ma procédure :

'G : La durée de la chanson --> (Données récupérées avec le poids du fichier)
'(39934/176400)1024#2 sec soit 3'52 sec
g = FileLen(fil)
g = g / 176400 / 60 / 60 / 24

Un truc si cela viens d'excel 2007 ou non.

Voici ma procédure pour effacer le planning (Mis dans le bouton "RAZ
Planning).

Private Sub CommandButton5_Click()
Dim Cell As Range
Dim reponse
reponse = MsgBox("Supprimer toutes les lignes ?", vbYesNo, "CONFIRMATION")
If reponse = vbYes _
Then
Range(Cells(14, 3), Cells(200, 13)).ClearContents
Range(Cells(15, 1), Cells(200, 13)).ClearContents
End If

End Sub

Merci beaucoup pour ton aide, G'Claire

"G''Claire" a écrit :

> MichDenis, le forum
>
> Je te remercie beaucoup, je test cela et te tiens au courant.
>
> Encore Merci pour ton aide, G'Claire
>
> "MichDenis" a écrit :
>
> > Oups, dans la procédure "Contenu_Répertoire"
> >
> > Tu dois adapter l'extension de fichier à cette ligne de code
> >
> > Fichier = Dir(Chemin & "*.xls")
> >
> > Tu modifies .xls pour .mp3 ou l'extension de fichier de ton choix
> >
> >
> >
> >
> > "MichDenis" a écrit dans le message de groupe de discussion
> > :
> >
> > Tout ce qui suit dans un module standard.
> >
> > Tu appelles la procédure : Liste_Des_Fichiers
> >
> > La procédure "Traitement" n'a pas été retouchée
> >
> > 'Déclaration des variables dans le haut du module
> > Option Explicit
> > Dim Tblo()
> > Dim A As Long
> > '----------------------------------------
> > Sub Liste_Des_Fichiers()
> > Dim X
> > Dim Répertoire As String
> >
> > A = 0
> > Répertoire = ChoixDossierFichier & ""
> > If Répertoire <> "" Then
> > Call Contenu_Répertoire(Répertoire)
> > Call FoldersInFolder(Répertoire)
> > Call Traitement
> > End If
> > End Sub
> > '----------------------------------------
> > Sub FoldersInFolder(myFolderName As String)
> >
> > Dim FSO As Object
> > Dim myBaseFolder As Object
> > Dim myFolder As Object
> >
> > Set FSO = CreateObject("scripting.filesystemobject")
> > Set myBaseFolder = FSO.GetFolder(myFolderName)
> > For Each myFolder In myBaseFolder.SubFolders
> > Call Contenu_Répertoire(myFolder.Path & "")
> > Call FoldersInFolder(myFolder.Path)
> > Next myFolder
> >
> > End Sub
> > '----------------------------------------
> > Sub Contenu_Répertoire(Chemin As String)
> > Dim Fichier As String
> > Fichier = Dir(Chemin & "*.xls")
> > Do While Fichier <> ""
> > A = A + 1
> > ReDim Preserve Tblo(A)
> > Tblo(A) = Chemin & Fichier
> > Fichier = Dir()
> > Loop
> > End Sub
> > '----------------------------------------
> > Function ChoixDossierFichier$(Optional Racine)
> > Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$
> >
> > If IsMissing(Racine) Then Racine = "c:"
> > Msg = "Choisissez le fichier à ouvrir :"
> > Set objShell = CreateObject("Shell.Application")
> > Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
> > On Error Resume Next
> > Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
> > ChoixDossierFichier = Chemin
> > End Function
> > '----------------------------------------
> > Sub Traitement()
> > 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
> > Dim C As String, D As String, E As String, F As String
> > Dim G, f1, Ligne As Long, Choix ', fso, dossier
> >
> > For I = 1 To UBound(Tblo)
> > Fil = Tblo(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#2 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:úlse, Orientation:=xlTopToBottom
> > Range("A14").Select
> > End With
> > End If
> > Next I
> > End Sub
> > '----------------------------------------
> >
> >
> >
> >
> >
> > "G''Claire" a écrit dans le message de groupe de
> > discussion :
> > MichDenis, Le forum.
> >
> > Merci pour ta réponse.
> > Et oui, j'ai bien Excel 2007, je ne savais pas cela, y a t'il un moyen de
> > remédier a cela? Une autre fonction?
> >
> > Merci beaucoup, G'Claire
> >
> > "MichDenis" a écrit :
> >
> > > Bonjour G Claire,
> > >
> > > Sous Excel 2003, tout semble normal, ta procédure s'exécute.
> > > Sous Excel 2007, la méthode FileSearch n'existe plus.
> > >
> > >
> > >
> > >
> > >
> > > "G''Claire" a écrit dans le message de groupe
> > > de
> > > discussion :
> > > Salut a toute et tous.
> > >
> > > Je ne sais si vous allé pouvoire m'aider, mais je suis vraiment bien embété
> > > et je n'arrive pas a me dépatouiller d'un truc qui fonctionné.
> > >
> > > Cela fait prés de 5 Ans que j'utilise un fichier EXCEL pour générer des
> > > feuilles, pour des spéctacles de danse ou autres, et la cela bloque sur la
> > > procédure de vérification des fichiers audio dont le nom me sert a remplire
> > > mes feuilles.
> > >
> > > Donc voici comment je manipule cela .
> > >
> > > 1) J'ai un bouton qui lance la procédure "RecupDonneesBallets"
> > >
> > > 2) Cela m'ouvre une fenetre de sélection du dossier principale : Spectacle
> > > années en cours.
> > >
> > > 3) La je sélectione le dossier de ma prestation (Chaque dossier de
> > > prestation est constituer de la même manière):
> > >
> > > Dans ce dossier il y a :
> > >
> > > a) Tous les dosseir par professeurs avec leur musques dedans au format MP3
> > > b) Un dossier "Musiques pour le gala" qui me sert pour la suite de la
> > > procédure.
> > >
> > > Et dans ce dossier il y a X parties de la prestation (Cela me sert a
> > > remplire des informations dans les feuilles):
> > >
> > > Partie 1
> > > Partie 2
> > > Partie 3
> > >
> > >
> > > Et dans chaque partie il y a le nom de chaque professeurs de danse (Cela me
> > > sert a remplire des informations dans les feuilles)
> > >
> > > Et dans chaque dossiers il y a des fichier musiquaux, donc ces fichier me
> > > sservent juste a extraire le nom du fichier pour remplire des informations
> > > dans les feuilles)
> > >
> > > J'espère que c'est claire.
> > >
> > > Donc voici la procédure et cela bloque à : With Application.FileSearch.
> > >
> > > Et comme erreur j'ai :
> > >
> > > Erreur d'éxécution '445'
> > > Cet objet ne gère pas action.
> > >
> > >
> > >
> > > 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")


Avatar
MichDenis
Ce pourquoi tu as des difficultés à te retrouver sur le répertoire mentionné,
c'est que la procédure appelante "Liste_Des_Fichiers" utilise une variable de type String
pour contenir le chemin du répertoire que tu désires. Ce faisant, il faut modifier
la ligne de déclaration de la procédure suivante comme suit :

Function ChoixDossierFichier$(Optional ByVal Racine)

La seule chose qui a été ajoutée est "ByVal". Cela permet
d'utiliser une variable de type string dans la procédure
"Liste_Des_Fichiers" .

Cela te permettrait de conserver le début des procédures comme ceci:

'Déclaration des variables dans le haut du module
Option Explicit
Dim Tblo()
Dim A As Long
'----------------------------------------
Sub Liste_Des_Fichiers()
Dim X
Dim Répertoire As String
Répertoire = "C:Chemin_De_Ton_Choix"
A = 0
Répertoire = ChoixDossierFichier(Répertoire) & ""
If Répertoire <> "" Then
Call Contenu_Répertoire(Répertoire)
Call FoldersInFolder(Répertoire)
Call Traitement
End If
End Sub
'----------------------------------------

ET modifier la fonction comme ceci :

Function ChoixDossierFichier$(Optional ByVal Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$

If IsMissing(Racine) Then Racine = "c:"
Msg = "Choisissez le fichier à ouvrir :"
Set objShell = CreateObject("Shell.Application")
Set objFile = objShell.BrowseForFolder(&H0&, Msg, &H4000, Racine)
On Error Resume Next
Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
ChoixDossierFichier = Chemin
End Function
1 2