bitte verlinke die Beiträge hier und anderswo miteinander, damit sich die Antworter in beiden Foren ein Bild vom Stand der Lösung machen können. Ich nehme an, dass die komplette Beschreibung in Deiner Datei der Schritt 2 ist?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
bitte verlinke die Beiträge hier und anderswo miteinander, damit sich die Antworter in beiden Foren ein Bild vom Stand der Lösung machen können. Ich nehme an, dass die komplette Beschreibung in Deiner Datei der Schritt 2 ist?
Ich nehme an, dass die komplette Beschreibung in Deiner Datei der Schritt 2 ist?
18.03.2016, 10:33 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2016, 10:33 von schauan.)
Hallo Angelina,
poste bitte noch drüben einen Link hierher.
Die Zahl der gefüllten Zellen bekommst Du z.B. so:
=10-ZÄHLENWENN(O3:Z3;"<>")
Die Zahl der gefärbten Zellen bekommst Du so:
PublicFunction CountColored(rngCells As Range) AsLong 'Variablendeklarationen Dim Zellen, cCount& 'Schleife ueber alle Zellen des Bereiches ForEach Zellen In rngCells 'Wenn der Farbindex <> keine Fuellung ist, dann Counter hochzaehlen If Zellen.Interior.ColorIndex <> xlNone Then cCount = cCount + 1 'Ende Schleife ueber alle Zellen des Bereiches Next 'Counter an Funktionswert geben CountColored = cCount EndFunction
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Angelina
in Zusammenhang mit der Funktion bekommst Du mit diesem Code die Zeilen in D:I gelöscht. Bei dem Makro gehe ich davon aus, dass die Zellen in Spalte D im zu löschenden Bereich alle gefüllt sind. Hast Du Lücken drin, müsste noch etwas geändert werden.
Sub DI_Loeschen()
'Variablendeklarationen 'Long Dim iCount&
'Anfangswert fuer Zeilenzaehler setzen
iCount = 1'Schleife solange weniger als 3 Zellen gefaerbt sind DoWhile CountColored(Range(Cells(iCount, 4), Cells(iCount, 9))) < 3'Zaehler hochsetzen
iCount = iCount + 1'Ende Schleife solange weniger als 3 Zellen gefaerbt sind Loop'Zellen ab Zeile mit 3 Faerbungen bis ans Ende des Datenbereichs D:I loeschen
Range(Cells(iCount, 4), Cells(Cells(4, 1).End(xlDown).Row, 9)).Delete shift:=xlUp
EndSub
Vor dem nächsten Teilschritt hab ich eine Frage. Du schreibst,
O:Z und AA:AL dürfen die Zahlen von Hand erst ab der 4.Zeile gelöscht werden Weil nur die Zahlen bis zu 11,19 zu diesem Zeitpunkt bekannt waren.
26, 39 und 47 kommen auch erst später. Warum wird diese Zeile nicht gelöscht? Weiter unten kommt noch eine 11, die ja schon bekannt ist. Warum wird diese Zeile gelöscht?
Wäre die "Regel" zum Löschen nicht eventuell Zeile + 1 im Vergleich zu D:I ??
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Angelina
Ich meine damit, wie ich deine beiden vba Vorschläge in einen Ablauf verbauen kann/soll.
Zitat:Vor dem nächsten Teilschritt hab ich eine Frage. Du schreibst,
O:Z und AA:AL dürfen die Zahlen von Hand erst ab der 4.Zeile gelöscht werden Weil nur die Zahlen bis zu 11,19 zu diesem Zeitpunkt bekannt waren.
26, 39 und 47 kommen auch erst später. Warum wird diese Zeile nicht gelöscht? Weiter unten kommt noch eine 11, die ja schon bekannt ist. Warum wird diese Zeile gelöscht?
Wäre die "Regel" zum Löschen nicht eventuell Zeile + 1 im Vergleich zu D:I ??
Zeile 1 hat die Zahlen 3,14,15,22,27,38 = gibt noch keine mind. 3 markierte 7,11,19,23,42,49 = gibt noch keine mind. 3 markierte
8,12,18,20,24,33 = 1. gefundene Zeile mit mind. 3 markierten 8,12,18 sind markiert es ist die Zeile 3 im Bereich D:I ab Zeile 3 der Bereich D:I löschen (von Hand) ab Zeile 4 der Bereich O:Z und AA: AL oder besser gesagt O:AL löschen (von Hand)
dann soll "Beginn Zahlen zu suchen" automatisch beim drücken auf "Berechne die Spalte AN" ablaufen und der neue VBCode soll in der Spalte AN die gesuchten Zahlen eintragen - hier als Beispiel die Zahl 8.
Nur wenn ich so vorgehe dann lösche ich ja immer die Zahlen von Hand aus D:I für alle weiteren eventuell vorkommenden mind. 3 markierten fehlen mir dann die Zahlen wieder.
Du brauchst die beiden Makros einfach nur in Dein Modul einzufügen oder füge ein neues ein, damit es etwas übersichtlicher wird. Das kannst Du jetzt einem Button zuweisen.
Spalte AN könntest Du mit der Funktion kombinieren. =WENN(CountColored(D3:I3)>=3;10-ZÄHLENWENN(O3:Z3;"<>");"")
Allerdings hat das einen Haken. Falls Du manuell die Farben änderst, wird keine Neuberechnung durchgeführt. Falls das z.B. ein Makro tut, könnte man durch das Makro, welches die Farbänderung vornimmt, die Berechnung auslösen.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Angelina
18.03.2016, 15:31 (Dieser Beitrag wurde zuletzt bearbeitet: 18.03.2016, 15:31 von schauan.)
Hallo Angelina,
anbei die Datei. Ich habe so ziemlich am Ende von Deinem Code die Anweisung Calculate eingefügt, ebenso in meinen Löschcode. Dadurch finden die Berechnungen statt, insbesondere das Farben zählen. Die Formeln dazu habe ich in AN1 bis AN8 eingegeben. Wenn Du hier flexible Bereiche hast und auch mal mehr Daten, muss man die Formeln natürlich weiter runter ziehen. Aber es wäre alternativ auch eine reine VBA-Lösung möglich
Das mit O:Z usw. schau ich mir später an. Bis jetzt hab ich es so verstanden, dass, wenn in D:I z.B. ab Zeile 3 gelöscht wird, in O:Z ab Zeile 4 gelöscht wird. Lösche ich D:I ab Zeile 4, wird O:Z usw. ab Zeile 5 gelöscht, D:I ab 6, dann O:Z ab 7?
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28 • Angelina