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 :

MACRO pour récupérer le contenu d'un fichier text [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 102
    Par défaut MACRO pour récupérer le contenu d'un fichier text
    Bonjour à tous;
    je suis débutant disant tréeees débutant en MACRO excel VBA

    Je suis entrain de faire une MACRO qui initialise le contenue d'une plage de cellule de la feuil1 de mon classeur Excel (A3:B5288) ,ensuite ouvre un fichier text séparer en point virgule dans une nouvelle feuil du méme classeur que celui de la macro
    ensuite copier un enssemble de cellules ( du fichier text ouvert dans le classeur excel) dans la premiére feuille du classeur ensuite fermé la feuil du fichier text.

    Celà me permettra comme vu dans le fichier joint de traçer une courbe dont les élements d'entrée sont celles dans le fichier TEXT ( ASCII )

    malheureusement tout mon programme je l'est mis dans le boutton

    Or nulle part j'ai rien mis car je ne sais méme coment ni pourquoi ... :-(

    Voilà code que j'ai fais mais çà marche pas parceque je l'é fais par enregistrement et quelque modif:

    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
    Sub CommandButton1_Click()
     
    Dim A As Variant
     
    Application.ScreenUpdating = False
     
    MsgBox "Veuillez selectionner le fichier texte  à ouvrir", 0, "Information"
     
    A = Application.GetOpenFilename
     
    If A = False Then
     
    MsgBox " Aucun fichier n'a été selectionné"
     
    Exit Sub
     
    End If
        Workbooks.OpenText Filename:= _
            A, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
            Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1)), TrailingMinusNumbers:=True
     
            Sheets(Feuil1).Range(A3, B3).Activate
            ActiveCell.Offset(-3569, -1).Range("A1:B1").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.ClearContents
            ActiveCell.Offset(2, 2).Range("A1:B1").Select
            Range(Selection, Selection.End(xlDown)).Select
            Selection.Copy
            ActiveWindow.WindowState = xlMinimized
            Sheets("Feuil1").Select
            ActiveCell.Range("A1:B1").Select
            ActiveSheet.Paste
     
        End Sub

    merci bien pour votre aiiiiide

  2. #2
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Bonsoir Matrixmax,

    Ton code en lecture superficielle révèle d'emblée un problème d'ActiveCell, d'ActiveSheet.

    Je t'explique les raisons: Après l'importation, tu es supposé avoir un nouvel classeur qui devient par défaut le classeur actif.

    Le programme agit sur Feuil1 du classeuractif ici.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(Feuil1).Range(A3, B3).Activate
    est ce ce que tu souhaites?
    Dans la continuité de la ligne de code ci-dessus, cette ligne à problème:
    ActiveCell.Offset(-3569, -1).Range("A1:B1").Select
    ActiveCell est A3. l'Offset negatif possible avec A3 est (-2,0) au maximum.

    Conseil pour accéder à tes objets sur un autre classeur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks("FichierTexte").Workseets("Feuil1").Range(...)
    accéder au classeur dans lequel le code est exécuté: ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkBook.WorkSheets("Mafeuile")...
    Accède donc aux objets par leurs références au lieu d'ActiveCell...Selection.

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Décembre 2012
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 102
    Par défaut Pas encore résolu
    Bonjour,

    J'ai essayé mais çà n'as pas marcher puisque le nom de fichier text que j'ai ouvris en excel est varriable et son nom peu prendre plusieur valeurs alors j'ai pas su l'extraire pour fairs l'activation , ni l'ouvrir dans le méme classeur que celui de la macro
    ma varriable que j'ai faite appelé ainsi A :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     A = Application.GetOpenFilename
    Or le retour de cette varriable est le chemin du fichier text que j'ai voulu ouvrir;
    par contre L'instruction workbooks("...").activate devrais avoire entre parenthéses juste le nom du fichier.extension

    Merci de me trouvez une solution puisque çà m'énerve d'avoir à chaque petite fois ce message d'erreur :

    Erreur d'execution '13"
    Incompatibilité de type

  4. #4
    Membre extrêmement actif
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 037
    Billets dans le blog
    5
    Par défaut
    Bonjour.
    Pourquoi n'essayes tu pas avec une ou deux variable?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Wb As Workbook, r as Range
    Set wb = Workbooks.OpenText(...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set r = Wb.Sheets("Feuil1").Range...

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

Discussions similaires

  1. Commande pour récupérer le contenu d'un fichier
    Par FoX_*D i E* dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 04/02/2013, 17h49
  2. Réponses: 0
    Dernier message: 08/01/2013, 15h10
  3. Réponses: 2
    Dernier message: 10/09/2007, 19h03
  4. Réponses: 10
    Dernier message: 10/02/2007, 18h44
  5. Comment récupérer le contenu de plusieurs fichiers textes ?
    Par calimero2611 dans le forum Langage
    Réponses: 9
    Dernier message: 19/02/2006, 15h45

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