Probleme de code du a migration vers EXCEL 2007

GClaire

XLDnaute Occasionnel
Salut toute la communauté.

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

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

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

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

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

Donc il y aurai :

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

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

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

Code:
Option Explicit

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

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

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

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

End Sub


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

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

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

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

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

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

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

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

Brigitte

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

Bonsoir,

Moi je passe au moins pour te faire coucou... Tu nous manques, tu sais...
Bisous à toi, tes deux petits "monstres" et ta petite femme... J'espère que tout va bien.
 

gilbert_RGI

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

Bonjour,

voilà une aide pour retrouver l'ancien Filesearch
certes c'est un complément mais qui peut rendre service ;)

Salutations

Gilbert_RGI

Salut toute la communauté.

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

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

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

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

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

Donc il y aurai :

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

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

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

Code:
Option Explicit

Function ChoixDossierFichier(Racine, Optional SelType As Byte = 0)
'affiche la boite de dialogue Windows de recherche d'un dossier
'ou d'un fichier     '(fs) d'après un code [url=http://www.vbfrance.com]VBFrance.com | Visual Basic, VB6, VB.NET, VB 2005, VB CodeS SourceS | 16130 sources VB, VB.NET, ASP.NET VBA, ASP, VBScript, VB Scripts, Source, Code, Programmation, Cours , Tutorial, Tutoriaux etc...[/url]
Dim objShell, objFolder, Chemin, SecuriteSlash, FlagChoix&, Msg$
If SelType = 0 Then
    FlagChoix = &H1&: Msg = "Choisissez un dossier :"
Else
    FlagChoix = &H4000&: Msg = "Choisissez un fichier :"
End If

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

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

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

End Sub


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

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

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

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

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

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

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

Je vous remercie par avance pour toute votre aide, salutations G'Claire
 

GClaire

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

Salut

Brigitte, merci, cela me touche beaucoup, je sais c'est un peu ingrat de venir comme cela pour demander de l'aide alors que je met jamais de post, ne serais-ce que pour des nouvelles, je m'en excuse.

Donc toute ma petite famille va bien, cela grandit trop vite.
Le plus grand va rentrer au CP la rentrée prochaine et le petit a l'école pour la petite section.

Depuis tout ce temps, ils m'ont appris beaucoup :

A donner
Recevoir aussi car qu'es-ce qu'ils nous donnent, de l'amour et des lecons de savoir vivre
A apprendre a être patient.
De la patience

Mais que de bonheur partagé.

Il est vrai que j'ai un peu arrété de faire du VBA a gogo, car cela me prenais beaucoup de temps, car ne métrisant pas assez.

Donc voici un peu pour les nouvelles, j'essayerai de faire un effort et de venir de temps en temps.

Merci encore et gros bisoux, G'Claire
 

GClaire

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

Salut tout le monde.

J'ai regardé un peu cela, et je nage, et oui plusieur année sans refaire du code, changement de version, je suis pommé.

Je me suis permis de mettre un post sur le site de VeriTi, car là aussi des personnes m'ont bien aidé, je les remercie encore d'ailleurs, car avec ce fichier j'ai fait un bon bout de chemin et il me dépanne plus que bien.

Merci a vous, G'Claire
 
Dernière édition:

GClaire

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

Salut a toutes et tous.

Je vous met en fichier la structure des dossiers si cela peut aider.

Donc le fichier principale est sur un P-C en réseau : O:\Spectacle années en cours

Dans ce dossier il y a tous les spectacles que j'ai dans l'année.

Aprés chaque dossier est structuré de la même manière, les seuls choses qui changent sont le nombre de partie, le nombre de professeurs et les extension des musiques.

Les musiques peuvent sous des format comme mp3 ou wav elles sont dans les derniers dossiers "Nom des prof de 1 à x profs"

Voili voilou, si cela donne des infos pour m'aider.

Salutations, G'Claire
 

Pièces jointes

  • Spectacle années en cours.zip
    6.1 KB · Affichages: 32

GClaire

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

Re

Suite a l'aide d'un internaut voila ou j'en suis

Donc, la recherche se fait bien.
L'importation aussi.

Voici le code modifié :

Code:
'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 = "O:\Spectacle années en cours"
A = 0
Répertoire = ChoixDossierFichier(Répertoire) & "\"
If Répertoire <> "" Then
    Call Contenu_Répertoire(Répertoire)
    Call FoldersInFolder(Répertoire)
    Call Traitement
    Else
    Exit Sub
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 & "*.wav")
    Do While Fichier <> ""
        A = A + 1
        ReDim Preserve Tblo(A)
        Tblo(A) = Chemin & Fichier
        Fichier = Dir()
    Loop
End Sub
'----------------------------------------
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

'----------------------------------------
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=232 sec soit 3'52 sec
      G = FileLen(Fil)
      G = G / 176400 / 60 / 60 / 24
'NUMEROTATION DES FICHIERS
With Sheets("Tool_Planning")
        Application.ScreenUpdating = False
        .Range("C4") = Organisateurs
        Ligne = .Cells(.Cells.Rows.Count, 1).End(xlUp).Row + 1
        .Cells(Ligne, "A") = A
        .Cells(Ligne, "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 Sub
'----------------------------------------

Par contre si je fais annuler, pendant la demande, cela me donne une erreur :

Erreur '52'
Nom ou numéro de fichier incorrect

Et le débuggeur s'arrète sur partie de code.

Code:
'----------------------------------------
Sub Contenu_Répertoire(Chemin As String)
Dim Fichier As String
Fichier = Dir(Chemin & "*.wav")
    Do While Fichier <> ""

Sur ce code :
Code:
Fichier = Dir(Chemin & "*.wav")

Comme je puis y remédier?


Pour ce qui concerne le reste de ma demande qui n'étais pas trés claire, et je vais essayer d'être plus explicite.

Donc jusqu'a présent je n'avait que des fichier en wave, car s'est moi qui faisait les montage audio, donc la recherche se faisait, avec ce code :

Code:
Fichier = Dir(Chemin & "*.wav")

Et le calcul de temps avec celui- la :

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

Maintenant que les gens m'envoie leur fichier et pour que ceux si soient moins lourd pour l'envoie, ils mes les envoient en MP3.

Donc ce que j'aimerais c'est lors du choix que les deux soit possible et que automatique le calcule se fassent par rapport aux extentions.

Sachant qu'ils peut y avoir les deux.

Je vous remercie par avance beaucoup, salutations, G'Claire
 

GClaire

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

Salut

Quelques impression écran pour essayer d'être plus claire.

Donc ma demande pour le 1 er cas :

Par contre si je fais annuler, pendant la demande, cela me donne une erreur :

Erreur '52'
Nom ou numéro de fichier incorrect

Et le débuggeur s'arrète sur partie de code.


Code: Tout sélectionner
'----------------------------------------
Sub Contenu_Répertoire(Chemin As String)
Dim Fichier As String
Fichier = Dir(Chemin & "*.wav")
Do While Fichier <> ""


Sur ce code :
Code: Tout sélectionner
Fichier = Dir(Chemin & "*.wav")

Comme je puis y remédier?


Sur ce code cela ouvre l'explorateur windows, et ouvre le dossier du chemin mis dans le code.

Normalement a ce stade, je devrais fair une selection, mais si je fais annuler, j'ai le message d'erreur cité ci dessus.

Voici les impressions d'écran :

Ce lien n'existe plus

Ce lien n'existe plus

Ce lien n'existe plus

Ce lien n'existe plus

Pour ma deuxième demande :

L'appli a été faite pour analyser les fichier audio présent dans les dossiers concerné, de manière a réceuillire les infos a mettre dans les fiches techniques.

Donc pour le temps du moreceau, Il s'agit de remplir une cellule avec la durée du morceau en colonne G, de cette feuille (photo)

Avant comme je faisait les montages audio, je faisait tout sous un format wav et la formule était basé sur le poids du fichier, mais maintenant je peux avoir du MP3, voir du wma(Burk).

Se qu'il fait que ma formule ne fonctionne plus.

Donc ce que j'aimerais c'est pourvoir faire la même chose sans me poser de question de l'utilisation d'un format ou d'un autre.

Merci beaucoup.

J'espère que s'est plus claire, salutations, G'Claire
 

gilbert_RGI

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

Bonjour

regarder ce que vaut fichier

ce code d'erreur est symptomatique d'une erreur de
chemin.....
verifie sur le poste en cause que le nom de chemin
existe tel qu'il est défini dans la macro.

pour modifier Dir employer ChDir

Cdlt

Gilbert_RGI
 
Dernière édition:

GClaire

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

Salut,

J'avais regardé et je cherché, en faite pourquoi il est vide : fichier =""

et un truc qui m'a chagriné, c'est que le contenue de la variable "Chemin", pointe sur un dossier de Symantec?



Merci, G'Claire
 

GClaire

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

Salut a vous

Donc, il y aurais peut être une piste.

Dans ce code :

Code:
'----------------------------------------
Sub Liste_Des_Fichiers()
Dim X
Dim Répertoire As String
Répertoire = "O:\Spectacle années en cours"
A = 0
Répertoire = ChoixDossierFichier(Répertoire) & "\"
If Répertoire <> "" Then
    Call Contenu_Répertoire(Répertoire)
    Call FoldersInFolder(Répertoire)
    Call Traitement
    Else
    Exit Sub
End If
End Sub
'----------------------------------------

La : If Répertoire <> "" Then

Cela dit Si "Répertoire" est différant de vide ?

Et bien il ne peut être vide sachant que :

Répertoire = ChoixDossierFichier(Répertoire) & "\"

Il est rempli par "\"

Donc j'ai fait le test en mettant

If Répertoire <> "\" Then


Mais es-ce vraiment la solution?????

Je vais de mon coté essayer de voir si vous avez plus d'infos, merci par avance, G'Claire
 

gilbert_RGI

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

Bonjour

essaies ce code à mettre dans un module

Code:
Sub Essai()
Dim Chemin As Variant


Chemin = "O:\Spectacle années en cours"



choix = ChoixDossierFichier(Chemin)
If choix = "" Then MsgBox "aucun fichier choisi" Else MsgBox choix
End Sub
'------------------------------------------
Function ChoixDossierFichier$(Optional Racine)
Dim objShell, objFile, Chemin, SecuriteSlash, FlagChoix&, Msg$


  If IsMissing(Racine) Then Racine = CurDir
  Msg = "Choisissez le fichier à ouvrir :"
  Set objShell = CreateObject("Shell.Application")
  
      'Cette ligne affiche répertoire et fichiers du répertoire.
    Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H4000, Chemin)

    'Cette Ligne = pour afficher seulement les répertoires
    'Set objFolder = objShell.BrowseForFolder(&H0&, Msg, &H1&, Chemin)


  On Error Resume Next
  Chemin = objFile.ParentFolder.ParseName(objFile.Title).Path & ""
  ChoixDossierFichier = Chemin


End Function
 

Discussions similaires

Réponses
1
Affichages
269
Compte Supprimé 979
C

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T