keine Werte" name="description" />

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro Formel "ziehen" --> keine Werte
25.07.2014 16:08:50 Bjoern
NotSolved

Ansicht des Beitrags:
Von:
Bjoern
Datum:
25.07.2014 16:08:50
Views:
1227
Rating: Antwort:
  Ja
Thema:
Makro Formel "ziehen" --> keine Werte

Hi,
folgendes Problem ist in meinem VBA-Makro aufgetreten:
In einer Excel-Datei existieren mehrere Tabellenblätter. Im Tabellenblatt 1 (Spalte D) sind Starttermine in der Form TT:MM:YY hh:mm:ss aufgelistet. Hinter jedem Datum steht ein Zahlenwert (Spalte G).
Es kann vorkommen, dass einige Starttermine mehrfach vorkommen.

Das soll mit dem Makro durchgeführt werden:

Im 1. Schritt sollen alle Starttermine in ein neues Tabellenblatt transferiert werden, aber nur in einfacher Ausführung.

Im 2. Schritt soll für jeden Starttermin der Maximale Zahlenwert herausgefunden werden und hinter dem Starttermin geschrieben werden. =max(wenn(Tabelle1!$D$2:$D$1000=Tabelle2!D3;Tabelle1!$G$2:$G$1000))

Beim 2. Schritt habe ich folgende Formel verwendet:
Im Tabellenblatt "Tabelle2" werden in Spalte D alle existierenden Starttermine ausgelistet (mehrfach vorkommende Starttermine werden nur einmal geschrieben). In Spalte E sind die dazugehörigen Max-Werte zu finden, die aus dem Tabellenblatt "Tabelle1" gefiltert wurden.

Die Formel im Makro lässt sich auf die Spalte E3 im Tabellenblatt Tabelle2 anwenden. Beim herunterziehen verliert die Formel anscheinend den Bezug und schreibt den Zahlenwert 0.

Könnt Ihr mir sagen, warum meine Vorgehensweise nicht funktioniert. Gibt es vielleicht eine "einfache" Alternative.

 

Sub test()
'Deklaration
Dim Quelle_Tabelle1 As Range
Dim Ziel_Tabelle1 As Range


Application.DisplayAlerts = False
Worksheets("Tabelle2").Delete
Application.DisplayAlerts = True


'Neues Tabellenblatt anlegen
Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Tabelle2"

'Starttermine werden in das neue Tabellenblatt namens Tabelle2 geschrieben
Set Quelle_Tabelle1 = Worksheets("Tabelle1").Range("D2")
Set Ziel_Tabelle1 = Range("D2")
'Station VSF 530.1
Quelle_Tabelle1.EntireColumn.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Quelle_Tabelle1.EntireColumn, CopyToRange:=Ziel_Tabelle1, Unique:=True

 

' max werte heraufinden und in Tabellenblatt 2 schreiben
Worksheets("Tabelle2").Range("E3:E5").FormulaLocal = "=min(WENN(Tabelle1!D2:D50=D3;Tabelle1!G2:G50))"

' Die Formel, sich bislang nur auf Spalte E3 bezieht soll bis zur letzten Zeile heruntergezigen werden. Der Wert D3 aus der Formel soll sich immer auf die aktuelle Zeile beziehen.
Range("E3").Resize(Range("D3").End(xlDown).Row - 2).FillDown
End Sub




Grüße!


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Makro Formel "ziehen" --> keine Werte
25.07.2014 16:08:50 Bjoern
NotSolved