hallo an alle,
ich habe hier eine Aufgabe bei der ich nicht weiterkomme.
Bin noch zu unerfahren mit Excel. Ich nutze Excel 2003.
Ist keine leichte Aufgabe - könnte mir bitte jemand da eine Lösung
anbieten/helfen.
Mache mir schon tagelang darüber Gedanken :22:
Würde mich echt sehr sehr freuen
Angelina
Hallo,
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.
Hallo,
teste mal:
Code:
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.
(26.01.2015, 23: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 !
Kuss
Angelina
Hallo Angelina,
dann sparen wir etwas Code, teste mal:
Code:
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.
Hallo Angelina,
da Du die Tabelle jetzt versetzt darstellst, geht es mit Formeln auch relativ einfach zu lösen:
Arbeitsblatt mit dem Namen 'Tabelle1' |
| DA | DB |
1 | 2000 | 1 |
Zelle | Formel |
DA1 | =WENN(A1="";"";A1) |
DB1 | {=WENN(BK1="";"";WENN(ISTFEHLER(VERGLEICH(WAHR;ISTZAHL(BK2:BK$36);0));"";VERGLEICH(WAHR;ISTZAHL(BK2:BK$36);0)-1))} |
Achtung, Matrixformel enthalten! |
Die geschweiften Klammern{} werden nicht eingegeben. |
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine. |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Die Formel in DB1 kann nach rechts und nach unten gezogen (kopiert) werden.
(27.01.2015, 12:28)atilla schrieb: [ -> ]Hallo Angelina,
da Du die Tabelle jetzt versetzt darstellst, geht es mit Formeln auch relativ einfach zu lösen:
hallo lieber atilla,
hm... Schade hätte es lieber über VBA gemacht. Ist das zu aufwendig?
Kuss
Angelina
Hallo Angelina,
die Lösung mit VBA habe ich doch im Beitrag:
Heute, 11:51
Beitrag #5
Mit den Formeln war nur eine zusätzlicher Lösungsvorschlag.
hallo atilla,
entschuldige Bitte - Beitrag habe ich vor lauter Freude übersehen.
:18:
:23:
:28
:28:
Unglaubich von dir - tolle Leistung - Danke danke danke danke ..........
Darf ich die Tage dich noch um eine ganz kleine Aufgabe bitten?
Ist nicht so aufwendig - wirklich ... klein ....
:23:
Danke nochmals
Angelina
Hallo 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.