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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
'Ajouter Microsoft Excel9 library dans les références Visual Basic
Dim VbleTxtErreur As String
On Error GoTo erreur:
Dim MonExcel As Excel.Application, ExlWb As Excel.Workbook
Dim Db As Database
DoCmd.SetWarnings False
Set Db = CurrentDb
'Pour l'exemple j'importe un classeur avec 4 champs
' le premier contenant une date
' le deuxième un nombre avec un séparateur "."
' le troisième avec un séparateur ","
' le quatrième du texte
'Ouvre excel
Set MonExcel = New Excel.Application
'Désactive les message d'alerte Excel
MonExcel.DisplayAlerts = False
'Ouvre le fichier source qui contient les caractères "." a modifier
Set ExlWb = MonExcel.Workbooks.Open(Filename:="C:\Test2\Classeur2.xls")
'Ouvre le répertoire ou se trouve le fichier
ChDir "C:\Test2"
'enregistre le classeur source sous un autre nom avant les modifications
ActiveWorkbook.SaveAs Filename:="C:\Test2\Classeur.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
'commence les modifications
'selectionne un onglet
Sheets("Feuil1").Select
'positionne le pointeur sur la premiere cellule
Range("A1").Select
'selectionne la seconde colonne elle se nomme (C2) ou "B:B"
Columns("B:B").Select
'effectue le remplacement de la valeur point par virgule dans la colonne "B"
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
' positionne a nouveau sur la premiere cellule de la feuille de calcul
Range("A1").Select
'enregistre le travail effectué
ActiveWorkbook.Save
'referme les classeurs ouverts
ActiveWorkbooks.Close
'réactive les message d'allerte Excel
MonExcel.DisplayAlerts = True
'Quitter Excel
'Vide le cache mémoire
Set MonExcel = Nothing
'importe le fichier Excel contenant les valeurs . changer en virgule
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "Feuil1", "C:\Test2\Classeur.xls", True
'réactive les message d'allerte Windows
Set Db = Nothing
Exit Function
'Message d'information sur les erreurs
erreur:
VbleTxtErreur = Err.Number & Err.Description & Err.Source
MsgBox (VbleTxtErreur)
Exit Function
End Function |
Partager