Copie feuille de Classeur-1 vers Classeur-2

Bonjour à tous,

Je voudrais pouvoir copier , avec du code VBA, une feuille se trouvant dans un classeur-1 (workbook-1) dans un classeur-2 (workbook-2). La feuille concernée se trouvant dans les 2 classeurs, celle du classeur workbook-1 viendra écraser celle de workbook-2.

La procédure devant se trouver dans workbook-2.

Est-ce possible, et si oui, comment ?

Le schéma joint est peut être plus explicite.

75essai.zip (31.46 Ko)

Bonjour,

Possible Oui, si les 2 classeurs sont ouverts,

il faudrait le nom des classeurs (xxxxxxxx.xls)

et la feuille "Ma Feuille" (pour voir les formules)

Amicalement

Claude

Merci Dubois,

Je suis désolé de paraître désinvolte mais j'ai été obligé de prendre la route pour une semaine sans possibilité de travailler sur ce sujet . . .

Je reprendrai le fil dès que je me serai posé (vendredi prochain sans doute)

Ne coupez pas ! . . .

Bonjour dubois,

Je suis à nouveau disponible.

Sauf le respect que je te dois eu égard à tes connaissances incommensurablement supérieures aux miennes en Excel VBA, je ne vois pas ce que la connaissance du contenu (formules) de Ma Feuille qui s'appelle exactement "adhérents MET" peut avoir affaire dans mon problème . . .

Je te l'enverai de toutes façons si nécessaire.

Je te joins un nouvel explicatif beaucoup plus complet qui me paraît suffisant pour expliciter mon besoin.

A bientôt

65essai.zip (32.53 Ko)

Bonjour,

je ne vois pas ce que la connaissance du contenu (formules) de Ma Feuille qui s'appelle exactement "adhérents MET" peut avoir affaire dans mon problème . . .

1) dans ton shéma la feuille s'appelle "Adhérents" et non "adhérents MET" (nom du classeur)

2) si je demande la feuille (avec seulement quelques lignes), c'est qu'il y a plusieurs façons de faire et suivant

ce que j'aurais vu, je choisirais la solution la + adéquat.

de plus, il n'est pas utile de transférer les 65000 lignes et le 256 colonnes !

inutile non plus de créer des liaisons malvenues.

tu comprends ?

à te relire

Claude

Bonjour endimanché à dubois,

En fichier joint tu trouveras quelques lignes de la feuille "Adhérents"

Elle est hyper banale avec tout juste une mini formule en colonne AU.

J'espère que cela te suffira car cela fait déjà tout près de 100 ko

Le classeur "Evènements" dans lequel je veux recopier la feuille "Adhérents" fait lui , avec mes procédures, mes Usf et mes autres feuilles plus de 1 Mo.

La structure est celle déjà transmise.

63adherents-met.zip (34.04 Ko)

Bonsoir à tous,

ATTENTION: il y a un bouton en bas de la colonne "W"

sur le fichier à copier, déplace-le en ligne 1 ou en dehors de la plage à copier,

sinon il sera copié à chaque mise à jour.

De même, pour le TextBox en colonne AD

ou alors supprime ces doublons après transfert.

La macro copie à partir de la ligne 2

Code à placer dans le fichier "Evènements" (dans un Module)

Les 2 fichiers doivent être ouverts.

Sub Transfert() 'Les 2 fichiers doivent être ouverts
''Macro par Claude Dubois pour "pelerin98" E-P le 07/02/10
''code à placer dans le fichier receveur des données
Dim Wbk$, Wbk2$, Lg&

    Wbk = ActiveWorkbook.Name 'Ce fichier
    Wbk2 = "adhérents MET.xls" 'données à récupérer
        Application.ScreenUpdating = False
        Application.CutCopyMode = False
    Sheets("Adhérents").Activate

On Error GoTo Fin
    Workbooks(Wbk2).Activate
        With Sheets("Adhérents")
            .Activate
            Lg = .Range("b65536").End(xlUp).Row
            .Range("a2:au" & Lg).Copy
        End With

    Workbooks(Wbk).Activate '(les 2 fichiers sont ouverts)
    Range("a2").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    MsgBox ("Transfert réussi" & Chr(10) & "Pensez à enregistrer")
Exit Sub
Fin: MsgBox ("Erreur, " & Wbk2 & "  n'est pas ouvert !")
End Sub

Amicalement

Claude.

édit: tu devrais faire le ménage dans tous les Modules

édit3:08/02

Une solution + simple, on supprime carrément la feuille "Adhérents" et on importe la nouvelle,

Sub RemplaceFeuille() 'Les 2 fichiers doivent être ouverts
Dim Wbk$, Wbk2$
''Macro par Claude Dubois pour "pelerin98" E-P le 08/02/10
''code à placer dans le fichier receveur des données

        Wbk = ActiveWorkbook.Name 'Ce fichier
        Wbk2 = "adhérents MET.xls" 'données à récupérer

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
On Error GoTo Fin
    Workbooks(Wbk2).Activate
    Workbooks(Wbk).Activate
    Sheets("Adhérents").Delete 'supprime la feuille actuelle
    Workbooks(Wbk2).Activate
    Sheets("Adhérents").Copy Before:=Workbooks(Wbk).Sheets(1)
    MsgBox ("Transfert réussi" & Chr(10) & "Pensez à enregistrer")
Exit Sub
Fin: MsgBox ("Erreur, " & Wbk2 & "  n'est pas ouvert !")
End Sub

à tester,Fichiers test

Claude

68adherents-met.zip (14.90 Ko)

Bonjour dubois,

Merci, je vais tester tout ça . . .

Bonjour dubois,

j'ai retenu la solution n°2

Evidemment . . . ça fonctionne parfaitement !

Puis-je abuser ?

Y a t-il un moyen d'ouvrir automatiquement (par codage VBA) le classeur dans lequel se trouve la feuille des données à récupérer à savoir "adhérents MET.xls" qui se trouvera toujours sur le bureau (desktop) ?

Bonsoir,

Tu dois mettre le chemin complet comme sur cette ligne exemple:

Workbooks.Open Filename:="C:\Users\claude\Forum\" & Wbk2

J'ai ajouté la fermeture du fichier source

Sub RemplaceFeuille()
Dim Wbk$, Wbk2$
''Macro par Claude Dubois pour "pelerin98" E-P le 12/02/10
''code à placer dans le fichier receveur des données
        Wbk = ActiveWorkbook.Name 'Ce fichier
        Wbk2 = "adhérents MET.xls" 'données à récupérer
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
On Error GoTo Fin
Workbooks.Open Filename:="C:\Users\claude\Forum\" & Wbk2

    Workbooks(Wbk).Activate
    Sheets("Adhérents").Delete 'supprime la feuille actuelle
    Workbooks(Wbk2).Activate
    Sheets("Adhérents").Copy Before:=Workbooks(Wbk).Sheets(1)
    MsgBox ("Transfert réussi" & Chr(10) & "Pensez à enregistrer")
    Windows(Wbk2).Close
Exit Sub
Fin: MsgBox ("Erreur, " & Wbk2 & "  n'est pas ouvert !")
End Sub

Amicalement

Claude

Bonjour dubois,

Cette fois, le classeur "adhérent MET.xls" s'ouvre tout seul . . . C'est parfait !

Il me manque encore deux "petites" touches finales pour que ça soit exactement comme je le voudrais :

1) j'aimerais que le message "transfert réussi" apparaîsse sur ma feuille "GE-Accueil" alors qu'il apparaît sur la feuille "Adhérents" J'ai fait de multiples bricolages pour ce faire, mais je n'y arrive pas !

2) Y a t-il possibilité de lancer après le traitement, la demande de sauvegarde et ensuite d'enchaîner sur l'affichage de ma page d'Accueil, à savoir : la feuille "GE-Accueil" ?

Mes fichiers très réduits en pièce jointe.

-- Sam Fév 13, 2010 1:36 pm --

Mon envoi précédent était incomplet.

Voici le bon (j'espère)

35adherents-met.xls (17.00 Ko)
34evenements.zip (15.47 Ko)

Bonjour à tous,

Je t'ai mis un bouton sur la feuille Accueil

Bonne journée

Claude

54evenements2.zip (17.82 Ko)

Désolé, ma vue baisse, je ne vois pas de bouton . . .

en jaune !

11essai.xlsm (17.31 Ko)

Bonsoir dubois (claude),

Merci infiniment .. . tout fonctionne désormais parfaitement grâce à toi !

Alors ! on perd les bonnes habitudes ?

a resolu2
10envoi-mail.xlsm (41.12 Ko)

Bonjour dubois,

avant d'indiquer que ce problème est résolu, une . . . dernière ? question :

Quelle est la syntaxe pour cette fois, copier un document excel s'appelant "Doc1" et contenant 2 feuilles :

"Feuil1" (vide) et "truc" (contenant des données)

en donnant comme nom au nouveau document copié, le nom de la feuile utile du document d'origine,

c'est à dire "truc"

Bonsoir,

J'ai rien compris !

c'est en rapport avec le fichier précédent ? ou c'est autre chose

tu avais fais un schéma de transfert, essaye de le compléter

Claude

tu as raison . . . avec un schéma ça sera plus clair !

37structure.zip (12.17 Ko)

Bonjour,

Ok, une feuille à copier dans Desktop, sous un nom variable

Où sera la variable ? c'est une cellule, une date ?

précise

Claude

Rechercher des sujets similaires à "copie feuille classeur"