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
| 'Se connecte au fichier texte sélectionné
oCnn.Driver = "{Microsoft Text Driver (*.txt; *.csv)};Extensions=asc,csv,tab,txt"
oCnn.Connexion ("DefaultDir=" & dirname(csvFileName) & ";Extended Properties=""Excel 8.0;MaxScanRows=0;HDR=YES;IMEX=1""")
'Récupère les données
Set oRec = oCnn.OpenRecordSet("SELECT * FROM [" & ExtractFileName(csvFileName) & "]")
Application.ScreenUpdating = False 'Optimise le traitement de la Macro
Do While Not oRec.EOF
iCurRow = iCurRow + 1
iCurCol = 0
'liste des colonnes de FrmFB avec la correspondance pour le fichier texte
cSourceCols.moveFirst
Do
iCurCol = iCurCol + 1
If (cSourceCols.Current.SourceName <> "") Then
If (cSourceCols.Current.name = cstKeyBonusCible) Then
iColBonus = iCurCol
End If
On Error Resume Next
If (cSourceCols.Current.datatype = "date") Then
wsFB.Cells(iCurRow, iCurCol) = IIf(IsNull(oRec.Fields(cSourceCols.Current.SourceName).Value), "", CDate(oRec.Fields(cSourceCols.Current.SourceName).Value))
ElseIf (cSourceCols.Current.datatype = "numeric") Then
wsFB.Cells(iCurRow, iCurCol) = CDbl(IIf(IsNull(oRec.Fields(cSourceCols.Current.SourceName).Value), "0", oRec.Fields(cSourceCols.Current.SourceName).Value))
Else
wsFB.Cells(iCurRow, iCurCol) = IIf(IsNull(oRec.Fields(cSourceCols.Current.SourceName).Value), "", oRec.Fields(cSourceCols.Current.SourceName).Value)
End If
If (cSourceCols.Current.datatype = "mixed") And (wsFB.Cells(iCurRow, iCurCol) <> "") Then
wsFB.Cells(iCurRow, iCurCol) = "'" & wsFB.Cells(iCurRow, iCurCol)
End If
On Error GoTo 0
End If
If (cSourceCols.Current.name = cstKeySalaire) Then
iColTotal = iCurCol
End If
Loop Until Not cSourceCols.moveNext |
Partager