Macro pour copier coller des onglets de différents fichiers

Résolu
yvon2014 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
yvon2014 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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


0
yvon2014 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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!
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

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

Avec le décalage horaire....
0
yvon2014 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

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

Merci de prendre le temps pour mon problèmen!
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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....
0
yvon2014 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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!
0