Macro pour copier coller des onglets de différents fichiers [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
vendredi 31 janvier 2014
Statut
Membre
Dernière intervention
5 février 2014
-
Messages postés
4
Date d'inscription
vendredi 31 janvier 2014
Statut
Membre
Dernière intervention
5 février 2014
-
Bonjour,

totalement novice en VBA, j'essaye de créer une macro VBA qui, à partir d'une liste de noms (nom!1, nom2,...), me crée des onglets portant ces noms, et qui devrait copier les données d'un onglet d'un autre fichier (ayant le même nom que l'onglet créée) dans l'onglet nouvellement crée!

En récupérant des informations je suis arrivé à:
Sub creerFeuilles()
Dim curCell As Range
Set curCell = ThisWorkbook.Sheets("Menu").Range("A3")
nom_path = Range("B1")
While curCell.Value <> vbNullString
    ThisWorkbook.Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = curCell.Value & " " & curCell.Offset(0, 1).Value
    ThisWorkbook.Sheets("Menu").Hyperlinks.Add Anchor:=curCell.Offset(0, 2), Address:="", SubAddress:= _
        "'" & ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name & "'!A1", TextToDisplay:="Go to"
    
    Workbooks.Open Filename:=nom_path & curCell.Value & ".xls"
    
    Workbooks(curCell.Value & ".xls").Worksheets("Profit  Loss").Cells.Copy _
    Workbooks("1. Conversion.xlsm").Worksheets(curCell.Value).Range("A1")
    Workbooks(nom_salon & ".xls").Close False

        Set curCell = curCell.Offset(1, 0)

Wend
ThisWorkbook.Sheets("Menu").Select
End Sub



Ce qui ne marche pas!
j'ai l'impression que la macro ouvre tous les fichiers sources, avant de faire les copier/coller, ce qui fait buger la macro!

Et j'arrive à la limite de mes compétences, je ne sais pas comment mettre cette macro à jour!

Toute aide serait grandement appréciée

un grand merci d'avance

2 réponses

Messages postés
16303
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
20 novembre 2020
3 073
Bonjour,
du mal à s'y retrouver dans les noms de classeur:
Nom_salon ????
1. Conversion + thisworkbook ???

Pourquoi des liens hypertexte ?

Combien de "sources" à copier ?

Les feuilles à copier sont elles des listes (bases) de données avec le m^me nombre de colonnes?

Joindre une feuille type à copier

D'avance merci


Messages postés
4
Date d'inscription
vendredi 31 janvier 2014
Statut
Membre
Dernière intervention
5 février 2014

Bonjour,

oui, c'est trés fouilli!

Alors, oui "1. conversion" est le fichier sur lequel je travaille, donc je pense que cela doit bien être thisworkbook

Le lien hypertexte est là pour me pertmettre d'accéder directement à l'onglet de la société une fois mise à jour.

Le but de cette macro est de récupérer les données de toutes les sociétés que j'aurais listées sur le 1er onglet. Il y aura donc autant de fichiers sources que de nom dans la liste.
Tous les fichiers sources ont un format similaire (Profit & Loss).

Voici mon fichier source type:
https://www.cjoint.com/?3BdeCXhANtn

Merci!
Messages postés
16303
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
20 novembre 2020
3 073
Bonjour,

Suis absent toute la journée... Sois patient, Merci

Avec le décalage horaire....
Messages postés
4
Date d'inscription
vendredi 31 janvier 2014
Statut
Membre
Dernière intervention
5 février 2014

Bonjour,

Pas de soucis, le décalage complique effectivement un peu tout!

Merci de prendre le temps pour mon problèmen!
Messages postés
16303
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
20 novembre 2020
3 073
Bonjour,

Tu écris
ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = curCell.Value & " " & curCell.Offset(0, 1).Value
soit par ex "nom_1 X1"

et + loin (pour coller)
Workbooks("1. Conversion.xlsm").Worksheets(curCell.Value).Range("A1")
soit "nom_1"
cet onglet n'existe pas puisque nommé + haut "nom_1 X1"

le lien hypertexte parait également bizarre

ou alors, j'ai mal compris....
Messages postés
4
Date d'inscription
vendredi 31 janvier 2014
Statut
Membre
Dernière intervention
5 février 2014

Bonjour Michel,

un énorme merci d'avoir pointé ça!
j'ai supprimé la partie que tu avais mise en gras( soit & " " & curCell.Offset(0, 1).Value) et cela marche parfaitement!

Un énorme merci

Pour le lien hypertexte, c'est le copier / coller d'un code que j'avais trouvé, et il marche trés bien!