Nom de fichier avec variable

yop les loulous

revoici le casse pied qui revient.

je voudrais ouvrir un ou pls fichiers parmi 11 au cas ou ils ne seraient pas ouvert.

j'utilise les erreurs pour ouvrir les fichiers (ya surement plus simples et moins alambiqué, mais j'ai pas le temps de réfléchir)

je n'arrive pas a introduire le i dans le nom du fichier à ouvrir.

Private Sub CommandButton1_Click()
Dim i As Integer
Dim wb0 As Workbook, wb1 As Workbook, wb2 As Workbook, wb3 As Workbook, wb4 As Workbook, wb5 As Workbook, wb6 As Workbook, wb7 As Workbook, wb8 As Workbook, wb9 As Workbook, wb10 As Workbook, wb11 As Workbook
Dim chemin As String
Dim wbs0 As String, wbs1 As String, wbs2 As String, wbs3 As String, wbs4 As String, wbs5 As String, wbs6 As String, wbs7 As String, wbs8 As String, wbs9 As String, wbs10 As String, wbs11 As String
chemin = ThisWorkbook.Path

wbs0 = "récap.xlsm"
wbs1 = "Bordereau La Victoire.xlsx"
wbs2 = "Bordereau WESCO.xlsx"
wbs3 = "Bordereau Pichon Lot 2.xlsx"
wbs4 = "Bordereau Pichon Lot 3.xlsx"
wbs5 = "Bordereau Pichon Lot 4.xlsx"
wbs6 = "Bordereau Pichon Lot 5.xlsx"
wbs7 = "Bordereau NLU.xlsx"
wbs8 = "Bordereau INAPA.xlsx"
wbs9 = "Bordereau NATHAN.xlsx"
wbs10 = "Bordereau de commande 2016 Produits Pharmaceutiques Lot 1 PHARMACIE LES FLORALIES.xls"
wbs11 = "Bordereau de commande Consommables 2016 Pharmaceutiques Lot 2  FRANCE NEIR.xls"

'Assignation des fichiers mairie
On Error GoTo Erreur_fichier
Set wb0 = Workbooks("récap.xlsm")
i = 0
Set wb1 = Workbooks("Bordereau La Victoire.xlsx")
i = 1
Set wb2 = Workbooks("Bordereau WESCO.xlsx")
i = 2
Set wb3 = Workbooks("Bordereau Pichon Lot 2.xlsx")
i = 3
Set wb4 = Workbooks("Bordereau Pichon Lot 3.xlsx")
i = 4
Set wb5 = Workbooks("Bordereau Pichon Lot 4.xlsx")
i = 5
Set wb6 = Workbooks("Bordereau Pichon Lot 5.xlsx")
i = 6
Set wb7 = Workbooks("Bordereau NLU.xlsx")
i = 7
Set wb8 = Workbooks("Bordereau INAPA.xlsx")
i = 8
Set wb9 = Workbooks("Bordereau NATHAN.xlsx")
i = 9
Set wb10 = Workbooks("Bordereau de commande 2016 Produits Pharmaceutiques Lot 1 PHARMACIE LES FLORALIES.xls")
i = 10
Set wb11 = Workbooks("Bordereau de commande Consommables 2016 Pharmaceutiques Lot 2  FRANCE NEIR.xls")

Erreur_fichier:

 Application.Workbooks.Open chemin & "\" & wbsi <= c'est ce i là que j'arrive pas à faire varier. 
' j'ai tenté wbs & i ou wbs(i) ou encore wbs + i et à chaque fois niet nada.

 End Sub

autre question une fois l'erreur finie on fait comment pour remonter là haut ?

++

Troph

Bon je suis en train de te corriger tout ça. Utiliser les erreurs n'est vraiment pas une bonne idée!

Voilà du code:

1) Le copier coller dans un module

2) EDITER LA LIGNE

Private Const repertoireTravail As String = ""

3) Exécuter la procédure et me dire si ça marche ou non.

Private Const repertoireTravail As String = ""

Sub test()
Dim listeClasseurs(1 To 11) As Workbook
Dim listeNomClasseurs As Variant
Dim classeurOuvert As Boolean
Dim classeur As Workbook

listeNomClasseurs = Array("récap.xlsm", _
                    "Bordereau La Victoire.xlsx", _
                    "Bordereau WESCO.xlsx", _
                    "Bordereau Pichon Lot 2.xlsx", _
                    "Bordereau Pichon Lot 3.xlsx", _
                    "Bordereau Pichon Lot 4.xlsx", _
                    "Bordereau Pichon Lot 5.xlsx", _
                    "Bordereau NLU.xlsx", _
                    "Bordereau INAPA.xlsx", _
                    "Bordereau NATHAN.xlsx", _
                    "Bordereau de commande 2016 Produits Pharmaceutiques Lot 1 PHARMACIE LES FLORALIES.xls", _
                    "Bordereau de commande Consommables 2016 Pharmaceutiques Lot 2  FRANCE NEIR.xls")

For i = 1 To 11
    classeurOuvert = False
    For Each classeur In Application.Workbooks
        If classeur.Name = listeNomClasseurs(i - 1) Then classeurOuvert = True
    Next classeur

    If classeurOuvert = True Then
        Set listeClasseurs(i) = Workbooks(listeNomClasseurs(i - 1))
    Else
        Set listeClasseurs(i) = Application.Workbooks.Open(repertoireTravail & "\" & listeNomClasseurs(i - 1))
    End If
Next i

End Sub

Merci pour ton aide.

mais ça coince encore à cette ligne

Set listeClasseurs(i) = Application.Workbooks.Open(repertoireTravail & "\" & listeNomClasseurs(i - 1))

surement parce que l'on a fait que vérifier si le classeur était ouvert, mais on ne l'a pas ouvert du coup il ne peut pas le répertorier...

Sisi la ligne fais bien les deux.

Tu as soit une erreur dans le répertoire d'accès, soit dans le nom du fichier je pense. Quel est le code d'erreur donné?

à quelle valeur de i?

bon j'ai trouvé.

c'était le chemin d'accès qui n'était pas défini correctement.

du coup j'ai mis

dim chemin as string
chemin = thisworkbook.path

puis

Set listeClasseurs(i) = Application.Workbooks.Open(chemin & "\" & listeNomClasseurs(i - 1))

et du coup ça marche

Merci du coup de main pour la mise en tableau.

Rechercher des sujets similaires à "nom fichier variable"