Hallo Manfred,
mit Filter komme ich nicht weiter. Ich möchte ja weitere Zeilen erzeugen - für jeden Wert des Bereiches zwischen Spalte b und c eine weitere Zeile.
Mit Makro könnte ich das Problem lösen, wenn du noch Hilfe brauchst.
Dazu sag mir doch bitte noch, wohin genau die Ergebnisse geschrieben werden sollen. Sprich auf ein anderes Tabellenblatt oder unter die bestehende?!?
Und in welche Spalten welche Werte!
Hallo Ralf,
danke für die Nachricht.
Am schönsten wäre es wenn die Ergebnisse in ein neues Tabellenblatt geschrieben würden damit die Originaldaten erhalten bleiben.
Die Spalten sollten identisch befüllt werden wie im Original-Datenblat.
Also:
Spalte a = name
spalte b = wertebereich von
spalte c = nicht nötig denn wir haben ja einzelne Zeilen pro Wert.
Was evtl. noch wichtig ist- ich habe gerade gesehen dass ich auch Wertebereiche 6A1 - 6A8 habe (nicht nur Zahlen) - nicht sehr viele aber dennoch einige. Kann man das auch berücksichtigen?
Hier wären dann die einzelnen Zeilen für die Werte 6A1, 6A2, 6A3 …6A8 einzutragen.
Wenn nicht möglich muss ich das eben händisch erledigen.
Hallo!
das mit dem 6A1 geht auch grundsätzlich.
wenn ich den string „6A1“ von rechts betrachte, würde ich die zahl nehmen, die bis zum vorkommen des ersten buchstaben von rechts, dargestellt wird
Bsp:
6A1 = 1
6A8 = 8
6ac12 = 12
und dann könnte ich natürlich auch den bereich wie bei nur zahlen darstellen!
kann es auch vorkommen, dass die bereiche vertauscht sind?
Spalte B = 8
Spalte C = 1
und es sollen trotzdem alle werte von 1 bis 8 aufgelistet werden?
falls es dir möglich wäre, mir deine liste als xls-datei zukommen zu lassen, dann schick sie bitte an [email protected]
dann kann ich alle eventualitäten besser beachten!
gruß
ralf
Wohl eher nicht, da es mir einfach zuviel Zeit raubt.
Aber der Ansatz kann ich Dir mal geben.
Du musst zwei For next schleifen haben:
row=1
For i= 1 to 100
Anfang = tabelle1.cells(i,2)
For l = Anfang to tabelle1.cells(i,3)
tabelle1.cells(row,5) = tabelle1.cells(i,1)
tabelle1.cells(row,6) = tabelle1.cells(i,2)
tabelle1.cells(row,7) = l
row=row+1
next l
next i
Grüsse Sebastian
Hallo Sebastian,
danke für die Antwort.
Kannst Du mir solch ein Makro erstellen - bin da leider nicht
versiert genug!
hier ein entsprechendes Makro.
Die neu Liste wird dabei in einer neuen Arbeitsmappe erstellt.
Gruß
Franz
Sub AufbereitenDaten()
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim ZeileQ As Long
Dim ZeileZ As Long
Dim Start As Long, Ende As Long, Zaehler As Long
'Tabellenblatt mit den zu verarbeitenden Werten
Set wksQ = ActiveSheet
Application.ScreenUpdating = False
'Tabellenblatt für neue Liste anlegen
Workbooks.Add Template:=xlWBATWorksheet
Set wksZ = ActiveWorkbook.Sheets(1)
'Spaltentitel in neuer Liste
ZeileZ = 1
wksZ.Cells(ZeileZ, 1).Value = "Name"
wksZ.Cells(ZeileZ, 2).Value = "Wert"
'Zeilen in Liste ab Zeile 2 bis zum Ende der Liste abarbeiten
With wksQ
For ZeileQ = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
'Zählerwerte von Start- bis Endwert abarbeiten
For Zaehler = .Cells(ZeileQ, 2).Value To .Cells(ZeileQ, 3).Value
ZeileZ = ZeileZ + 1
wksZ.Cells(ZeileZ, 1).Value = .Cells(ZeileQ, 1).Value
wksZ.Cells(ZeileZ, 2).Value = Zaehler
Next
Next ZeileQ
End With 'wksQ
Application.ScreenUpdating = True
End Sub
Hi,
ist denn nicht auch 6-8 ein Wertebereich?
Dann hättest Du ja viel mehr Zeilen als in Deinem BSP angegeben.
Ich verstehe nicht so ganz Dein Problem?
Gruß,
Ptonka