das geht entweder mit VBA, dürfte das Einfachste sein, oder einer Formel mit mehreren Hilfsspalten, ist machbar, oder eine Formel ohne Hilfsspalten, damit wirst Du wohl kaum zu Rande kommen.
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
Sub mach() Dim bovar As Boolean Dim i As Long, j As Long, k As Long, n As Long Dim lngZ As Long, lngZS As Long Dim rngZ As Range Range("DA1").CurrentRegion.ClearContents lngZ = Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False For i = 1 To 7 'lngZ Cells(i, 105).Value = Cells(i, 1).Value For j = 63 To 98 If Cells(i, j) <> "" Then lngZS = Cells(Rows.Count, j).End(xlUp).Row Do Until Cells(i + k + 1, j) <> "" k = k + 1 If k > lngZS Then bovar = True Exit Do End If Loop If bovar Then bovar = False Else Cells(i, 106 + n) = k End If k = 0 n = n + 1 End If Next j n = 0 Next i Application.ScreenUpdating = True End Sub
Da mir nicht bekannt ist, was passieren soll, wenn keine Zahlen mehr folgen, bleiben für diese Fälle die Zellen leer. Man könnte da aber auch 0 reinschreiben.
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28 • Angelina
27.01.2015, 08:13 (Dieser Beitrag wurde zuletzt bearbeitet: 27.01.2015, 08:24 von Angelina.)
(27.01.2015, 00:15)atilla schrieb: Hallo,
teste mal: . . .
Da mir nicht bekannt ist, was passieren soll, wenn keine Zahlen mehr folgen, bleiben für diese Fälle die Zellen leer. Man könnte da aber auch 0 reinschreiben.
hallo atilla,
du bist ein Engel - ein Schatz - ich küsse dich
So ist es zu 99% perfekt.
1. Wenn keine Zahl mehr folgt - bleibt die Zelle leer (hast du ja bereits so gemacht)
2. Es werden zur Zeit nur die ersten 7 Zeilen abgearbeitet Ist es machbar wie folgt? Ist in der Spalte A kein Eintrag mehr vorhanden dann ist dies die letzte Zeile die ausgewertet werden soll.
3. Ist doch übersichtlicher, wenn die Ausgabe-Daten ab dem Bereich DB in der Spalte eingetragen würden, in der sie im Bereich BK:CT vorgekommen sind. Matrix zum prüfen ist = BK:CT (36 Zellen) Matrix Ausgabe = DB:EK (36 Zellen) DA bleibt
Nochmals vielen dank das du dir - für mich - die Arbeit gemacht hast. Du bist einfach - toll !
Sub mach() Dim bovar As Boolean Dim i As Long, j As Long, k As Long Dim lngZ As Long, lngZS As Long
Range("DA1:EK36").ClearContents lngZ = Cells(Rows.Count, 1).End(xlUp).Row Application.ScreenUpdating = False For i = 1 To lngZ Cells(i, 105).Value = Cells(i, 1).Value For j = 63 To 98 If Cells(i, j) <> "" Then lngZS = Cells(Rows.Count, j).End(xlUp).Row Do Until Cells(i + k + 1, j) <> "" k = k + 1 If k > lngZS Then bovar = True Exit Do End If Loop If bovar Then bovar = False Else Cells(i, j + 43) = k End If k = 0 End If Next j Next i Application.ScreenUpdating = True End Sub
Bitte diesmal nur dezent Danke sagen. Meine Frau sitzt mir hier nämlich im Nacken. :51: :69:, außerdem werde ich schnell rot.
Gruß Atilla
Folgende(r) 1 Nutzer sagt Danke an atilla für diesen Beitrag:1 Nutzer sagt Danke an atilla für diesen Beitrag 28 • Angelina
das ist hier ein öffentliches Forum. Du kannst jederzeit Deine Fragen stellen. Besser ist es aber, wenn Du die Allgemeinheit ansprichst. Es gibt viele andere Helfer hier, die dir genauso gut oder besser helfen können.