IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ouvrir automatiquement le dernier fichier créé dans un dossier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 76
    Par défaut Ouvrir automatiquement le dernier fichier créé dans un dossier
    Bonsoir à tous, j'ai un programme et dans celui-ci j'aimerai que quand je clique sur un bouton ou quand je double clique sur le fichier pour le lancer, celui-ci doit me lancer le dernier fichier qui a ete crée dans le repertoire :

    c:\sesame\resultats\

    Mais je ne sais pas comment faire.

    Voila deja ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub FichierMetrologue()
     
    Dim objSht As Worksheet
    Dim objFso
    Dim objTxt
    Dim i As Long
     
    Set objFso = CreateObject("Scripting.FileSystemObject")
    Set objSht = ThisWorkbook.Worksheets("Feuil1")
    Set objTxt = objFso.OpenTextFile("c:\sesame\resultats\""aller prendre le dernier fichier" & ".txt", 1)
     
    i = 0
    Do Until objTxt.AtEndOfStream And i <= 65536
      i = i + 1
      If i <= 5 Then
        objSht.Cells(i, 1) = objTxt.Readline
      Else
        objSht.Cells(i + 18, 1) = objTxt.Readline
      End If
    Loop
     
    Set objTxt = Nothing
    Set objSht = Nothing
    Set objFso = Nothing
    End Sub
    Merci beaucoup à celui qui réussira à m'aider

  2. #2
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    rerereBonsoir,

    Voici une fonction qui retourne le fichier le plus récent d'un dossier...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Function LastFileNameOfDirectory(directory As String, extension As String) As String
    Dim objFso As Object
    Dim file As Object
      Set objFso = CreateObject("Scripting.FileSystemObject")
     
      For Each f In objFso.GetFolder(directory).Files
        If LCase(Right(f.Name, Len(extension) + 1)) = "." & extension Then
          If file Is Nothing Then
            Set file = f
          Else
            If f.DateCreated > file.DateCreated Then Set file = f
          End If
        End If
      Next
     
      If Not file Is Nothing Then
        LastFileNameOfDirectory = file.Path
      Else
        LastFileNameOfDirectory = ""
      End If
     
      Set objFso = Nothing
     
    End Function
    et voici comment l'utiliser dans ton code...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set objTxt = objFso.OpenTextFile(LastFileNameOfDirectory("c:\sesame\resultats\", "txt"), 1)

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 76
    Par défaut
    bonsoir, j'ai vu le message tout à l'heure au travail et j'ai donc essayé, mais je n'y arrivais pas à coder.

    Je dois faire les copier coller dans quoi ? vu que c'est une fonction

    je copie la fonction ou ? et le code avec set"" ou ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir
    Plutôt que de demander le code directement, il faudrait peut être mieux, avec un peu de recherche, en écrire un, l'essayer et éventuellement si ça ne marche pas, demander de l'aide en présentant ce qui ne marche pas.
    Ce serait plus dans l'esprit de Dvp.

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 76
    Par défaut
    Le problème, c'est que j'ai le code, je le mets en dessous :
    Mais je ne sais pas comment on fait marcher la fonction.
    Si vous pouvez m'aider ce serait gentille.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Declare Function LastFileNameOfDirectory Lib(directory As String, extension As String) As String
    Private Function LastFileNameOfDirectory(directory As String, extension As String) As String
    Dim objFso As Object
    Dim file As Object
      Set objFso = CreateObject("Scripting.FileSystemObject")
     
      For Each f In objFso.GetFolder(directory).Files
        If LCase(Right(f.Name, Len(extension) + 1)) = "." & extension Then
          If file Is Nothing Then
            Set file = f
          Else
            If f.DateCreated > file.DateCreated Then Set file = f
          End If
        End If
      Next
     
      If Not file Is Nothing Then
        LastFileNameOfDirectory = file.Path
      Else
        LastFileNameOfDirectory = ""
      End If
     
      Set objFso = Nothing
     
    With ThisWorkbook.Worksheets("Feuil1")
        .Range("A:A").ClearContents
        Do While Not objtxt.AtEndOfStream And i <= .Rows.Count
            If i = 5 Then i = 23
            i = i + 1
            .Cells(i, 1) = objtxt.Readline
        Loop
    End With
     
    End Function

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu!!!!
    bonjour maxime

    dans tout les cas ton code ne peut pas fonctioner

    ici: tu fait appel a un apis sans la nomer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function LastFileNameOfDirectory Lib(directory As String, extension As String) As String
    ca devrais etre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function LastFileNameOfDirectory Lib" nom de la dll"(directory As String, extension As String) As String
    d'autant plus que je ne l'ai jamais vu celle la

    et en plus arosec t' a donné la solution

    nickel!!! ta macro arosec courte precise sans fioriture parfait!!!
    je la garde
    parcontre le ",1" a la fin n'est pas necessaire puisque tu n'a que deux variables string a enoncé "directory et extention"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    msgbox LastFileNameOfDirectory("c:\sesame\resultats\", "txt")
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 76
    Par défaut
    d'accord merci, donc si je veux ouvrir automatiquement le dernier fichier txt de mon dossier, je dois ecrire quoi ? car j'ai fait plusieurs fois le test avec mon programme et j'y arrive pas

  8. #8
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir Maxime082,
    La remarque de GAYOT ci dessus est interessante...
    Il est très important de maitriser le code que l'on met dans une application pour en assurer la maintenance... Il ne suffit pas d'avoir quelque chose qui fonctionne même si c'est le minimum!
    Cdt,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir dernier fichier enregistré dans un dossier
    Par adragon dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2014, 10h38
  2. Réponses: 2
    Dernier message: 05/03/2014, 10h03
  3. ouvrir mes dix derniers fichiers dans Vim
    Par tictactouc dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 05/02/2009, 01h38
  4. Réponses: 0
    Dernier message: 02/12/2008, 17h07
  5. [VBA-Excel] Ouvrir un lot de fichier txt dans Excel
    Par Trollakuir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/06/2006, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo