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

Copy Paste Problem mit VBA

Copy Paste Problem mit VBA
08.08.2008 15:10:35
Chris
Hallo Leute,
ich habe ein Makro geschrieben, das ein aus SAP gezogenes Spreadsheet in ein formatiertes Excel File umwandelt.
Jetzt taucht plötzlich folgendes Problem auf:
Ein String wird in Zelle "A1" geschrieben, der Buchstaben und steuercode enthält.
D.H. ich habe in dieser Zelle alle Werte inclusive aller TAB's der gesamten Zeile stehen.
Beispiel: Sichtbar ist in dieser Zelle:
AutoOpel2500EUR
Eigentlich gehört dieser Text verteilt auf 4 Zellen:
Auto Opel 2500 EUR
Der String enthält aber die Informationen:
"Auto<TAB>Opel<TAB>2500<TAB>EUR"
Per Hand kann ich den Fehler einfach beheben, indem ich aus dem String den Teil hinter dem ersten Text heraus schneide und dan einfach in die erste Zelle der Zeile hereinkopiere
D.h. ich schneide mir mit "Strg+x" <TAB>Opel<TAB>2500<TAB>EUR ab und kopiere ihn in die erste Zelle und die Werte werden schön auf die Zelle B1, C1 und D1 verteilt. Dann schreibe ich in Zelle A1 das zuvor gemerkte "Auto"
Das habe ich jetzt versucht mit VBA nachzubasteln:
AA = Selection.Value
If Len(AA) > 4 Then
AA1 = Left$(AA, 4)
AA2 = Right$(AA, Len(AA) - 4)
ActiveCell.Value = AA2
ActiveCell.Value = AA1
End If
Leider verliert bei dieser Programmierung der String die "Tabs" für die nächtes Zellen.
Könnt Ihr mir weiterhelfen?
Vielen Dank
Chris

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy Paste Problem mit VBA
08.08.2008 15:35:00
Lars
Hi,
steht der String wirklich so:
"AutoOpel2500EUR"
also auch mit den "" in der Zelle?
mfg Lars

AW: Copy Paste Problem mit VBA
08.08.2008 16:34:16
Chris
Nein ohne ""

AW: Copy Paste Problem mit VBA
08.08.2008 16:44:38
Lars
Hi,
lies die Antwort von Horst, schneller und einfacher gehts nicht.
mfg Lars

Zellen splitten
08.08.2008 15:48:00
Backowe
Hi Chris,
probiere es mal so:
VBA-Code:
Sub ZellenSplitten()
Dim Zelle As Range
Dim Ergebnis As Variant
Dim i As Long
For Each Zelle In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
  Ergebnis = Split(Zelle, "<TAB>")
  For i = 0 To UBound(Ergebnis)
    Cells(Zelle.Row, 2 + i) = Ergebnis(i)
  Next
Next
End Sub
Gruss Jürgen

Anzeige
Code angepasst!
08.08.2008 16:40:00
Backowe
Hi Chris,
VBA-Code:
Sub ZellenSplitten()
Dim Zelle As Range
Dim Ergebnis As Variant
Dim i As Long
For Each Zelle In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row)
  Ergebnis = Split(Application.Substitute(Zelle, """", ""), "<TAB>")
  For i = 0 To UBound(Ergebnis)
    Cells(Zelle.Row, 2 + i) = Ergebnis(i)
  Next
Next
Columns(1).Delete
End Sub
Gruss Jürgen

Anzeige
AW: Copy Paste Problem mit VBA
08.08.2008 16:17:47
Horst
Hi,

Sub Splitter()
''Das sagt der Makrorekorder
Cells.Replace What:="", Replacement:=" ", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True
End Sub


mfg Horst

Anzeige
AW: Copy Paste Problem mit VBA
08.08.2008 17:18:15
Chris
Hallo Horst,
Super, das bringt mich um einiges weiter und...
mit kleiner Abänderung funktioniert das schon ganz gut.... statt Space= True -> Tab=True
Selection.TextToColumns Destination:=Range("A547"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1)), TrailingMinusNumbers:= _
True
Die <TAB> in meinem Beispiel sind von mir Platzhalter für die Steuerzeichen Tab im String
In meinem echten String sind aber leider auch mehrfach Tabs hintereinander. - <TAB> steht für Nächste Zelle
Um bei meinem Beispiel zu bleiben:
Auto<TAB><TAB>Opel<TAB>2500<TAB><TAB><TAB>EUR
Eigentlich möchte ich das die leeren Zellen auch leer bleiben, also das nach dem auslesen folgendes Ergebnis steht:
A1 B1 C1 D1 E1 F1 G1
Auto "Leer" Opel 2500 "Leer" "Leer" EUR
Wenn dieses Ergebnis erreicht ist, dann ist mein Problem gelöst :c)
Chris

Anzeige
AW: ConsecutiveDelimiter
08.08.2008 18:00:00
Erich
Hi Chris,
dann solltest du
ConsecutiveDelimiter:=True
umstellen in
ConsecutiveDelimiter:=False
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: ConsecutiveDelimiter
12.08.2008 13:04:00
Chris
Erich,
ich habe gerade erst die Zeit gehabt zum testen - Super funktioniert!!!!
Vielen Dank
Grüsse aus Schumi-Town Kerpen ;c)
Chris

AW: ConsecutiveDelimiter
12.08.2008 13:04:00
Chris
Erich,
ich habe gerade erst die Zeit gehabt zum testen - Super funktioniert!!!!
Vielen Dank
Grüsse aus Schumi-Town Kerpen ;c)
Chris

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige