Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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

Ctrl C, Ctrl V nach Excel

Ctrl C, Ctrl V nach Excel
10.06.2022 00:03:45
Klaus
Hi Herbers, ein Makro, das oft nicht fehlerfrei funktioniert

Sub TextBox1_Change()
Dim zeile, Zeilen
Dim Zahl, Zahlen
Dim CalcMem
CalcMem = Application.Calculation
Application.Calculation = xlCalculationManual
Zeilen = Split(TextBox1.Text, vbCr)
For zeile = 1 To UBound(Zeilen) + 1
Zahlen = Split(Zeilen(zeile - 1), ",")
For Zahl = 1 To UBound(Zahlen) + 1
Me.Cells(zeile, Zahl) = CDbl(Replace(Zahlen(Zahl - 1), ".", ","))
Next
Next
'    Application.EnableEvents = False
'    TextBox1.Text = ""
'    Application.EnableEvents = True
Application.Calculation = CalcMem
End Sub
wird mit Ctrl C und Ctrl V in die TxtBox1 geschrieben, um dann A1 bis I9 = 9 Spalten mal 9 Zeilen mit Komma, statt Punkt zu füllen. Denkbar sind auch eine einzulesende csv oder txt, die mit Komma in A1 ... I9, nicht von Hand, sondern VBA ! eingefügt werden sollte. Danke, Klaus

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

Betreff
Datum
Anwender
Anzeige
AW: Ctrl C, Ctrl V nach Excel
10.06.2022 09:25:58
Daniel
Hi
und was ist jetzt das Problem? Was heißt "funktioniert nicht immer" konkret? wann funktioniert es und wann nicht?
nur so als Tip:
1. würde ich sowas nicht in Change-Event der Textbox schreiben, sondern beim Verlassen der Textbox oder über einen Button.
Change läuft bei jeder Änderung los, also auch bei jedem Zeichen, dass du eintippst
2. der Zeilenumbruch in der Textbox ist in der Regel die Kombination aus vbCf (Code 13) vbLF (Code 10), ist auch hinterlegt als vbCrLf, allerdings muss das nicht immer so sein, möglich ist in Excel auch der vbLf alleine (so in den Zellen). Wenn jetzt also der vbCrLf verwendet wird und du nur den vbCr als Trennzeichen hast, nimmst du dir den vbLf in die Zelle mit, hier solltest du noch bereinigen.
ich würde, um allen möglichen Fälle von möglichen Zeilenumbrüchen abzudecken, hier so vorgehen:

txt = Textbox1.Text
txt = Replace(txt, vbCrLf, "|")
txt = Replace(txt, vbCr, "|")
txt = Replace(txt, vbLf, "|")
Zeilen = Split(txt, "|")
3. lass das CDbl weg und gib den Text direkt in die Zellen. du hast die Zahlen im amerikanischen Format vorliegen, also kannst du sie direkt in die Zellen schreiben und die Umwandlung die Excelautomatik lassen machen. dann bekommst du auch keinen Fehler, falls ein Wert mal keine Zahl ist, also einfach

Me.Cells(zeile, Zahl).Formula = Zahlen(Zahl - 1)
ansonsten solltest du das CDbl absichern, dh nach dem Schema:

IF InNumeric(x) then ... CDbl(x) ...
Gruß Daniel
Anzeige
AW: Ctrl C, Ctrl V nach Excel
10.06.2022 12:05:08
Klaus
Danke Daniel, das System ist einfach instabil. Nach dem's mal fehlerfrei, mal mit einem Compilerfehler abbricht und mal sogar überhaupt nicht reagiert, habe noch nicht verstanden. Ich kopiere (copy und paste) immer einen Block von 81 csv mit Punkt als Dezimaltrenner. Ich prüfe mal weiter - auch andere Lösungen. Gruß Klaus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige