Nom de fichier stocké dans une variable

Résolu/Fermé
Brasiligun Messages postés 122 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 4 mars 2019 - Modifié le 19 juil. 2018 à 15:51
Brasiligun Messages postés 122 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 4 mars 2019 - 20 juil. 2018 à 08:08
Bonjour à tous!

Je suis sur un petit problème depuis un moment, et je pense vraiment systématiquement passer à coté de mon erreur

Je souhaite copier les informations d'une feuille excel, qui est créée tous les jours, et qui est ensuite rangée de façon systématique du type: ANNEE/MOIS/JOURS

Pour cibler la feuille qui m’intéresse et que je veux copier dans un classeur, j'ai mis en place un système qui me demande te taper le jour de la feuille concernée (pour l'exemple le 13 02 2017 -> 13022017)

Je veux donc copier la feuille ciblé qui est nommée par cette date 13022017, dans mon classeur ES.xslm

Et mon erreur vient surement mon inputbox qui est censée récupérer le nom de mon fichier, car si je passe en "mode bourrin" c'est à dire en bloquant l'adresse d'un fichier (que je triche et du coup, je fixe la date)
feuille = "D:\fichiers\2017\Février\Liste 13022017.xlsx"

La j'arrive plus ou moins à ce que je souhaite, mais le programme n'est donc plus polyvalent

Avez-vous une idée de mon erreur?


Pour résumé, je veux copier une feuille qui est nommée par une date, dans mon classeur ES.xslm en tapant la date du fichier concerné


Voiçi le code:

https://www.cjoint.com/c/HGtnRCw3qI2

ou

Sub choixdate()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

     Dim resultat As String
     Dim nom As String
     Dim m As String
     
encore:
     resultat = InputBox("Quelle est la date souhaitée ?" & Chr(10) & "Format XX/XX/XXXX", "Renseignement date") 'La variable reçoit la valeur entrée dans l'InputBox
    
     If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat
               If Len(resultat) <> 10 Then
                    MsgBox "Erreur de format"
                    GoTo encore
                End If
                Worksheets("Equipe dém").Range("B1") = resultat
                 
     End If
     
     nom = Left(resultat, 2) & Mid(resultat, 4, 2) & Right(resultat, 4)
     Worksheets("Equipe dém").Range("c1") = nom
     
        If Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "01" Then
            m = "Janvier"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "02" Then
            m = "Février"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "03" Then
            m = "Mars"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "04" Then
            m = "Avril"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "05" Then
            m = "Mai"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "06" Then
            m = "Juin"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "07" Then
            m = "Juillet"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "08" Then
            m = "Aout"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "09" Then
            m = "Septembre"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "10" Then
            m = "Octobre"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "11" Then
            m = "Novembre"
        ElseIf Mid(Worksheets("Equipe dém").Range("B1"), 4, 2) = "12" Then
            m = "Décembre"
     End If
     
     Worksheets("Equipe dém").Range("f1") = m
     
     Dim titre As Variant
     Dim annee As String
     Dim feuille As String
     'Dim titre As String
     
     

titre = "Liste des  4H  " & nom & ".xlsx"
Worksheets("Equipe dém").Range("d1") = titre
annee = Right(nom, 4)
Worksheets("Equipe dém").Range("e1") = annee


'feuille = "D:\fichiers\" & annee & "\" & m & "\" & titre
feuille = "D:\fichiers\2017\Février\Liste 13022017.xlsx" 'chemin a la bourin



'''''''code qui marche
   ' Sheets("Equipe").Select
   ' Cells.Select
   ' Selection.Copy
   ' Workbooks("ES.xlsm").Sheets.Add(After:=Worksheets(Worksheets.Count)).Select
   ' Range("A1").Select
   ' ActiveSheet.Paste
   ' ActiveSheet.Name = Workbooks("ES.xlsm").Worksheets("Equipe dém").Cells(1, 3)
    
    
     
   
    Workbooks.Open Filename:=feuille
    Sheets("Liste").Select
    Range("A1:X300").Select
    Selection.Copy
    Windows("ES.xlsm").Activate
    Workbooks("ES.xlsm").Sheets.Add(After:=Worksheets(Worksheets.Count)).Select
    Range("A1").Select
    ActiveSheet.Paste
    ActiveSheet.Name = Workbooks("ES.xlsm").Worksheets("Equipe dém").Cells(1, 3)

End Sub




Un grand merci!

A voir également:

1 réponse

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
19 juil. 2018 à 16:08
Bonjour,

Teste donc ça


Sub choixdate()
     Dim titre As Variant
     Dim annee As String
     Dim feuille As String
     Dim sh As Worksheet
     Dim resultat As String
     Dim nom As String
     Dim mois As String
     Dim m As String
     Dim y As String
     Dim d As String
     
     
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
     
     Set sh = Worksheet("Equipe dém")
     
encore:
     resultat = InputBox("Quelle est la date souhaitée ?" & Chr(10) & "Format XX/XX/XXXX", "Renseignement date") 'La variable reçoit la valeur entrée dans l'InputBox
    
     If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat
               If Len(resultat) <> 10 Then
                    MsgBox "Erreur de format"
                    GoTo encore
                End If
                sh.Range("B1") = resultat
                 
     End If
     
     'On explose la chaine en array
     arrDate = Split(resultat, "/")
     d = arrDate(0)  'jour
     m = arrDate(1)  'mois
     y = arrDate(2)  'année
          
     mois = MonthName(m)
          
     nom = d & m & y
     sh.Range("c1") = nom
     sh.Range("f1") = mois
     
    titre = "Liste des  4H  " & nom & ".xlsx"
    sh.Range("d1") = titre
    sh.Range("e1") = y


    feuille = "D:\fichiers\" & y & "\" & mois & "\" & titre
    MsgBox feuille
     
    '
    'Workbooks.Open Filename:=feuille
    'Sheets("Liste").Select
    'Range("A1:X300").Select
    'Selection.Copy
    'Windows("ES.xlsm").Activate
    'Workbooks("ES.xlsm").Sheets.Add(After:=Worksheets(Worksheets.Count)).Select
    'Range("A1").Select
    'ActiveSheet.Paste
    'ActiveSheet.Name = Workbooks("ES.xlsm").Worksheets("Equipe dém").Cells(1, 3)

End Sub


0
Brasiligun Messages postés 122 Date d'inscription mardi 29 décembre 2009 Statut Membre Dernière intervention 4 mars 2019 1
20 juil. 2018 à 08:08
Top! Merci, j'ai pu terminer grâce à toi

Encore merci
0