Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Datum suchen und Text vergleichen

Datum suchen und Text vergleichen
17.01.2018 09:58:11
Philip
Hallo zusammen
Ich habe eine grössere Herausforderung bei der ich nicht weiter komme, oder besser gesag nicht weiss wie ich beginnen soll. Ich hoffe das ich dass Problem verständlich schildern kann.
Ich habe in einem Workbook zwei Sheets, auf dem 1. Sheet habe ich eine Liste mit Datum und einer 8stelligen Nummer, diese wird fortlaufend ergänzt mit Datum und Nummer.
Auf dem zweiten Sheet habe ich diese 8stelligen Nummern in einer Spalte und als überschrift in anderen Spalten den Monat.
Jetzt die Herausforderung, ich möchte wenn ich auf dem 1.sheet die 8stellige Nummer eintrage diese auf dem 2.Sheet suchen und dann beim richtigem Monat +1 zählen.
Beim entsprechendem monat soll gezählt werden wieviel mal diese Nummer vorkommt.
Sollte eine VBA lössung sein.
Vielen dank für eure Hilfe.
https://www.herber.de/bbs/user/119030.xlsx
Gruss Philip

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: so nicht nachvollziehbar ...
17.01.2018 11:23:16
...
Hallo Philip,
... in Deiner "Probenahme" gibt es nur 6 stellige Nummern und keine 8 stelligen.
Und wen es 8 stellige gäbe könnte man Deine Aufgabe auch mit ZÄHLENWENNS() lösen.
Gruß Werner
.. , - ...
AW: so nicht nachvollziehbar ...
17.01.2018 11:30:18
Philip
Hallo Werner
Ich habe mir die Datei auch gerade angesehen und gemerkt das da noch nicht ersichtlich ist wo ich diese Zahlen eintrage.
Es ist so das die 8stelligen Zahlen bei Rezept Nr. und das Datum bei Datum eintrage, sobald diese eingetragen sind sollte es beim richtigem Datum auf Probenahme Mischgut eingetragen werden.
Hoffe jetzt ist es ein bisschen ersichtlicher und wenn das auch per Formel lösbar ist, ist au ok obwohl ich eine VBA lösung bevorzugen würde.
Gruss Philip
Anzeige
AW: Makro/VBA-Lösung
17.01.2018 12:31:16
fcs
Hallo Philip,
hier eine Makro-Lösung
Die werden im "Tabelle2" neu berechnet, wenn das Blatt aktiviert wird.
Das Makro fügt Formeln ein, die nach Neuberechnung durch ihre Werte ersetzt werden.
Gruß
Franz
'Code unter dem Code-Modul von Blatt "Tabelle2"
Private Sub Worksheet_Activate()
'Anzahl Proben aktualisieren
Call ProbenZahl_aktualisieren(Me, Worksheets("Probenahme"))
End Sub
Private Sub Test_ProbenZahl_aktualisieren()
Call ProbenZahl_aktualisieren(Me, Worksheets("Probenahme"))
End Sub
Sub ProbenZahl_aktualisieren(wksMG As Worksheet, wksPN As Worksheet)
Dim ZeilePN1 As Long, ZeilePNL As Long
Dim ZeileMG As Long, ZeileMG1 As Long, ZeileMGL As Long, SpalteMG As Long
Dim strFormel As String
Dim StatusCalc As Long
With wksPN
ZeilePN1 = 4
ZeilePNL = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
With wksMG
ZeileMG1 = 4
ZeileMGL = .Cells(.Rows.Count, 1).End(xlUp).Row
strFormel = "=SUMPRODUCT((RC1='" & wksPN.Name & "'!R" & ZeilePN1 & "C6:R" _
& ZeilePNL & "C6)*(RC1"""")*(TEXT('" & wksPN.Name _
& "'!R" & ZeilePN1 & "C2:R" & ZeilePNL & "C2,""MMMM"")=R2C)*1)"
With Application
StatusCalc = .Calculation
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
For SpalteMG = 6 To 28 Step 2 'Monat Januar bis Dezember
With .Range(.Cells(ZeileMG1, SpalteMG), .Cells(ZeileMGL, SpalteMG))
.FormulaR1C1 = strFormel
End With
Next
.Calculate
For SpalteMG = 6 To 28 Step 2 'Monat Januar bis Dezember
With .Range(.Cells(ZeileMG1, SpalteMG), .Cells(ZeileMGL, SpalteMG))
.Value = .Value
End With
Next
For ZeileMG = ZeileMG1 To ZeileMGL
If .Cells(ZeileMG, 1) = "" Then
.Rows(ZeileMG).ClearContents
End If
Next
With Application
.Calculation = StatusCalc
.ScreenUpdating = True
End With
End With
End Sub

Anzeige
AW: Makro/VBA-Lösung
17.01.2018 13:42:24
Philip
Hallo Franz
Vielen Dank für die Lösung, funktioniert so wie ich das wollte.
Zwei sachen hätte ich noch die schön währen wen es klappen würde.
Ist es möglich den Code noch irgendwie zu beschleunigt?
Und den Code ausführen nach dem ich die RezeptNr. eingetragen habe?
Gruss Philip
AW: Makro/VBA-Lösung
18.01.2018 07:41:13
fcs
Hallo Thomas,
um die relativ langsamen Formeln (wegen Datenmenge und Anzahl Zellzugriffe) zu erstzen durch einen Code, der mit einer kleinen Anzahl von Zellzugriffen auskommt ist einiges an Programmieraufwand nötigt.
Theoretisch könnte man es wahrscheinlich noch weiter optimieren indem man nur die neue(n)/geänderte(n) Proben-Nrn. im Blatt "Tabelle2" sucht und in der entsprechenden Zeile die Zahlen zu den Monaten aktualisiert. Dazu fehlt mir aber die Zeit.
Wichtg: das Datum muss vor der Proben-Nr. eingetragen werden,sonst funktioniert es nicht korrekt.
Hier deine Beispiel-Datei mit Makros und Testdaten.
https://www.herber.de/bbs/user/119053.xlsm
Das Makro zur Aktualisierung ist jetzt in einem allgemeinen Modul (flexibler).
Das Ereignis-Makro, das die Aktualisierung startet ist jetzt im Code-Modul zum Blatt "Probenahme".
Gruß
Franz
Anzeige
AW: Makro/VBA-Lösung
18.01.2018 08:33:51
Philip
Hallo Franz
Ich danke dir für deine Hilfe.
Also für mich ist die Lösung die du mir gegeben hast schon ausreichen und es übersteigt mein horizont bei weitem aber es funktioniert so wie ich das wollte.
Gruss Philip

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige