Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Importer via vba les données et la mise en forme d'une feuille dans un autre classeur

Jefflet

XLDnaute Nouveau
Bonjour à toutes et tous,

Je suis à la recherche d'une macro qui me permettrait d'importer les données présentes sur une feuille tout en gardant la mise en forme dans une feuille nommée CIBLE
Lorsque l'utilisateur active la macro sur le fichier cible cela lui importe l'ensemble des informations du fichier source (données et source)
En exemple le fichier source et cible.

Merci à vous,

Jean-François
 

Pièces jointes

  • CIBLE.xlsx
    8.2 KB · Affichages: 4
  • SOURCE.xlsx
    16.8 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Lorsque l'utilisateur active la macro sur le fichier cible cela lui importe l'ensemble des informations du fichier source (données et source)
Cela revient à copier la feuille de Source vers Cible.
Un essai en PJ, les deux fichier doivent être dans le même dossier, avec :
VB:
Sub Importer()
    Application.ScreenUpdating = False
    NomFichier = "Source.xlsx"
    FichierCourant = ThisWorkbook.Name
    Workbooks.Open ThisWorkbook.Path & "\" & NomFichier
    Workbooks(FichierCourant).Activate
    Set Source = Workbooks(NomFichier)
    Set Cible = Workbooks(FichierCourant)
    Source.Sheets("Source").Copy after:=Cible.Sheets(Worksheets.Count)  ' Copie la feuille source
    Application.CutCopyMode = False
    Workbooks(NomFichier).Close Savechanges:=False                      ' Ferme le fichier source sans enregistrer
    Application.DisplayAlerts = False
    Sheets("Source").Delete                                             ' Supprime la feuille Source
    ActiveSheet.Name = "Source"                                         ' Renomme la nouvelle feuille Source
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub
 

Pièces jointes

  • CIBLE.xlsm
    14.8 KB · Affichages: 4

Jefflet

XLDnaute Nouveau
Et quand les deux fichiers ne se trouvent pas dans le même dossier ?
Je souhaite avoir un dossier sur un serveur partagé et l'autre sur mon drive

Merci à vous
 

Jefflet

XLDnaute Nouveau
Bonjour,

Merci beaucoup pour l'aide.
Comme vous avez pu le constater je suis novice sur le sujet, pourriez-vous m'écrire le code avec les liens dans la formule svp car quand je le réalise cela ne fonctionne pas.

Merci à vous,


Le nom du fichier source est source.xlsm et cible.xlsm

exemple de lien pour les inclure dans le code
https://adressedufichiersource
https://adressedufichiercible

Merci à vous,

Jefflet

Sub Importer()
Application.ScreenUpdating = False
NomFichier = "Source.xlsx"
FichierCourant = ThisWorkbook.Name
Workbooks.Open ThisWorkbook.Path & "\" & NomFichier
Workbooks(FichierCourant).Activate
Set Source = Workbooks(NomFichier)
Set Cible = Workbooks(FichierCourant)
Source.Sheets("Source").Copy after:=Cible.Sheets(Worksheets.Count) ' Copie la feuille source
Application.CutCopyMode = False
Workbooks(NomFichier).Close Savechanges:=False ' Ferme le fichier source sans enregistrer
Application.DisplayAlerts = False
Sheets("Source").Delete ' Supprime la feuille Source
ActiveSheet.Name = "Source" ' Renomme la nouvelle feuille Source
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Tentez de remplacer cette ligne par :
VB:
Workbooks.Open "https://adressedufichiersource"
mais je ne suis pas certain que ça marche avec un fichier sur internet, fusse un serveur.
Si votre serveur est interne, il doit avoir une autre appellation avec le nom du serveur. A tester.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…