Microsoft 365 Liaison entre deux classeur

dubarre

XLDnaute Occasionnel
VB:
Sub Macro1()
     Dim WS As Worksheet

    Cells.Select
    Selection.Clear

    Workbooks.Open Filename:= _
        "C:\Users\DUBARRE\Google Drive\Excel\Arno_Pour_Test\Gestion Artistes\Gestion_des_Artistes_v00.2.xlsm"
        
      
       For Each WS In ActiveWorkbook.Sheets
            WS.Visible = True
        Next

    Sheets("BDD").Select
    Range("A2:AG10000").Select
    Selection.Copy
    Windows("essai_copy.xlsm").Activate
    Range("A1").Select
    ActiveSheet.Paste
    Windows("Gestion_des_Artistes_v00.2.xlsm").Activate
    ActiveWorkbook.Save
    ActiveWindow.Close

    End Sub


Bonjour à tous,

Je viens vers vous car je voulais vous demander si il y a un autre moyen de réaliser le code cité ci-dessus je l’ai fait à ma façon mais j’ai l’impression que ça va alourdir le classeur pouvez-vous me dire ce que vous en pensez s’il vous plaît en vous remerciant d’avance.
 

Pounet95

XLDnaute Occasionnel
Bonjour,
Si je lis bien :
- tu as ouvert un classeur de macro (celui où tu as écrit le code présenté),
Partant de là, tu exécutes la macro avec laquelle
-tu effaces toutes les données de la feuille affichée,
- tu ouvres un classeur "Gestion des artiste ...
- tu rends visibles toutes les feuilles de ce dernier,
- tu sélectionnes la feuille "BDD" pour y copier la plage de cellules "A2:G10000"
- ......... pour la copier en A1 dans la feuille active de ton classeur contenant la macro en cours
- cela fait, tu reviens sur le classeur "Gestion .... pour le sauver et le fermer

Quel est le but recherché ?
Copier la feuille BDD en entier ?
Copier seulement les données présentes ( pas les cellules vides) ?

A tout hasard vois avec ceci ( non testé)
Claude alias Pounet95

VB:
Option Explicit

Sub Importer()
    Dim wbMacro     As Workbook
    Dim wbDonnées   As Workbook
    Dim ws          As Worksheet
    
    'le classeur avec la macro
    Set wbMacro = ThisWorkbook
    'nettoyer la feuille active
    With ActiveSheet
        .Cells.Clear
        .Cells(1, 1).Select
    End With
    
    'ouvre le classeur d'où les données sont importées
    Workbooks.Open Filename:= _
                "C:\Users\DUBARRE\Google Drive\Excel\Arno_Pour_Test\Gestion Artistes\Gestion_des_Artistes_v00.2.xlsm"
    
    Set wbDonnées = ActiveWorkbook
    'Copie les donné de la feuille BDD   on est certain qu'elle existe ????
    Sheets("BDD").Range("A2:AG10000").Copy
    
    'coller dans classeur macro
    wbMacro.Activate
    ActiveSheet.Paste
    
    'Fermer le classeur source
    wbDonnées.Close   ' s'il y a eu des modifs, Excel demandera de sauvegarder !!!
    End Sub
 

dubarre

XLDnaute Occasionnel
Bonjour,

Oui tu as tout à fait compris le but de ce code je t'explique à quoi il va servir j'ai un premier classeur qui a une base de données, dans celui-ci il y aura aussi une base de données différentes et qui se complète avec le premier classeur voilà pourquoi je fais une copie de la base de données du classeur avec la base de données qui va se remplir au fur et à mesure sur le premier et le second classeur consécutivement.

Concernant la feuille qui doit être copiée en faite je fais apparaître tous les onglets et oui la feuille base des données avec le diminutif de BDD existe bien concernant la fermeture du premier classeur il doit se fermer automatiquement et je demande une sauvegarde aussi car sinon je vais devoir cliquer sur ne pas enregistrer ou enregistrer chaque fois j'espère que j'aurais été assez explicite n'hésité pas à revenir vers moi si besoin en vous remerciant.
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Avec office 365 vous avez aussi la possibilité d'utiliser PowerQuery qui ira lire vos données dans le classeur fermé (Onglet du ruban : 'Données' bouton 'Obtenir des données' / 'A partir d'un fichier' / 'A partir d'un classeur Excel' )

Il vous faudra juste cliquer sur actualiser lorsque les données seront à rafraîchir.

Cordialement
 

Pounet95

XLDnaute Occasionnel
Bonjour Roblochon,
Pas très familier de ce genre d'utilisation car jamais eu besoin du temps où j'e travaillais, je viens de chercher l'équivalent avec Office2016. Ca semble être :
Données / Nouvelle Requête/A partir d'un fichier/A partir d'un classeur

Merci , je m'endormirais plus instruit ce soir
Claude alias Pounet95
 

dubarre

XLDnaute Occasionnel
Bonjour à tous merci pour vos réponses mais il faut savoir que la personne qui va utiliser les classeurs souhaite une automatisation temps de voir les actualités à chaque fois donc j'ai trouvé ce code je voulais simplement savoir si on pouvait soit le simplifié sois et est-il correct et ne ralenti par le processus en vous remerciant d'avance
 

Discussions similaires

Réponses
4
Affichages
1 K

Statistiques des forums

Discussions
311 720
Messages
2 081 923
Membres
101 840
dernier inscrit
SamynoT