an ralf_b oder an euch alle
09.03.2023 13:25:02
Antonio
bei diesem Code hat mir ralf_b sehr geholfen um weiter zu kommen.
Sub M_snb()
BereichFbisG = Cells(1, 2).Resize(60, 6)
' Debug.Print sn.Address
spalteM = Range("M3:M10")
n = 3
For j = 3 To 7 'von Zeile 3 - 6 für Beispieldaten
WerteAusZelleSpalteF = Split(BereichFbisG(j, 5), ",") 'Zerlegung der Inhalte von Zelle ab Zeile 3 in Spalte 6 (F) sn beginnt bei B
BereichFbisG(n, 6) = BereichFbisG(j, 1) 'Inhalt spalte B Zeile ab j=3 wird in Spalte 6(G) n=3 geschrieben
n = n + 1 'Zeile erhöhen um 1
For jj = 2 To UBound(spalteM) 'Schleife über die Einträge in M
BereichFbisG(n, 6) = "." ' Punkt in Spalte G schreiben
WerteVonZellenAusM = Split(spalteM(jj, 1), ",") 'Zellinhalt von Spalte M wird zerlegt ab Zeile 3
If WerteVonZellenAusM(0) > "." Then ' nur wenn kein Punkt vorne dran ist
On Error Resume Next
For Each Wert In WerteVonZellenAusM ' Schleife über die einzelnen Werte
BereichFbisG(n, 6) = BereichFbisG(n, 6) & "," & WerteAusZelleSpalteF(Wert - 1) 'Umsortierte Werte aus Spalte F nach G
Next
On Error GoTo 0
BereichFbisG(n, 6) = Mid(BereichFbisG(n, 6), 3) 'in Spalte G führender Punkt und Komma enfernen
End If
n = n + 1 'nächste Zeile
Next
Next
Cells(1, 2).Resize(60, 6) = BereichFbisG 'bearbeitetes Array in Blatt zurückschreiben
End Sub
Tabelle2:
aus dem Muster in "M3;M10" wo Akkord steht, wird in Spalte "G"
aus Spalte "B" der Akkord, hier Am7 eingetragen
der Rest ist die Zerlegung aus Spalte "F".
Wenn aber in "M5" wieder Akkord geschrieben wird, bleibt "G5" leer.
Tabelle3 wie es aussehen sollte:
Ich würde gerne um Eure Hilfe bitten um zu erfahren wo und was soll ich im code ändern das es funzt.
Danke im Voraus
LG Antonio
Anzeige