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 :

Copier/coller Entre deux classeurs excel VBA


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Copier/coller Entre deux classeurs excel VBA
    Bonjour j'ai regardé un peut les réponses est n'ai pas trouvé le code qui fonctionne dans mon cas :

    J'ai un document a ouvrir qui se nomme Qristal, je doit copier l'une de ces page pour venir la coller dans le document dans lequelle je tape mon code VBA.

    Dans un premier temps je créer une page pour venir stocké ses donner et ensuite je doit venir coller les donnée copier dans cette page que j'ai creer.

    Voici mon code :

    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
    Private Sub CommandButton1_Click()
     
     
    '===========Création d'une page Qristal================
    Sheets.Add
        ActiveSheet.Name = "Qristal"
     
    '===========Selection du Rapport Qristal===============
    Dim fld As FileDialog
    Dim strFilePath As String
    Set fld = Application.FileDialog(msoFileDialogOpen)
    With fld
        .InitialFileName = "Z:\2014\2013.ER.1285_Cds_MAS\01- UO100"
        .Show
    End With
    FileToOpen = fld.SelectedItems(1)
    TextBox1.Text = FileToOpen
        If FileToOpen = False Then
        MsgBox "No file specified.", vbExclamation, "Duh!!!"
     
        End If
    End Sub
     
    Private Sub CommandButton2_Click()
     
     
    '============Ouverture du fichier Qristal==================
     
    fic = TextBox1.Text
    Set wb = Workbooks.Open(fic)
     
    '=============Copie du tableau Qristal===================
     
    Sheets("Rapport detaille").Copy
     
    '=============Coller dans Qristal================================
     
    Workbook("Tableau_synthèse_des_substitutions_2").Sheets("Qristal").Select
    .PasteSpecial xlPasteValues
     
     
    End Sub
    Mon probleme surviens au moment de copier et coller la page toute les étapes précédente fonctionne correctement. (le probleme étant tout simplement un arret de la macro).

  2. #2
    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

    Bonjour, bonjour !

    Comparer les instructions en commun des lignes n°30 & 38 puis corriger l'orthographe de la ligne n°38 …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 907
    Points : 28 882
    Points
    28 882
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Exemple Tu modifies la valeur des deux constantes pour l'adapter à ton exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub CopyPasteSheet()
     Const wkbSrceName As String = "Z:\Documents\140615 Note de Frais.xlsx" ' FullName (Répertoire + nom du classeur source
     Const shtSrceName As String = "Note de Frais"  '  Nom de la feuille source
     Dim wkbSource As Workbook
     Workbooks.Open wkbSrceName: Set wkbSource = ActiveWorkbook
     With wkbSource
     .Worksheets(shtSrceName).Copy ThisWorkbook.Worksheets(1)
     .Close
     End With
     Set wkbSource = Nothing
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Il manque un S merci j essaye et je tiens au courant

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Merci pour vos réponce, philippe ta méthode fonctionne très bien j'ai qu'une petite modif encore a faire qui pour l'instant ne fonctionne pas ^^.

    Le lien du fichier pouvant bougé je le sélectionne au début de mon programme j'ai tenté de le stocké dans une variable afin de pouvoir l'utilisé mais cela me fait beugué le programme pour l instant.

    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
     
     
    '===========Création d'une page Qristal================
    'Sheets.Add
     '   ActiveSheet.Name = "Qristal"
     
    '===========Selection du Rapport Qristal===============
    Dim fld As FileDialog
    Dim strFilePath As String
    Set fld = Application.FileDialog(msoFileDialogOpen)
    With fld
        .InitialFileName = "Z:\2014\2013.ER.1285_Cds_MAS\01- UO100"
        .Show
    End With
    FileToOpen = fld.SelectedItems(1)
    TextBox1.Text = FileToOpen
        If FileToOpen = False Then
        MsgBox "No file specified.", vbExclamation, "Duh!!!"
     
        End If
    End Sub
     
    Private Sub CommandButton2_Click()
     
    '==============Stocké le TextBox1 dans une variable======================
     
    Ztext = TextBox1.Text
     
    '============Copier Coller la page importante du fichier Qristal==================
     
    Sub CopyPasteSheet()
     Const wkbSrceName As String = "Ztext" ' FullName (Répertoire + nom du classeur source
     'Const wkbSrceName As String = "Z:\2014\2013.ER.1285_Cds_MAS\01- UO100\01- EN COURS\FET-BEMT-REACH-001-02\MAS-013 261462972-0101 A400M LGRDC\DS\Analyse_Chimique_Qristal_261462972-0101_A400M LGRDC.xlsx" ' FullName (Répertoire + nom du classeur source
     Const shtSrceName As String = "Rapport detaille"  '  Nom de la feuille source
     Dim wkbSource As Workbook
     Workbooks.Open wkbSrceName: Set wkbSource = ActiveWorkbook
     With wkbSource
     .Worksheets(shtSrceName).Copy ThisWorkbook.Worksheets(1)
     .Close
     End With
     Set wkbSource = Nothing
    End Sub

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 907
    Points : 28 882
    Points
    28 882
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Le lien du fichier pouvant bougé je le sélectionne au début de mon programme j'ai tenté de le stocké dans une variable afin de pouvoir l'utilisé mais cela me fait beugué le programme pour l instant.
    Tu peux récupérer ce nom par la méthode GetOpenFilename de l'objet Application. Il y a des arguments qui peuvent être utilisés notamment pour les filtres sur (xls,xlsm, etc.)
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox Application.GetOpenFilename
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    De base j'ai utilisé cette fonction mais elle voulait absolument n'ouvrir la page que dans mes documents se qui me déranger car le but est d'ouvrir directement le dossier dont j'ai besoin.

  8. #8
    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





    Voir alors du côté des instructions ChDrive et ChDir ou encore la propriété FileDialog


    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Merci, j'y suis enfin presque ^^ :

    en prérequis j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TextBox1.Text = Z:\2014\2013.ER.1285_Cds_MAS\01- UO100
    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
    Private Sub CommandButton2_Click()
     
    '==============Stocké le TextBox1 dans une variable======================
    Dim Ztext As String
    Ztext = TextBox1.Text
    MsgBox Ztext
    '============Copier Coller la page importante du fichier Qristal==================
     
     
     Const wkbSrceName As String = Ztext ' FullName (Répertoire + nom du classeur source
      Const shtSrceName As String = "Rapport detaille"  '  Nom de la feuille source
     Dim wkbSource As Workbook
     Workbooks.Open wkbSrceName: Set wkbSource = ActiveWorkbook
     With wkbSource
     .Worksheets(shtSrceName).Copy ThisWorkbook.Worksheets(1)
     .Close
     End With
     Set wkbSource = Nothing
     
     
     
     
    End Sub
    La seul chose qui ne fonctionne pas est le faite de lire ce qu'il y a dans Ztext (j'ai vérifier se qu'il comporte est bon), et donc je pence mal déclaré le faite de lire ce qu'il y a dedans avec sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const wkbSrceName As String = Ztext
    Si vous voyer une erreur dans la commande dite le moi ^^

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement de composants
    Inscrit en
    Septembre 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement de composants
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Encore merci probleme résolue, j'ai remplacé la constante par ma variable Ztext et cela ma permis de pointé sur le bon document ^^ . Encore merci.

    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
    Private Sub CommandButton2_Click()
     
    '==============Stocké le TextBox1 dans une variable======================
    'Const Ztext As String = TextBox1.Text
    Dim Ztext As String
    Ztext = TextBox1.Text
    MsgBox Ztext
    '============Copier Coller la page importante du fichier Qristal==================
     
     
    ' Const wkbSrceName As String = Ztext ' FullName (Répertoire + nom du classeur source
     'Const wkbSrceName As String = "Z:\2014\2013.ER.1285_Cds_MAS\01- UO100\01- EN COURS\FET-BEMT-REACH-001-02\MAS-013 261462972-0101 A400M LGRDC\DS\Analyse_Chimique_Qristal_261462972-0101_A400M LGRDC.xlsx" ' FullName (Répertoire + nom du classeur source
     Const shtSrceName As String = "Rapport detaille"  '  Nom de la feuille source
     Dim wkbSource As Workbook
     Workbooks.Open Ztext: Set wkbSource = ActiveWorkbook
     'Workbooks.Open wkbSrceName: Set wkbSource = ActiveWorkbook
     With wkbSource
     .Worksheets(shtSrceName).Copy ThisWorkbook.Worksheets(1)
     .Close
     End With
     Set wkbSource = Nothing
     
     
     
     
    End Sub
    je met le code sa peut toujours servir à quelqu'un d'autre

  11. #11
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2009
    Messages : 33
    Points : 54
    Points
    54
    Par défaut
    Bonjour
    Citation Envoyé par Benjen Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const wkbSrceName As String = Ztext
    Replace par ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim wkbSrceName As String: wkbSrceName = Ztext
    Cordialement

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 907
    Points : 28 882
    Points
    28 882
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Encore merci probleme résolue, j'ai remplacé la constante par ma variable Ztext et cela ma permis de pointé sur le bon document ^^ . Encore merci.
    Une variable est un nom qui contient une valeur et celle-ci peut-être modifiée en cours de procédure contrairement à une constante qui est un nom contenant une valeur fixée au moment de sa déclaration et qui ne peut plus être modifiée.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Copier / Coller entre 2 fichiers excel
    Par roberto75 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/03/2011, 12h25
  2. [XL-2000] Copier coller entre deux classeurs
    Par Juan Jacko dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2011, 11h35
  3. Copier coller entre deux fichiers excel par macro
    Par miss-o-21 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2009, 14h45
  4. [VBA-E]Problème Copier-Coller entre 2 classeurs
    Par Corlo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2007, 14h31
  5. Réponses: 5
    Dernier message: 16/08/2006, 20h09

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