Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

GROSSES EXCEL PROBLEM





Frage

Hallo! Habe 2 knifflige Probleme bei Excel und leider noch keine Lösung gefunden: 1. Leeres Tabellenblatt in Excel: In Spalte A werden untereinander verschiedene Zahlenwerte eingetragen, wobei täglich ca. 80 neue dazukommen (z.B.: 9, 19, 0, 27, 48, 13 ...) nun soll in einer Fixen Zelle B1 immer der [u] Wert[/u] der letzten Zahl aus Spalte A angezeigt werden. 2. Spalte C ist fortlaufend Nummeriert von 1-20, in Spalte D stehen Zahlenwerte. In Spalte E soll nun immer wenn in D der Wert 8 auftaucht (kann auch mehrfach sein) der zugehörige C Wert angezeigt werden. z.B: C D E (Ergebnis) 1 6 3 (da 8 in D vorhanden) 2 3 5 (da 8 in D vorhanden) 3 8 4 2 5 8 6 9 Wäre Super, wenn das jemand lösen könnte. mlg WIlli ;-)

Antwort 1 von coros

Moin Willi,

kopiere nachfolgenden VBA Code in das VBA Projekt der Tabelle, in dem er wirken soll.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Letzte_Zeile_Spalte_A As Long, Letzte_Zeile_Spalte_C As Long, _
Wiederholungen As Long
Application.ScreenUpdating = False
Application.EnableEvents = False

Letzte_Zeile_Spalte_A = Range("A65536").End(xlUp).Row
Letzte_Zeile_Spalte_C = Range("C65536").End(xlUp).Row

Cells(1, 2) = Cells(Letzte_Zeile_Spalte_A, 1)

For Wiederholungen = 1 To 20 ´Letzte_Zeile_Spalte_C
If Cells(Wiederholungen, 4) = 8 Then
Cells(Wiederholungen, 5) = Cells(Wiederholungen, 3)
Else
Cells(Wiederholungen, 5) = ""
End If
Next Wiederholungen
Application.EnableEvents = True
End Sub


Bei dem Code wird immer der letzte Eintrag aus Spalte A in Zelle B1 angezeigt. Außerdem wird die Spalte C auf die Zahl 8 überprüft. Ist diese in der durch die For/Next Schleife angesprochenen Zelle vorhanden, wird der Wert aus Spalte C in Spalte E angezeigt.

Ich hoffe, dass ich Deine Aufgabenstellung richtig verstanden habe und dass die Lösung so ist, wie Du es Dir vorgestellt hast. Wenn nicht oder bei Fragen melde Dich.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von rainberg

Hallo Willi,

Formellösungen:

1.
=INDIREKT("A"&ANZAHL2(A:A))

2.
=INDEX(C$1:C$6;KKLEINSTE(WENN((D$1:D$6=8);ZEILE($1:$6));ZEILE()))

Formel2 ist eine Matrixformel, deren Eingabe mit der Tastenkombination Strg+Shift+Enter abgeschlossen werden muß.
Dadurch wird sie in { } eingeschlossen.

Gruß
Rainer

Antwort 3 von Bill1744

Hallo coros, hallo Rainer!

Besten Dank für Eure rasche Hilfe - habe Problem A mit Rainers Formel und B mit coros Code gelöst, den ich nun, nachdem ich die Codestruktur gesehen und verstanden habe noch leicht adaptieren konnte:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Letzte_Zeile_Spalte_J As Long, Wiederholungen As Long, Zähler As Long
Application.ScreenUpdating = False
Application.EnableEvents = False

Letzte_Zeile_Spalte_J = Range("C65536").End(xlUp).Row

If Cells(14, 10) = 3 Then
Zähler = 20
For Wiederholungen = 2 To 13 ´Letzte_Zeile_Spalte_C
If Cells(Wiederholungen, 10) = 0 Then
Cells(Zähler, 10) = Cells(Wiederholungen, 9): Zähler = Zähler + 1
End If
Next Wiederholungen
Else
Cells(20, 10) = "": Cells(21, 10) = "": Cells(22, 10) = ""
End If
Application.EnableEvents = True
End Sub

Mein Problem ist endlich gelöst - Super vielen Dank Euch beiden.

Willi

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: