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

XL 2019 Fichier = Fichier

Arnaud59000

XLDnaute Nouveau
Bonjour tout le monde !

Me voilà avec le nouveau problème du moment !

La macro suivante :

VB:
Sub ImportBDDCM()

    Dim Fichier As String
    
    'Acceleration du traitement des données
    Application.ScreenUpdating = False

    
    Fichier = Application.GetOpenFilename(FileFilter:=" Excel Files ( *.xlsx;*.xlsm;*.csv), ( *.xlsx*.xls), All Files, *.*", FilterIndex:=1)
    
    If Fichier = False Then Exit Sub ' si tu annules

    Workbooks.Open Filename:=Fichier

    'supprime le chemin
    Fichier = Dir(Fichier)

    'Copie données fichier d'entrée vers fichier de sortie
    Workbooks("Suivi WF").Sheets("BDDCM").Range("A1:T4000").Value = Workbooks(Fichier).Sheets(1).Range("A1:T4000").Value

    'Fermeture du classeur
    ActiveWorkbook.Close

    MsgBox ("Import Terminé")



End Sub

Me permet "d'importer" des données d'un fichier vers un autre. Cependant si mon fichier "source" (celui de droite dans la copie) est en CSV, excel ne me fait pas la transformation des données ? Avez-vous une idée pour que la macro le fasse ou je dois obligatoirement passer par l'onglet "données, importer des données, ..."

Bonne journée à vous
 
Solution
Re,

J'ai eu un coup de main pour trouver la solution que voici :

VB:
Sub ImportBDDCM()

    Dim Fichier As String
    
    'Acceleration du traitement des données
    Application.ScreenUpdating = False

    
    Fichier = Application.GetOpenFilename("Fichiers csv, *.csv")
    
    If Fichier = "" Then Exit Sub ' si tu annules

    'Transcrit le csv en tableau
    Workbooks.OpenText Filename:=Fichier, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True

    'supprime le chemin
    Fichier = Dir(Fichier)

    'Copie données fichier d'entrée vers fichier de sortie
    Workbooks("Suivi WF").Sheets("BDDCM").Range("A1:T4000").Value = ActiveSheet.Range("A1:T4000").Value

    'Fermeture du classeur...

Arnaud59000

XLDnaute Nouveau
Re,

J'ai eu un coup de main pour trouver la solution que voici :

VB:
Sub ImportBDDCM()

    Dim Fichier As String
    
    'Acceleration du traitement des données
    Application.ScreenUpdating = False

    
    Fichier = Application.GetOpenFilename("Fichiers csv, *.csv")
    
    If Fichier = "" Then Exit Sub ' si tu annules

    'Transcrit le csv en tableau
    Workbooks.OpenText Filename:=Fichier, Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, Local:=True, Semicolon:=True

    'supprime le chemin
    Fichier = Dir(Fichier)

    'Copie données fichier d'entrée vers fichier de sortie
    Workbooks("Suivi WF").Sheets("BDDCM").Range("A1:T4000").Value = ActiveSheet.Range("A1:T4000").Value

    'Fermeture du classeur
    ActiveWorkbook.Close

    MsgBox ("Import Terminé")



End Sub
 

patricktoulon

XLDnaute Barbatruc
Bonjour

VB:
'supprime le chemin
    Fichier = Dir(Fichier)
qui a bien pu te dire que la fonction dir supprimait le chemin ?????
c'est harchi faux


ensuite essai à tout hasard
Code:
Workbooks.Open Filename:=Fichier, local:=true
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
748
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…