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 :

Methode WorkBooks copie dans le même classeur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Par défaut Methode WorkBooks copie dans le même classeur
    Salut, j'utilise la méthode WorksBooks.OpenText pour ouvrir un fichier texte ou se trouve différentes informations. J'aimerais que le fichier texte s'ouvre dans le même classeur mais dans une nouvelle feuille que ou est stockés mon bouton de copie.
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Workbooks.OpenText Filename:=LeFichierAOuvrir, Origin:=xlWindows, StartRow _
            :=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), Array(3, 2), Array( _
            6, 2), Array(23, 2), Array(58, 2), Array(61, 2), Array(62, 2), Array(79, 2), Array(96, 2))
    Le nom du fichier 'LeFichierAOuvrir' est définit ici :
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LeFichierAOuvrir = Application.GetOpenFilename(Title:="Nom du fichier PGI à ouvrir")
        If LeFichierAOuvrir <> "Faux" Then
                OuvrirAuxiliaire
        End If
    J'ai essayer de bidouiller un peut a droite a gauche pour voir ou dans le code on indique que l'on veut que le fichier soit ouvert dans un nouveau classeur, mais je n'arrive pas a mettre la main dessus.
    MErci de votre aide

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    J'ai l'impression que la méthode OpenText s'amuse à ouvrir ton fichier dans la feuille où est ton bouton si je ne me trompe pas. Je suppose donc qu'il l'ouvre dans la feuille active. As-tu tenté, juste avant l'OpenText de créer une feuille et de lui mettre l'Activate ? Si c'est la feuille active, peu importe où est ton bouton, il ouvrira le texte dessus.

    Tu testes et tu me dis ?

    EDIT : j'ai rien dit, j'ai mal lu, il l'ouvre carrément dans un nouveau classeur... Désolé
    EDIT2 : quoique c'est pas clair. Pour l'instant, est-ce ouvert dans le même classeur et dans la feuille du bouton (dans ce cas cf. ce que je viens de dire) ou est-ce ouvert dans un autre classeur? Dans le deuxième cas, t'es bon pour faire un copier/coller de la feuille par macro entre les 2 classeurs (c'est vraiment pas compliqué).

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Par défaut
    Voila, j'ai rajouter cette partie de code, qui me rajoute une feuille et l'active, mais le Opentext, m'ouvre quand meme mon fichier dans un nouceau classeur.
    Code vba : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sheets.Add After:=Worksheets(Worksheets.Count)
        ActiveSheet.Name = "test"
        Sheets("test").Activate
       Workbooks.OpenText Filename:=LeFichierAOuvrir, Origin:=xlWindows, StartRow _
            :=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 2), Array(3, 2)

  4. #4
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Voici ce que dit l'aide excel
    Cette méthode ouvre et redistribue un fichier texte sous la forme d'un nouveau classeur ne comportant qu'une seule feuille dans laquelle se trouvent les données du fichier texte distribuées.
    Bon comme je te l'ai déjà dit et que je ne suis pas avares de copier/coller.
    Alors le même mais en plus gros, le mot clef ta peut être échappé la première fois
    Cette méthode ouvre et redistribue un fichier texte sous la forme d'un nouveau classeur ne comportant qu'une seule feuille dans laquelle se trouvent les données du fichier texte distribuées.
    Deux solutions s'offre a toi. La première tu change ta méthode pour ouvrir tes données (tu peu faire importer des donnée avec l'enregistreur de macro, ou même mais la ca serait un peu oser parceque ca simplifierais beaucoup de tes problème utiliser le code qui t'avais était donné il y a quelque temps qui lisait le fichier ligne a ligne et qui copie les ligne qui t'interesse)

    La deuxième tu acceptes cette état de fait et tu trouve un moyen (yen a un très simple) de mettre les données dans ton classeur.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Hop,

    Voilà la réponse de Krovax

    Bon, toutes les méthodes sont valables et je ne sais pas ce qui t'a été proposé avant.

    Perso, j'accepterais qu'un nouveau classeur s'ouvre, je copierais la feuille en question dans mon classeur (je t'ai dit, c'est vraiment pas compliqué) puis je refermerais le classeur qui a été ouvert.

    Voilà et bonne chance !

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2008
    Messages : 235
    Par défaut
    Avec la méthodze que l'on m'avait donner precedement, on ne pouvais pas recuperer la mise en page, chose que je suis obliger de respecter pour pouvoir importer les informations qui concernent la demande effectuer et pour organiser les informations dans la nouvelle feuille. Et j'ai chercher l'aide sur l'enregistreur de maccros, mais a part recordmacro ou j'ai lut mais je ne voit pas comment je pourrais recuperer les infos du me fichier texte, je n'ai rien trouver.
    Je pense que je vais tenter la méthode de DeaD78, copier la feuille crée puis supprimer le nouveaux classeur, jme demande pkr j'y est ps penser plus tot lol.

  7. #7
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Tu lance l'enregistreur de macro puis dans le menue donnée tu va sur donnée externe, importer des données. Et tu te laisse guidé. après quelque essais tu aura vite fait le tour des options.
    Au final tu aura un code très proche de celui de Fvandermeulen (que je vais me mettre sous le coude car j'ai perdu mon code pour importer les fichiers )

  8. #8
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut, (Re Dead78)
    Voici un exemple de ce que j'ai utilisé dans un de mes fichiers, c'est pas des plus propre (variables non déclarées et les points inutiles du "With" non nettoyés) mais chez moi ça tourne parfaitement. A voir si ça te convient.

    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
    Sub Import_TXT()
    '
    MonTXT = Application.GetOpenFilename
     
    Sheets("Source_Access").Select
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;" & MonTXT _
            , Destination:=Range("A1"))
            .Name = "Inutile"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 437
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = True 'délimité par ;
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
     
     End Sub
    Bonne continuation

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

Discussions similaires

  1. [XL-2003] Comment copier puis renommer un onglet dans un même classeur ?
    Par [ZiP] dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/04/2010, 17h45
  2. Copie de feuilles sélectionnées dans un même classeur
    Par TNC dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/09/2008, 17h31
  3. Réponses: 4
    Dernier message: 02/07/2008, 11h32
  4. Réponses: 11
    Dernier message: 16/06/2008, 14h33
  5. [requete] copie dans la même ligne
    Par MatMeuh dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/07/2006, 10h44

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