Hallo zusammen,
ich habe bisher recht wenig mit VBA zu tun gehabt und bin ein bisschen am rumprobiern.
Ich habe Daten in den Spalten B bis D vorliegen. (Tabellenblatt 2)
Die Daten werden durch Formeln erzeugt:
B. C
a0 b0
a1 b1
a2 !
! !
! !
Wenn die hinterlegten Formeln kein Ergebnis liefern wird ein ! ausgegeben.
Ich habe mich daran versucht einen VBA Code zu schreiben, der alle Spalten in einer Spalte auf einem neune Tabellenblatt zusammenfasst. Der Code ist auch in der Lage diese Aufgabe zu erledigen. Allerdings werden die Ausrufezeichen immer mitkopiert. Das ist unerwünscht.
Das Ziel ist es eine Zielspalte mit den Werten:
a0
a1
a2
b0
b1
zu erhalten.
Dies habe ich versucht über ein if statement in Spalte B zu lösen:
Sub test()
Dim nZeile As Integer
Dim vSpalte As Integer
Dim vZeile As Integer
Dim nSpalte As Integer
Dim vSheet As String
Dim nSheet As String
vSheet = "Tabelle2" ' quellTabellenBlatt
nSheet = "Tabelle4" 'ZielTabellenBlatt
nZeile = 2 'nach Zeile
nSpalte = 2 'nach Spalte
'Spalte B
vSpalte = 2
For vZeile = 3 To Sheets(vSheet).Cells(65536, vSpalte).End(xlUp).Row
If Worksheets("Tabelle1").Cells(vZeile, 2).Value = "!" Then vZeile = vZeile + 1 Else: vSheets(nSheet).Cells(nZeile, nSpalte) = Sheets(vSheet).Cells(vZeile, vSpalte)
nZeile = nZeile + 1
End If
Next
'Spalte C
vSpalte = 3
For vZeile = 3 To Sheets(vSheet).Cells(65536, vSpalte).End(xlUp).Row
Sheets(nSheet).Cells(nZeile, nSpalte) = Sheets(vSheet).Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
'Spalte D
vSpalte = 4
For vZeile = 3 To Sheets(vSheet).Cells(65536, vSpalte).End(xlUp).Row
Sheets(nSheet).Cells(nZeile, nSpalte) = Sheets(vSheet).Cells(vZeile, vSpalte)
nZeile = nZeile + 1
Next
End Sub
Dieser VBA Code erzeugt bei mir die Fehlermeldung Sub oder function nicht definiert.
Könnt ihr mir weiterhelfen?
Johannes
|