Problème d'importation de fichier Excel par macro
Bonjour,
j'ai fait une macro qui me permettrait de copier un fichier sélectionné sur le disque directement à une feuille de calcul en l'appliquant à un bouton de commande, je rencontre trois difficultés :
1 - une boîte de dialogue apparaît pour demander à l'utilisateur de sélectionner le fichier, je ne sais pas comment utiliser le fichier directement sans passer par
Code:
Application.Dialogs(xlDialogOpen).Show(Chemin & "Export tempo\réseau en cours.xl*")
J'aimerais que les données soient importées directement sans demander d'ouvrir le fichier. Est ce que c'est possible ?
2-Après avoir sélectionné le fichier, une boîte de dialogue apparaît pour gérer l'import (choisir le format, le séparateur des colonnes), j'aimerais éviter cela.
3-La macro n'importe pas correctement le format de date, les dates ne sont plus toutes regroupées par année, du coup cela me fausse le filtre sur la date, c'est le plus embêtant !
Pourriez vous m'aider svp ?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| 'DestBook = classeur de dstination et SourceBook=classeur source
Dim DestBook As Workbook, SourceBook As Workbook
Dim DestCell As Range
Dim RetVal As Boolean
Dim Chemin As String
' désactiver le rafraichissement de l'écran avant la macro
Application.ScreenUpdating = False
'chemin en relatif du dossier ou se trouve tes données
Chemin = "C:\"
' Set object variables for the active book and active cell.
Set DestBook = ActiveWorkbook
Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).ClearContents
Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).ClearFormats
Set DestCell = Range("A1") 'active la cellule où j'aimerais copier les données
'Ouvre la boîte de dialogue
RetVal = Application.Dialogs(xlDialogOpen).Show(Chemin & "Export tempo\réseau en cours.xl*")
' If Retval is false (Open dialog canceled), exit the procedure.
If RetVal = False Then Exit Sub
' active le classeur à partir duquel copier les données
Set SourceBook = ActiveWorkbook
' copie entièrement la feuille de calcul
Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy
' Active la feuille de destination et une cellule de cette feuille
DestBook.Activate
DestCell.Activate
ActiveSheet.Paste
'colle les formats et les valeurs des cellules
Selection.PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
SourceBook.Close False
Application.ScreenUpdating = True
Application.DisplayAlerts = False
ActiveSheet.Name = "en cours liste complète réseau"
' Ferme le classeur contenant les données à copiée |
Merci d'avance pour votre aide