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

Excel Discussion :

excel - ouverture d'un autre fichier via Macro


Sujet :

Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 57
    Points : 42
    Points
    42
    Par défaut excel - ouverture d'un autre fichier via Macro
    Bonjour,

    Dans une macro -- fichier excel grace à cette macro ci-dessous je regarde si un fichier text que je dois traiter est bien arrivé ou non et le nom de ce fichier apparait en A1

    ThisWorkbook.Worksheets("Feuil1").Range("A1") = Application.GetOpenFilename


    J ai défini un Nom en A1 --> pour évidemment donner un nom de champ à cette case qui contient le nom du fichier text ouvert préalablement.

    serait il possible par la suite d'ouvrir ce fichier dont le nom apparait en A1, chaque mois ce fichier texte change de nom. le nom est +- le même mais il y a une date en plus qui change bien sure tous les mois et cela grace au nom du champ (A1) puisque le nom du fichier txt change chaque mois.

    J ai essayé via ceci :

    ChDir "G:\"
    Workbooks.Open Filename:=nom du champ --> cela ne fonctionne pas, soit cela ne fonctionne pas via le nom du champ que je lui ai donné ou soit il y des erreurs de , ou autre ????


    Mille merci !!!!!!!!!!!!!

  2. #2
    Membre averti 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
    Points : 324
    Points
    324
    Par défaut
    Bonjour,

    1)
    La première étape si j'ai correctement compris le besoin, est d'identifier les changement de valeur de A1:
    Il faut ajouter le code suivant dans la partie VBA de la feuille en question.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
      If Not Application.Intersect(ThisWorkbook.Worksheets("Feuil1").Range("A1"), Target) Is Nothing Then
        OpenTexteFile ThisWorkbook.Worksheets("Feuil1").Range("A1")
      End If
     
    End Sub
    2)
    Il faut ouvrir un le fichier défini en A1:
    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
     
    Public Sub OpenTexteFile(fil As String)
    Dim fso As Scripting.FileSystemObject
     
      Set fso = CreateObject("Scripting.FileSystemObject")
     
      If fso.FileExists(fil) Then
        Application.Workbooks.OpenText fil
      Else
        MsgBox "Le fichier n'existe pas ", vbCritical, "Error File"
      End If
     
      Set fso = Nothing
     
    End Sub
    3)
    Eti pour charger A1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub FindFile()
      ThisWorkbook.Worksheets("Feuil1").Range("A1") = Application.GetOpenFilename
    End Sub
    Cdlt,

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 57
    Points : 42
    Points
    42
    Par défaut
    y a t il moyen de mettre cela en 1 seule macro svp ?

    plus il y a un problème avec cette ligne non défini ???



    Set fso = CreateObject("Scripting.FileSystemObject")

  4. #4
    Membre averti 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
    Points : 324
    Points
    324
    Par défaut
    Bonjour,

    y a t il moyen de mettre cela en 1 seule macro svp ?
    ... Intéret?

    On peut "fusionner" la première et la seconde:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
     
      If Not Application.Intersect(ThisWorkbook.Worksheets("Feuil1").Range("A1"), Target) Is Nothing Then
        Application.Workbooks.OpenText ThisWorkbook.Worksheets("Feuil1").Range("A1")
      End If
     
    End Sub
    Cdlt,

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 57
    Points : 42
    Points
    42
    Par défaut Private Sub Worksheet_Change(ByVal Target As Range)
    Lorsque je mets cela ds une macro et que je crée un bouton pour affecter cette macro mais je ne sais pa spq je ne retrouve pas cette macro

    Pq svp ???


    Private Sub Worksheet_Change(ByVal Target As Range)

    If Not Application.Intersect(ThisWorkbook.Worksheets("Feuil1").Range("A1"), Target) Is Nothing Then
    Application.Workbooks.OpenText ThisWorkbook.Worksheets("Feuil1").Range("A1")
    End If

    End Sub

  6. #6
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 674
    Points
    18 674
    Par défaut


Discussions similaires

  1. Réponses: 12
    Dernier message: 22/03/2010, 15h07
  2. [E-03] Ouverture d'un dossier Réseau via Macro
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/01/2009, 12h28
  3. Ouvrier un fichier avec macro depuis un autre fichier avec macro
    Par Jeanvaljean44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/11/2008, 12h23
  4. [VBA]macro excel ouverture et transformation de fichier
    Par astrolane dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/05/2007, 12h19
  5. Réponses: 1
    Dernier message: 26/01/2006, 18h04

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