Datumsformat in 06#03#2019
06.03.2019 10:46:54
Lukossek
Ich hätte da ein kleines Problem, welches ich einfach nicht lösen kann. Vielleicht hat jemand einen
Lösungsvorschlag.
Folgendes versuche ich zu realisieren:
Es gibt eine Anzahl von n Exceldateien, welche immer gleich aufgebaut sind. Dort gibt es einen _
Bereich, welcher den Namen DATA hat. Ist immer eine Zeile, wo die Zellen die Formatierung _
Standard, Text und Datum haben. Diesen Bereich kopiere ich mit folgenden Code in eine _
Mastertabelle:
Function GetConnXLS(ByVal cFileName As String, _
Optional ByVal InformErrMSG As Boolean = False) As ADODB.Connection
On Error GoTo LOI:
'Open ADO connection to excel workbook
Dim oConn As ADODB.Connection
Dim Ext As String, ConnStr As String
Set oConn = New ADODB.Connection
ConnStr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & cFileName & ";" & _
"Extended Properties=""Excel 12.0;HDR=Yes;"";"
oConn.Open ConnStr
Set GetConnXLS = oConn
LOI:
If Err.Number 0 Then
Set oConn = Nothing
If InformErrMSG Then
MsgBox "GetConnXLS" & ": " & Err.Number & " " & Err.Description, vbCritical
End If
End If
End Function
Sub merge_all()
Dim cnn As ADODB.Connection
Dim rst As ADODB.Recordset
Dim sh As Worksheet
Dim I As Long, k As Long, CountFiles As Long, J As Long
Dim files As Variant
files = Application.GetOpenFilename(, , , , True) 'hier wird der Dateiauswahldialog _
geöffnet; Multiselect ok'
If VarType(files) = vbBoolean Then Exit Sub
Set sh = Sheets("Planung") 'Tabellenblatt Planung in Variable; ist Ausgabeblatt'
For k = LBound(files) To UBound(files) 'hier Beginn Schleife für ausgewählte Dateien; _
müsste Array sein'
Set cnn = GetConnXLS(files(k)) 'variable cnn; Wert aus Array
If cnn Is Nothing Then
MsgBox "Textbox aus Sub merge: " & files(k)
Exit Sub
End If
Set rst = cnn.Execute("SELECT *,""" & files(k) & """ as [From File] FROM DATA") _
'ein recordset'
CountFiles = CountFiles + 1 'Anzahl der markierten Dateien'
For J = 0 To rst.Fields.Count - 1 'hier werden die notwendigen Spalten ermittelt
sh.Cells(CountFiles + 1, J + 1).Value = rst.Fields(J).Name
'cells(Zahl, Buchstabe; Beginn B2); das schreibt die Werte aus DATA in Planung
Next J
rst.Close
Set rst = Nothing
cnn.Close
Set cnn = Nothing
Next k 'Schleife K für nächste Datei
MsgBox "Done"
End Sub
Sind noch ein paar Kommentierungen dabei, damit ich verstehe, was da passiert. Hoffe ich zu mindestens...
Das funktioniert auch so.
Aber das Datum wird aus dem Namensbereich DATA, dort ist es mit dem Format 06.03.2019 eingetragen, in die
Mastertabelle als 06#03#2019 eingetragen.
Ich verstehe nicht, warum das passiert und wie könnte ich das Problem lösen?
Vielen Dank für die Hilfe!
Gruß
Günter