Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel VBA Ermittlung der letzten 3 Besuche

Excel VBA Ermittlung der letzten 3 Besuche
29.11.2018 16:05:45
Alex
Hallo liebe Excelexperten,
ich würde gerne wissen, wie ich mir die letzten 3 Besuche für jeden Kunden in einem neuen Tabellenblatt anzeigen lassen kann.
Folgender Aufbau:
Tabellenblatt 1-12 sind die Monate des aktuellen Jahres Jan-Dez.
Tabellenblatt 13 wäre die Tabelle für die letzten 3 Besuche aller Kunden.
Die Kunden stehen in Spalte A(Kundenname)/B(Kundennummer) ab Zeile 2.
In Zeile 1 und Spalte C-AG steht das Datum Format: 01.01.2018 (falls der Monat keine 31 Tage hat, werden diese Felder ausgeblendet).
Falls ein Kunde besucht wurde wird in der Zeile des Kunden und bei dem entsprechendem Datum die Kennziffer 1-9 gesetzet (1 = 1 Besuch, 2 = 2 Besuche etc.)
Nehmen wir an Kunde A hat 3 Besuche am (10.01, 21.01 und 30.01.2018 in Tabellenblatt1) und 2 Besuche am (02.02.2018 und 15.02.2018 in Tabellenblatt2).
Wie würde ich mir jetzt die letzten 3 Besuche (30.01.2018, 02.02.2018 und 15.02.2018) für diesen und alle anderen Kunden aus der Tabelle in dem Tabellenblatt 13 auflisten können?
Was zu beachten wäre ist:
-Das im Februar ggf. ein neuer Kunde hinzu gekommen ist, der im Tabellenblatt Januar keine Einträge hat, d.h. Prüfung auf Kundennummer im Tabellenblatt ob dieser vorhanden ist. Falls nur 1-2 Besuche erfolgt sind dann nur diese anzeigen.
-Egal ob ein Kunde 1 oder 9 Mal am gleichen Datum besucht wurde, brauche ich die letzten 3 Datumsangaben zu den letzten 3 Besuchen an unterschiedlichen Tagen und nicht nach Anzahl der Besuche
Tabellenblatt 13:
Aufbau:
A_________/B___________/C(aktuellster Besuch)_____/D_________/E
Kundenname/Kundennummer/Datum1_______________/Datum2____/Datum3
A_________/1___________/15.02.2018_____________/02.02.2018_/30.01.2018
B_________/2___________/10.02.2018_____________/14.01.2018_/-
C_________/3___________/12.02.2018_____________/-_________/-
D_________/4___________/18.02.2018_____________/09.02.2018_/04.02.2018

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA Ermittlung der letzten 3 Besuche
29.11.2018 16:13:59
Alex
Nachtrag:
Zählung der Besuche soll ab dem aktuell laufendem Monat(dynamisch) erfolgen, d.h. in diesem Fall ab November (Tabellenblatt11),
im Monat März(Tabellenblatt3) - Oktober(Tabellenblatt10) waren keine Besuche.
Ich denke hier ist eine Musterdatei..
29.11.2018 16:17:26
UweD
..angebracht. Das baut keiner nach.
AW: Excel VBA Ermittlung der letzten 3 Besuche
29.11.2018 18:38:02
onur
Die Namen und Kd-Nr müssen bereits auf "Besuchsdatum - Kunden" stehen.
https://www.herber.de/bbs/user/125770.xlsm
Anzeige
AW: Excel VBA Ermittlung der letzten 3 Besuche
29.11.2018 19:38:07
Alex
Danke schonmal dafür, das läuft soweit.
Wenn die Reihenfolge der Kunden jedoch anders ist aufgrund von einem neuen Kunden oder einer anderen Sortierung, zieht er sich die falschen Werte, da der Kundenname bzw. die Kundennummer nicht abgeglichen wird.
AW: Excel VBA Ermittlung der letzten 3 Besuche
29.11.2018 19:47:24
onur
Dadurch wird der code natürlich noch komplierter und damit langsamer.
Private Sub CommandButton1_Click()
Dim z, s, t, m, j, mo, mon, found, z2
t = Day(Date)
m = Month(Date)
j = Year(Date)
For z = 2 To 1000
found = 0
If Cells(z, 1)  "" Then
For mo = 12 + m To 1 + m Step -1
mon = mo - 12
If mon  "" Then
found = found + 1
Cells(z, 2 + found) = Sheets(mon).Cells(1, s)
If found = 3 Then GoTo weiter
End If
Next s
End If
Next z2
Next mo
End If
weiter:
Next z
End Sub

Anzeige
AW: Excel VBA Ermittlung der letzten 3 Besuche
29.11.2018 20:08:03
onur
Sorry, kleiner Fehler:
Private Sub CommandButton1_Click()
Dim z, s, t, m, j, mo, mon, found, z2
t = Day(Date)
m = Month(Date)
j = Year(Date)
For z = 2 To 1000
found = 0
If Cells(z, 1)  "" Then
For mo = 12 + m To 1 + m Step -1
mon = mo - 12
If mon  "" Then
found = found + 1
Cells(z, 2 + found) = Sheets(mon).Cells(1, s)
If found = 3 Then GoTo weiter
End If
Next s
End If
Next z2
Next mo
End If
weiter:
Next z
End Sub

AW: Excel VBA Ermittlung der letzten 3 Besuche
02.12.2018 01:26:05
Alex
Ich danke dir, war genau das was ich gebraucht habe und funktioniert bestens :D

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige