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 :

Ouverture de fichier et variable [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Ouverture de fichier et variable
    Bonjour,

    J'ai enregistré la macro ci-dessous avec l'enregistreur de macro, cependant j'aimerais bien que le fichier choisi dans ce cas E:\Communication\Client porteur carte.txt" soit choisi par l'utilisateur, par l'ouverture d'une fenêtre. De plus j'aimerais qu'il demande à l'utilisateur de choisir la longueur du fichier dans ce cas elle est de 25892, pour qu'elle soit changer dans les lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Selection.AutoFill Destination:=Range("AP3:AP25892"), Type:=xlFillDefault
        Range("AP3:AP25892").Select
     
    Selection.AutoFill Destination:=Range("AQ3:AQ25892"), Type:=xlFillDefault
        Range("AP3:AQ25892").Select
     
    Selection.AutoFill Destination:=Range("AR3:AR25892"), Type:=xlFillDefault
        Range("AR3:AR25892").Select
    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Sub Import()
    '
    ' Import Macro
    ' Macro enregistrée le 15/03/2011 par directeur
    '
     
    '
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;E:\Communication\Client porteur carte.txt", Destination _
            :=Range("A1"))
            .Name = "Client porteur carte_2"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 5, 1, 1, 1, _
            1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileDecimalSeparator = "."
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
     
        Range("AP3").Select
        ActiveCell.FormulaR1C1 = "=IF(C[-27]="""","""",YEAR(TODAY())-YEAR(C[-27]))"
        Range("AP3").Select
        Selection.AutoFill Destination:=Range("AP3:AP25892"), Type:=xlFillDefault
        Range("AP3:AP25892").Select
     
        Range("AQ3").Select
        ActiveCell.FormulaR1C1 = "=IF(C[-25]="""","""",YEAR(C[-25]))"
        Range("AQ3").Select
        Selection.AutoFill Destination:=Range("AQ3:AQ25892"), Type:=xlFillDefault
        Range("AP3:AQ25892").Select
     
        Range("AR3").Select
        ActiveCell.FormulaR1C1 = "=TRIM(RC[-35])"
        Range("AR3").Select
        Selection.AutoFill Destination:=Range("AR3:AR25892"), Type:=xlFillDefault
        Range("AR3:AR25892").Select
        End Sub
    Merci de votre aide

  2. #2
    Membre habitué Avatar de doncamelo
    Homme Profil pro
    Chargé d'études
    Inscrit en
    Décembre 2007
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'études
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2007
    Messages : 129
    Points : 164
    Points
    164
    Par défaut
    Bonsoir matse57,

    En ce qui concerne le choix du fichier via la boite de dialogue, voici un lien qui pourra t'aider:

    Comment choisir un fichier sur le PC et récupérer son nom (utilisation de GetOpenFilename) ?

    http://excel.developpez.com/faq/?pag...etOpenFileName

    Utilisez la méthode GetOpenFilename pour visualiser l'arborescence des fichiers sur le PC, et renvoyer le nom sélectionné.
    GetOpenFilename affiche la boîte de dialogue "Ouvrir" mais ne sert qu'à récupérer le nom du fichier choisi.


    Vba

    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
    Sub ChoixFichier()
        'La variable est de type Variant car elle peut prendre les valeurs:
            'Booleenne: (Vrai/Faux) quand l'utilisateur ne sélectionne rien, ou annule l'opération.
            'String: pour renvoyer le nom du fichier sélectionné.
        Dim Fichier As Variant
     
        'Affiche la boîte de dialogue "Ouvrir"
        Fichier = Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
     
        'On sort si aucun fichier n'a été sélectionné ou si l'utilisateur
        'a cliqué sur le bouton "Annuler", ou sur la croix de fermeture.
        If Fichier = False Then Exit Sub
     
        'Affiche le chemin et le nom du fichier sélectionné.
        MsgBox Fichier
     
    End Sub
    De plus, ton code s'exécutera plus vite si tu évites les En espérant que cela puisse t'aider
    Doncamelo

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Salut,

    Je te remerci sa fonctionne, j'avais juste du mal pour récuperer la variable mais j'ai fini par réussir. Tu n'a pas d'idée pour arriver à récuperer la longeur du fonction dans un variable, et remplacer le chiffre par la variable.


    Merci

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

Discussions similaires

  1. [XL-2010] Ouverture de fichiers dans répertoire variable
    Par Bpillon dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/10/2011, 10h49
  2. Passer une variable en paramètre d'ouverture de fichier
    Par KiraX10A dans le forum Débuter
    Réponses: 5
    Dernier message: 12/01/2010, 15h30
  3. ouverture fichier suivant variable
    Par cchampion2fr dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/10/2008, 15h13
  4. [VBA-E] Evenement ouverture de fichier
    Par gjeff dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/12/2002, 10h42
  5. nom de fichier et variables d'environnement
    Par joebarthib dans le forum Langage
    Réponses: 2
    Dernier message: 18/07/2002, 16h21

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