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 :

Aide VBA pour copier coller d'un classeur à un autre [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut Aide VBA pour copier coller d'un classeur à un autre
    Bonjour,

    je fais appel à vos lumières car là je n'y arrive plus... (je ne suis pas experte en vba)
    Voilà j'ai un fichier avec une liste de personnel (fichier source) qui doit mettre à jour une liste de fichier (pour le moment je fais le test que sur 1) au fur et à mesure des arrivées, sorties

    Alors la macro pour copier la feuille pour la mettre à jour dans un autre classeur est facile mais il s'agit de fichier xltm et je n'y arrive pas j'ai une erreur d'execution 9.
    Voici à quoi ressemble ma macro :
    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
    Sub copie_feuille()
     
    Application.DisplayAlerts = False
    Dim Fichier As String
    Dim FichierNDF As String
     
    Fichier = "xxx\Liste Personnel.backup.xlsm"
    FichierNDF = "C:xxx\Projets\NDF.xltm"
     
    Workbooks.Open Filename:=FichierNDF, Editable:=True
     
    ThisWorkbook.Worksheets("NOMS").Cells.ClearContents
     
    Workbooks(Fichier).Worksheets("liste personnel").Cells.Copy _
    Workbooks(FichierNDF).Worksheets("NOMS").Range("A1")
     
    Workbooks(FichierNDF).Save
    Workbooks(FichierNDF).Close False
     
    Application.DisplayAlerts = True
     
    End Sub
    Par contre pour une automatisation totale, je voudrais savoir déjà si c'est possible que la macro aille voir dans la feuille "liens modèles" et aille exectuer la macro pour tous les chemins présent et aussi si un chemin est enlevé ou rajouté que cela soit pris en compte.

    J'espère être claire dans mes explications
    Merci pour votre aide !
    Jess

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Premièrement, quand tu mets du code, sélectionne-le et utilise le bouton # pour le formater. Ça aide la lecture...

    Pour ton problème, je présume que ta macro est dans le classeur Liste Personnel.backup.xlsm
    est-ce qu'il y a une feuille "NOMS" dans celui-ci ?
    Parce que cette ligne cherche dans ThisWorkbook et non pas ActiveWorkbook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ThisWorkbook.Worksheets("NOMS").Cells.ClearContents

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut
    Bonjour,

    Merci de l'info je ne manquerai pas de le faire.

    Pour répondre à ta question, oui la macro s'execute depuis le fichier :
    Liste Personnel.backup.xlsm

    La feuille "NOMS" est dans l'autre fichier : NDF.xltm
    Dans le fichier Liste Personnel la feuille qui doit être copié se nomme "liste personnel".
    J'ai mis Thisworkbook car juste avant je lui demande d'ouvrir le fichier NDF dans lequel il doit supprimer les données.
    Lorsque j'execute ma macro, elle ouvre bien le fichier NDF, efface les données dans la feuille "NOMS" est bloque au moment de la copie (du fichier source Liste Personnel.backup.xlsm) et du collage.

    Merci pour ton aide

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Plutôt utilise une variable objet de type Workbook pour instancier ton fichier à ouvrir.

    Exemple
    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 Copie_Feuille()
    Dim Wbk As Workbook
    Dim FichierNDF As String
     
    FichierNDF = "Cxx\Projets\NDF.xltm"
    If Dir(FichierNDF) <> "" Then                    'On test sir FichierNDF existe
        Set Wbk = Workbooks.Open(Filename:=FichierNDF, Editable:=True)
        With Wbk
            With .Worksheets("NOMS")
                .UsedRange.ClearContents
                ThisWorkbook.Worksheets("liste personnel").UsedRange.Copy .Range("A1")
            End With
            .Close True
        End With
        Set Wbk = Nothing
    End If
    End Sub

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 7
    Par défaut
    Super, c'est exactement le résultat que je voulais, Merci beaucoup pour l'aide.

    J'ai juste rajouté le code pour qu'il n'affiche pas d'alerte car les 2 feuilles n'ont pas le même nom.

    Juste une dernière question, car la macro est destinée à mettre à jour au final 15 fichiers environ
    je voudrais savoir si c'est possible que la macro aille voir dans une feuille que nous appèlerons "liens modèles" avec la liste de tous les fichiers à mettre à jour et aille exectuer la macro pour tous les chemins présent et aussi si un chemin est enlevé ou rajouté que cela soit pris en compte.

    merci encore pour votre aide

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    La procédure pourra être paramétrée par le chemin du fichier à ouvrir

    Exemple à adapter
    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
    Option Explicit
     
    Sub Test()
    Dim c As Range
     
    For Each c In ThisWorkbook.Worksheets("liens modèles").Range("A1:A20")
        If c.Value <> "" Then Call Copie_Feuille(c.Value)
    Next c
    End Sub
     
    Private Sub Copie_Feuille(ByVal FichierNDF As String)
    Dim Wbk As Workbook
     
    Application.ScreenUpdating = False
    If Dir(FichierNDF) <> "" Then                    'On test sir FichierNDF existe
        Set Wbk = Workbooks.Open(Filename:=FichierNDF, Editable:=True)
        With Wbk
            With .Worksheets("NOMS")
                .UsedRange.ClearContents
                ThisWorkbook.Worksheets("liste personnel").UsedRange.Copy .Range("A1")
            End With
            .Close True
        End With
        Set Wbk = Nothing
    End If
    End Sub

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

Discussions similaires

  1. Copier - Coller d'un classeur à un autre - Erreur 438
    Par A_blz dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/06/2014, 19h20
  2. Code VBA pour copier-coller des colonnes d'un fichier Excel à un autre
    Par User Name dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2014, 23h30
  3. Réponses: 9
    Dernier message: 30/04/2013, 18h57
  4. aide pour copier/coller et pour trier
    Par chamoxx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2008, 21h27
  5. [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

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