Bonjour Gaspareau,
C'est faisable ou je rêve ??? Les 2 !!!
C'est faisaable ... le contraire serait surprenant
tu rêves : Si tu crois que je vais fouiller sur Excelabo pour tenter de
trouver la procédure à Hervé !
Salutations!
"Gaspareau" a écrit dans le message de
news:
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = False 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To I)
Tbl(I) = Dir(.Item(I))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl)
.AddItem Tbl(I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
.Visible = True
End With
Set Cmb = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Tag & NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Tag & NomClasseur
End If
End With
End Sub
Bonjour Gaspareau,
C'est faisable ou je rêve ??? Les 2 !!!
C'est faisaable ... le contraire serait surprenant
tu rêves : Si tu crois que je vais fouiller sur Excelabo pour tenter de
trouver la procédure à Hervé !
Salutations!
"Gaspareau" <123@234> a écrit dans le message de
news:OipOKgVsEHA.220@TK2MSFTNGP15.phx.gbl...
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = False 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To I)
Tbl(I) = Dir(.Item(I))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl)
.AddItem Tbl(I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
.Visible = True
End With
Set Cmb = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Tag & NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Tag & NomClasseur
End If
End With
End Sub
Bonjour Gaspareau,
C'est faisable ou je rêve ??? Les 2 !!!
C'est faisaable ... le contraire serait surprenant
tu rêves : Si tu crois que je vais fouiller sur Excelabo pour tenter de
trouver la procédure à Hervé !
Salutations!
"Gaspareau" a écrit dans le message de
news:
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = False 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To I)
Tbl(I) = Dir(.Item(I))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl)
.AddItem Tbl(I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
.Visible = True
End With
Set Cmb = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Tag & NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Tag & NomClasseur
End If
End With
End Sub
Bonjour Gaspareau,
C'est faisable ou je rêve ??? Les 2 !!!
C'est faisaable ... le contraire serait surprenant
tu rêves : Si tu crois que je vais fouiller sur Excelabo pour tenter de
trouver la procédure à Hervé !
Salutations!
"Gaspareau" a écrit dans le message de
news:
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = False 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To I)
Tbl(I) = Dir(.Item(I))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl)
.AddItem Tbl(I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
.Visible = True
End With
Set Cmb = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Tag & NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Tag & NomClasseur
End If
End With
End Sub
Bonjour Gaspareau,
C'est faisable ou je rêve ??? Les 2 !!!
C'est faisaable ... le contraire serait surprenant
tu rêves : Si tu crois que je vais fouiller sur Excelabo pour tenter de
trouver la procédure à Hervé !
Salutations!
"Gaspareau" <123@234> a écrit dans le message de
news:OipOKgVsEHA.220@TK2MSFTNGP15.phx.gbl...
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = False 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To I)
Tbl(I) = Dir(.Item(I))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl)
.AddItem Tbl(I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
.Visible = True
End With
Set Cmb = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Tag & NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Tag & NomClasseur
End If
End With
End Sub
Bonjour Gaspareau,
C'est faisable ou je rêve ??? Les 2 !!!
C'est faisaable ... le contraire serait surprenant
tu rêves : Si tu crois que je vais fouiller sur Excelabo pour tenter de
trouver la procédure à Hervé !
Salutations!
"Gaspareau" a écrit dans le message de
news:
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = False 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To I)
Tbl(I) = Dir(.Item(I))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl)
.AddItem Tbl(I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
.Visible = True
End With
Set Cmb = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Tag & NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Tag & NomClasseur
End If
End With
End Sub
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Bonjour
En ajoutant une liste non visible qui contient le chemin.
Alain CROS
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim CmbHiden As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du
dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = True 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To 2, 1 To I)
Tbl(2, I) = Dir(.Item(I))
Tbl(1, I) = Left$(.Item(I), Len(.Item(I)) - Len(Tbl(2,
I)))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
Set CmbHiden = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl, 2)
.AddItem Tbl(2, I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
With CmbHiden
For I = 1 To UBound(Tbl, 2)
.AddItem Tbl(1, I)
Next I
.Tag = "Hide"
.Visible = False
End With
.Visible = True
End With
Set Cmb = Nothing
Set CmbHiden = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Parent.FindControl(, , "Hide").List(.ListIndex) &
NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Parent.FindControl(, ,
"Hide").List(.ListIndex) & NomClasseur
End If
End With
End Sub
Sub SupBarre()
On Error Resume Next
Application.CommandBars("MaBarre").Delete
End Sub
"Gaspareau" a écrit dans le message de news:
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des
fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais
ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Bonjour
En ajoutant une liste non visible qui contient le chemin.
Alain CROS
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim CmbHiden As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du
dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = True 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To 2, 1 To I)
Tbl(2, I) = Dir(.Item(I))
Tbl(1, I) = Left$(.Item(I), Len(.Item(I)) - Len(Tbl(2,
I)))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
Set CmbHiden = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl, 2)
.AddItem Tbl(2, I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
With CmbHiden
For I = 1 To UBound(Tbl, 2)
.AddItem Tbl(1, I)
Next I
.Tag = "Hide"
.Visible = False
End With
.Visible = True
End With
Set Cmb = Nothing
Set CmbHiden = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Parent.FindControl(, , "Hide").List(.ListIndex) &
NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Parent.FindControl(, ,
"Hide").List(.ListIndex) & NomClasseur
End If
End With
End Sub
Sub SupBarre()
On Error Resume Next
Application.CommandBars("MaBarre").Delete
End Sub
"Gaspareau" <123@234> a écrit dans le message de news:
OipOKgVsEHA.220@TK2MSFTNGP15.phx.gbl...
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des
fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais
ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci
Bonjour
En ajoutant une liste non visible qui contient le chemin.
Alain CROS
Sub NouvelleBarre()
Dim Barre As CommandBar
Dim Cmb As CommandBarComboBox
Dim CmbHiden As CommandBarComboBox
Dim Rf As FileSearch
Dim Tbl() As String
Dim Dossier As String
Dim I As Integer
On Error Resume Next
Application.CommandBars("MaBarre").Delete
Set Rf = Application.FileSearch
Dossier = "F:FloNouveau dossier" 'Indiquez ici le chemin du
dossier
With Rf
.NewSearch
.Filename = "*.xls"
.LookIn = Dossier
.SearchSubFolders = True 'True pour les sous-dossiers
.Execute msoSortByFileName, msoSortOrderAscending
If .Execute > 0 Then
With .FoundFiles
For I = 1 To .Count
ReDim Preserve Tbl(1 To 2, 1 To I)
Tbl(2, I) = Dir(.Item(I))
Tbl(1, I) = Left$(.Item(I), Len(.Item(I)) - Len(Tbl(2,
I)))
Next I
End With
End If
End With
Set Barre = Application.CommandBars.Add _
("MaBarre", msoBarTop, False, True)
With Barre
Set Cmb = .Controls.Add(msoControlComboBox)
Set CmbHiden = .Controls.Add(msoControlComboBox)
With Cmb
.Caption = "MonCombo"
.Width = 200
.OnAction = "LaMacro"
If Right(Dossier, 1) <> "" Then Dossier = Dossier & ""
.Tag = Dossier
.TooltipText = "Ouvre le classeur !"
If I <> 0 Then
For I = 1 To UBound(Tbl, 2)
.AddItem Tbl(2, I)
Next I
Else
.AddItem "Aucun classeur"
End If
.ListIndex = 1
End With
With CmbHiden
For I = 1 To UBound(Tbl, 2)
.AddItem Tbl(1, I)
Next I
.Tag = "Hide"
.Visible = False
End With
.Visible = True
End With
Set Cmb = Nothing
Set CmbHiden = Nothing
Set Barre = Nothing
Set Rf = Nothing
Erase Tbl
End Sub
Sub LaMacro()
Dim NomClasseur As String
With CommandBars.ActionControl
NomClasseur = .List(.ListIndex)
MsgBox NomClasseur
If NomClasseur = "Aucun classeur" Then
MsgBox "Aucun classeur n'a été" & _
" trouvé dans le dossier " & .Tag
Exit Sub
End If
MsgBox .Parent.FindControl(, , "Hide").List(.ListIndex) &
NomClasseur
On Error Resume Next
Workbooks(NomClasseur).Activate
If Err.Number <> 0 Then
Workbooks.Open .Parent.FindControl(, ,
"Hide").List(.ListIndex) & NomClasseur
End If
End With
End Sub
Sub SupBarre()
On Error Resume Next
Application.CommandBars("MaBarre").Delete
End Sub
"Gaspareau" a écrit dans le message de news:
Bonjour,
J'ai récupéré sur Excelabo ce code qu'Hervé a gentillement rendu
disponible.
Ce code lorsqu'exécuté crée une barre avec une liste complète des
fichiers
Excl
d'un répertoire donné.
Ma question: Est-ce possible de faire en sorte qu'il puisse ouvrir un
fichier même
si celui-ci n'est pas à la racine du répertoire mentionné.
J'ai essayé et si mon fichier est à la racine il ouvre mais si je met la
condition
.SearchSubFolders = True, j'ai la liste de tous les fichiers mais
ceux-ci
ne s'ouvre pas
lorsque je clique dessus.
C'est faisable ou je rêve ???
Merci