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.
(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 :
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