GNT sans publicité, site mobile, fonctionnalitées exclusives...

Aide pour me dépanner sur une procédure

Le
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#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
Lire les 19 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 4
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #19421291
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" 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
G''Claire
Le #19421931
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" 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




MichDenis
Le #19424501
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" 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" 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




MichDenis
Le #19424651
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"
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" 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" 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




G''Claire
Le #19424771
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"
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" 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" > 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
>


Publicité
Suivre les réponses
Poster une réponse
Anonyme