Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Dezimalzahlen aus Zwischenablage einfügen

VBA Dezimalzahlen aus Zwischenablage einfügen
23.05.2016 19:00:42
Thomas
Hallo,
ich ziehe mir aus einem externen System jeden Tag Reports, welche als durch TABULATOR-getrennte Datensaetze an die Zwischenablage ausgegeben werden. Ein Beispieldatensatz habe ich als TXT beigefügt.
Wenn ich diese Daten aus der Zwischenablage per STRG+V in Excel einfüge, so werden die Daten richtig erfasst (siehe Grafik, oberer Teil). Füge ich die Daten allerdings per Makro in die Tabelle ein, so erkennt VBA/Excel die Kommas als 1.000-Trennzeichen und fügt daher recht seltsame Ergebnisse ein. Hat jemand eine Idee, wie ich das umgehen kann?
PS: Ich will die Daten aus der Zwischenablage nicht in einer Datei zwischenspeichern. Ansätze wie DecimalSeparator = "," scheinen bei mir nicht zu funktionieren...
Beispiel-Datensatz:
https://www.herber.de/bbs/user/105750.txt
Meine Ergebnisse (oben richtig, unten falsch):
Userbild
Hilfe :P

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Dezimalzahlen aus Zwischenablage einfügen
23.05.2016 21:05:32
Arthur
Hallo Thomas.
Versuchs mal in diese Richtung:
Sub abc()
Dim ltStr As String, lvStr As Variant
Dim llRow As Long
llRow = 1
Open "x:\105750.txt" For Input As #1
Do While Not EOF(1)    ' Schleife bis Dateiende.
Input #1, ltStr
lvStr = Split(ltStr, vbTab)
ActiveSheet.Range(Cells(llRow, 1).Address & ":" & Cells(llRow, UBound(lvStr) + 1). _
Address) = lvStr
llRow = llRow + 1
Loop
Close #1
End Sub
ps: Die Adressierung des Zielbereichs sieht für mich merkwürdig aus. Am Ende des Tags fällt mir leider nichts besseres ein :).
Gruß, Arthur.

Anzeige
AW: VBA Dezimalzahlen aus Zwischenablage einfügen
23.05.2016 23:39:11
Thomas
Hallo,
danke für den Beispieltext. Er importiert eine Textdatei (ja, die Zellzuordnung müsste man noch sortieren^^). Allerdings werden so alle Zellen als Text gespeichert. Ich hätte die Zahlen gern im Standardformat.
Ich habe zum Import aus einer Textdatei folgenden Code verwendet:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\sample.txt", Destination:=Range("$A$1"))
'.CommandType = 0
.Name = "sample"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Dieser Ansatz funktioniert auch. Allerdings möchte ich die Daten nicht erst in eine Textdatei und dann erst in Excel, sondern ich möchte die Daten direkt aus der Zwischenablage importieren.
Die Befehle Paste bzw. PasteSpecial haben mir bisher nicht wirklich weitergeholfen :(
Anzeige

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige