1
Excel / Antw:Office 2013: Daten einer Zelle auf mehrere aufteilen Automatisch.
« am: November 12, 2015, 08:22:04 Vormittag »
Hallo Alle zusammen.
So hab mich gestern Abend mit einem Bekannten zusammen gesetzt um das Problem mit einen VBA Code zu Lösen.
Das funktioniert echt super.
Hier der VBA Code für die ihn brauchen könnten.
MFG
Christoph
So hab mich gestern Abend mit einem Bekannten zusammen gesetzt um das Problem mit einen VBA Code zu Lösen.
Das funktioniert echt super.
Hier der VBA Code für die ihn brauchen könnten.
Code: [Auswählen]
' Initale Generierung der Daten über die Komplette Tabelle
Sub init()
Dim Zeile As Integer
Zeile = 14
While Cells(Zeile, 2) <> ""
If Cells(Zeile, 6) <> "" Then
Call splitData(Zeile)
End If
Zeile = Zeile + 1
Wend
End Sub
' Aktualisierung der Daten bei änderung der Zelle
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 6 And Target.Column = 6 Then
For i = 0 To 8
Cells(Target.Row, i + 7) = ""
Next i
Call splitData(Target.Row)
End If
End Sub
' Daten aus Spalte 6/F der jeweiligen Zeile auslesen
' Zerlegen und die die weiteren Spalten eintragen
Sub splitData(Zeilennummer As Integer)
Dim line As String
Dim WrdArray() As String
Dim WrdArray2() As String
Dim StaArray
Dim EndArray
' Zelle einlesen
line = Cells(Zeilennummer, 6).Value
' Zerlegen mit Teiler //
WrdArray() = Split(line, "//")
' wenn 9 Teile gefunden wurden
If UBound(WrdArray) = 8 Then
' Über die 9 Teile drüber gehen
For i = 0 To 8
' Falls ein Fehler passiert (bei umwandlung in Zahl) diesen einen Teil überspringen
On Error GoTo Fehler
' Versuchen den Teil nochmal mit Teiler : zu zerlegen
WrdArray2() = Split(WrdArray(i), ":")
' Wenn das geklappt hat und 2 weitere Teilen entstanden sind
If UBound(WrdArray2) = 1 And i <> 5 Then
' den 2. Teil in die jeweilige Zelle eintragen
Cells(Zeilennummer, i + 7) = Trim(WrdArray2(1))
' ausser es handelt sich um die 6. Spalte (Strom)
ElseIf UBound(WrdArray2) = 1 And i = 5 Then
l = Len(Trim(WrdArray2(1)))
' dann noch das A wegschneiden
Cells(Zeilennummer, i + 7) = CDbl(Left(Trim(WrdArray2(1)), l - 2))
' konnte nicht geteilt werden alles in die Zelle eintragen
Else
Cells(Zeilennummer, i + 7) = WrdArray(i)
End If
Fehler:
Next i
End If
End Sub
MFG
Christoph