Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1080to1084
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

Makroanpassung !

Makroanpassung !
09.06.2009 07:16:53
Ernst

Hallo Vba Experten !
https://www.herber.de/bbs/user/62289.zip
Ich würde eure Hilfe benötigen es geht um ein Abfragemakro, wenn ich im Tabellenblatt2 Archiv eine Abfrage mache zb Nr.4739 und es steht ein Datum in Spalte H5 so sehe ich bei der Auswertung 7 obwohl nur ein Datum Dieser Nummer zugeordnet ist.
Sind jedoch die Spalten B5-H5 befüllt stimmt die Auswertung.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long
Dim n As Integer
Dim S As Integer
Dim RL As Range
Dim Zx As Long
Dim RA As Range
If Target.Address = "$G$2" Then
If IsDate(Target.Value) And IsDate(Target.Offset(0, -2).Value) Then
If Target.Value > Target.Offset(0, -2).Value Then
Zx = Worksheets("Archiv").Cells(Rows.Count, 1).End(xlUp).Row
Application.EnableEvents = False
Target.Offset(0, 2).Value = 0
Target.Offset(0, 4).Value = 0
Target.Offset(0, 6).Value = 0
For Each RL In Worksheets("Archiv").Range("A5:A" & CStr(Zx))
S = Zuordnung(RL.Value)
Select Case S
Case 1
n = 2
Case 5
n = 4
Case 9
n = 6
End Select
Zx = Worksheets("Archiv").Cells(RL.Row, Columns.Count).End(xlToLeft).Column - 1
Target.Offset(0, n).Value = Target.Offset(0, n).Value + Zx
Next
Application.EnableEvents = True
End If
End If
End If
If Target.Address = "$K$4" Then
If IsDate(Target.Offset(0, -4).Value) And IsDate(Target.Offset(0, -2).Value) Then
If Target.Offset(0, -2).Value > Target.Offset(0, -4).Value Then
Zx = Worksheets("Archiv").Cells(Rows.Count, 1).End(xlUp).Row
Application.EnableEvents = False
Target.Offset(0, 2).Value = 0
For Each RL In Worksheets("Archiv").Range("A5:A" & CStr(Zx))
If RL.Value = Worksheets("Archiv").Range("K4").Value Then
Zx = Worksheets("Archiv").Cells(RL.Row, Columns.Count).End(xlToLeft).Column  _
- 1
Target.Offset(0, 2).Value = Target.Offset(0, 2).Value + Zx
End If
Next
Application.EnableEvents = True
End If
End If
End If
End Sub


Wäre für Lösungsvorschläge dankbar
lg.Ernst

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makroanpassung !
09.06.2009 09:16:27
Matthias
Hallo
Was erwartest Du denn als Ergebnis anstatt 7 ?
Mit: Zx = Worksheets("Archiv").Cells(RL.Row, Columns.Count).End(xlToLeft).Column - 1
ist das Ergebnis nun mal 7. Du zählst ja nicht die Daten in den Spalten,
sondern Du ermittelst ja die letzte Spalte der entsprechenden Zeile
Userbild
Gruß Matthias
AW: Makroanpassung !
09.06.2009 09:34:49
Ernst
Hallo Mathias !
Danke für die Rückmeldung.
Also ich hätte gerne die Tatsächlichen Werte ausgegeben.
was noch stört wäre !
Bei der Gesamtabfrage wenn ich Datum von zb8.6.09.bis Datum 8.6.09 eingebe wird nichts gerechnet und es ist für mich nicht ersichtlich welche Nr. an diesem Tag gereinigt wurden:zumindest nicht in den grünen Ausgabefeldern.
wäre für Lösungsvorschlag sehr dankbar.
lg.Ernst
Anzeige
AW: Makroanpassung !
09.06.2009 09:55:52
hary
Hallo Ernst
Hier mal was mit Formel. Hilfsspalte IV. Vieleicht laecheln die Formel-Experten, aber ein Versuch ises wert.
Ging doch bei dem zeitem Prob. um die "Einzelwertung"?
https://www.herber.de/bbs/user/62304.xls
Gruss Hary
AW: Makroanpassung !
09.06.2009 10:11:56
Ernst
Hallo Hary !
Danke !
https://www.herber.de/bbs/user/62289.zip
Aber wie gesagt bei der gesamt Abfrage gibts auch noch Probleme.(Bei der Gesamtabfrage wenn ich Datum von zb 8.6.09.bis Datum 8.6.09 eingebe wird nichts gerechnet und es ist für mich nicht ersichtlich welche Anzahl. an diesem Tag gereinigt wurden:zumindest nicht in den grünen Ausgabefeldern.
Gleiches Problem bei Einzelabfrage)
wäre für Lösungsvorschläge dankbar.
lg.Ernst
Anzeige
gefällt mir ... owT
09.06.2009 10:26:18
Matthias
das ist doch aber logisch ...
09.06.2009 10:12:28
Matthias
Hallo Ernst
Was erwartest Du nach dieser Zeile

If Target.Value > Target.Offset(0, -2).Value Then
end if


wenn Du in E2 und dann in G2 jeweils den 08.06.09 einträgst ?
Dann sind beide Daten gleich und die If-Abfrage wird übergangen.
Gruß Matthias

AW: das ist doch aber logisch ...
09.06.2009 10:21:46
Ernst
Hallo Mathias !
(Dann sind beide Daten gleich und die If-Abfrage wird übergangen.)
das mag ja so sein ,ich würde es so benötigen das wenn von- bis Datum ident sind mir die tatsächlichen Werte ausgegeben werden .
ist das möglich !
wäre für Lösungsvorschlag dankbar.
lg.Ernst
Anzeige
AW: das ist doch aber logisch ...
09.06.2009 10:25:13
Matthias
Hallo
Und wie wäre es dann damit:

If Target.Value >= Target.Offset(0, -2).Value Then
end if


Gruß Matthias

AW: das ist doch aber logisch ...
09.06.2009 10:40:25
Ernst
Hallo Mathias !
das würde zwar funktionieren, jedoch nicht so wie es benötige den bei dieser Methode werden alle Datums gezählt ich jedoch möchte nur die für den eingegebenen Zeitraum sprich von - bis zb.8.6.09 dann sollten auch nur Datums mit 8.6.09 gezählt werden.
ist das möglich ?
lg.Ernst
Danke werde es neu formulieren !
09.06.2009 12:47:13
Ernst
Danke !
Lg.Ernst
AW: Teste mal die
09.06.2009 13:55:55
hary
Hallo Ernst
alles mit Formel und es funzt. Test mal durch. Berechnungen Gesamt und Einzel(Formel)
https://www.herber.de/bbs/user/62311.zip
Grus hary
Anzeige
AW: Teste mal die
09.06.2009 16:57:58
Ernst
Hallo Hary !
Danke für die Mühe aber es werden keine Datums mehr automatisch ins Archiv kopiert und wenn ich Im Tabellenblatt1 eine neue Nr: hinzufüge wird diese auch nicht übertragen !
Also mir persönlich wäre die Makrolösung lieber falls man die anpassen könnte.
Aber vielleicht geht auch beides Makrolösung plus Formel wenn das machbar ist ?
lg.Ernst
AW: Teste mal die
09.06.2009 21:20:45
Ernst
Danke !
aber es läuft nicht so wie ich es bräuchte..
lg.Ernst

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige