Macro important des données dans différents onglets

Bonjour,

Je souhaiterai adapter une macro que j'utilise pour que depuis un fichier Excel je puisse importer les données d'un autre fichier Excel.

(Code déjà utilisé que je souhaiterais adapter : La macro permet de sélectionner un fichier, après la sélection une plage de ce fichier est copié puis collée à l'emplacement de destination)

Sub Choix_du_Fichier()

Application.ScreenUpdating = False

Dim FichierSource As Variant
Dim WbSource As Workbook
Dim ShCible As Worksheet

    On Error GoTo Fin

    Set ShCible = Sheets("Données")
    FichierSource = Application.GetOpenFilename("Fichiers (*.xlsm),*.xls")

    If FichierSource = False Then GoTo Fin

    Set WbSource = Workbooks.Open(FichierSource)
    With WbSource
         .Sheets("1").Range("A1:AJ1000").Copy Destination:=ShCible.Range("A1")
         .Close False
    End With

    MsgBox "Import terminé"
    GoTo Fin

Fin:

    Set ShCible = Nothing
    Set WbSource = Nothing

Application.ScreenUpdating = True

End Sub

1. Je souhaiterai pouvoir copier puis faire un "collage spécial - Valeurs' des cellules copiées.

image

(La formule que j'utilise pose un problème lorsqu'il y a des formules dans les cellules du fichier à importer)

.Sheets("1").Range("A1:AJ1000").Copy Destination:=ShCible.Range("A1")

2. Je souhaiterai pouvoir faire plusieurs copier coller dans différents onglets :

image

Je vous remercie par avance.

Cordialement.

Olivier

Bonjour,

La macro que vous citez peut effectivement permettre de sélectionner un fichier pour en extraire les données.puis de les coller dans un fichier cible.

Néanmoins avec ça on ne peut pas faire grand chose.

On ne sait rien du fichier cible, quand aux données que vous voulez saupoudrer à droite ou à gauche c'est encore pus nébuleux.

J'ai bien compris qu'il faut utiliser une méthode du genre "Collage spécial valeur" à cause du problème des formules. Cependant ça n'en dit pas plus sur le fichier cible, ni sur la manière de dispatcher les données ici ou là.

De plus s'agissant de Collage Valeur, il est possible vs / probable qu'il faudra tenir compte de nombreux autres paramètres.

La macro que vous citez, ne devient alors qu'un tout petit bout infime (la partie visible de l'iceberg !) La nature, la présentations des données à importer devient alors

essentielles. Il faudra donc également tenir compte de la distribution de ces données dans les différents onglets.

Toutes ces petites choses ne peuvent être appréhendées dans votre explication. Je ne vois donc pas comment on peut vous venir en aide. avec cette présentation.

Pour aller plus loin il faudrait à mon sens un aperçu explicite des données importées ( en masquant éventuellement des données nominatives ) mais surtout suffisamment détaillées pour révéler les parties sensibles susceptibles d'entraîner des problèmes. Je pense particulièrement à des problèmes de date ou de fusion, mais il pourraient y en avoir d'autres... Et une descriptions détaillées onglet par onglet, plage par plage des différentes données à dispatcher...

A+

Bonjour,

La Copie/Colle en VBA se passe en 2 temps. D'abord la copie, toujours identique .Copy, meme pour les formats de cellule. Remarquez que d'après l'aide Range.Copy method (Excel) | Microsoft Learn l'argument destination est optionnel, vous n'etes pas obligé de le renseigner maintenant.

Puis le collage, qui lui prend plusieurs arguments: Range.PasteSpecial method (Excel) | Microsoft Learn

Ainsi pour adapter votre code, changez

.Sheets("1").Range("A1:AJ1000").Copy Destination:=ShCible.Range("A1")

en

.Sheets("1").Range("A1:AJ1000").Copy
ShCible.Range("A1").PasteSpecial Paste:=xlPasteValues
Rechercher des sujets similaires à "macro important donnees differents onglets"