Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro Aufzeichnung Wenn-Ist-Fkt.
#1
Hallo Liebe Forenmitglieder!

Ich hätte mal eine Frage zu einer Makroaufzeichnung. Erstens kurz die Situation: Ich habe eine riesen Datenbank, die bei mehreren Auswertungen verwendet werden soll. Daher der Gedanke Makro. Dabei soll eine Datumsdifferenz gebildet werden. Dies habe ich mit dieser Formel gelöst : =WENN(N2 Wenn-Fkt wegen neg. Datum. Das war ja ok. Wenn ich aber nun die unteren Zellen fülle bzw. die unteren Datenreihe manuell fülle, kommt das richtige raus, Bsp.:

=WENN(N2<M2;DATEDIF(N2;M2;"d")*1;DATEDIF(M2;N2;"d")) -> Werrt wird berechnet bzw. angezeigt
=WENN(N3<M3;DATEDIF(N3;M3;"d")*1;DATEDIF(M3;N3;"d")) -> Werrt wird berechnet bzw. angezeigt
=WENN(N4<M4;DATEDIF(N4;M4;"d")*1;DATEDIF(M4;N4;"d")) -> Werrt wird berechnet bzw. angezeigt
=WENN(N5<M5;DATEDIF(N5;M5;"d")*1;DATEDIF(M5;N5;"d")) -> Werrt wird berechnet bzw. angezeigt

usw. bis Zeile 5000 befüllt.


ABER :22: , wenn ich dies nun aufzeichne, sprich Aufzeichnung beginne, Formel in eine Spalte einfüge, schmeißt der mir immer die gleiche Formel rein und bestätigt die auch nicht, also berechnet der das nicht. Da wird bis Spalte 5000 dies dargstellt. Mit "relativen Verweis" habe ich es bereits auch probiert. Leider auch erfolglos. Auch dass der bspw. den Wert nicht anzeigt sondern nur die Formeln bzw. Fkt.:
 
=WENN(N2<M2;DATEDIF(N2;M2;"d")*1;DATEDIF(M2;N2;"d")) -> Werrt wird nicht berechnet bzw. angezeigt
=WENN(N2<M2;DATEDIF(N2;M2;"d")*1;DATEDIF(M2;N2;"d")) -> Werrt wird nicht berechnet bzw. angezeigt
=WENN(N2<M2;DATEDIF(N2;M2;"d")*1;DATEDIF(M2;N2;"d")) -> Werrt wird nicht berechnet bzw. angezeigt
=WENN(N2<M2;DATEDIF(N2;M2;"d")*1;DATEDIF(M2;N2;"d")) -> Werrt wird nicht berechnet bzw. angezeigt
=WENN(N2<M2;DATEDIF(N2;M2;"d")*1;DATEDIF(M2;N2;"d")) -> Werrt wird nicht berechnet bzw. angezeigt


Das aufgezeichnete Makro:

Sub Anzahl_der_Tage()

' Anzahl_der_Tage Makro

    ActiveSheet.PasteSpecial Format:="Unicode-Text", Link:=False, _
        DisplayAsIcon:=False, NoHTMLFormatting:=True
    Selection.AutoFill Destination:=Range("W2:W5000"), Type:=xlFillDefault
    Range("W2:W5000").Select

End Sub


Ich hoffe ihr könnt mit helfen und bedanke mich im Voraus auf jegliche Tipps!!!

Huh
Antworten Top
#2
Hallo,

warum so eine monströse Formel? Das geht auch einfacher: (siehe Spalte P)

Tabelle1

MNOP
201.05.201728.07.20178888
328.07.201701.05.20178888
Formeln der Tabelle
ZelleFormel
O2=WENN(N2<M2;DATEDIF(N2;M2;"d")*1;DATEDIF(M2;N2;"d"))
P2=WENN(N2<M2;M2-N2;N2-M2)
O3=WENN(N3<M3;DATEDIF(N3;M3;"d")*1;DATEDIF(M3;N3;"d"))
P3=WENN(N3<M3;M3-N3;N3-M3)

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
Antworten Top
#3
Hi,

oder so:



Code:
=Datedif(min(m2;n2);Max(m2;n2);"d")
=abs(m2-n2)
abgesehen davon trägt das Makro einen Text in die Zellen ein und keine Formel:

Zitat:ActiveSheet.PasteSpecial Format:="Unicode-Text",
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#4
Hallo Opa Edgar, Hallo Klaus-Dieter,

erstmal ein Dankeschön für eure Tipps. Die kurze Formel funktioniert auch, Danke Klaus-Dieter. Aber wenn ich beim Makro aufzeichnen eine Spalte auswähle, die Formel eintrage und dann die Reihen senkrecht runterziehe bzw. befülle (Werte erscheinen in dem Moment):

15
15
24
24
24
24
24
24

und dann das Makro aufzeichnen beende und die Reihe lösche das Makro ausführen mache erscheint lediglich dies:

=WENN(N2 =WENN(N2 =WENN(N2 =WENN(N2 =WENN(N2  
und das über sämtliche Spalten.

Und bei Klaus-Dieter seinem Tipp erscheint wahr oder Falsch und keine Zahlen.
Zu deinem Zitat. Wie kann man das bewirken, dass das Makro Formeln mitberücksichtigt, einträgt und ausführt?
Ich denke, da liegt der Knackpunkt der ganzen Sache!


Mit freundlichen Grüßen....
Antworten Top
#5
Moin!
Man kann und sollte eine Formel gleich in den gesamten Bereich schreiben.
Dann braucht es nicht solche Klimmzüge.
Entweder
Code:
Range("W2:W5000").Formula = "=ABS(M2-N2)"
odetr
Code:
Range("W2:W5000").FormulaR1C1 = "=ABS(RC13-RC14)"

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Hola,

warum auch immer....

http://www.vba-forum.de/forum/View.aspx?...n-Fkt._VBA

Gruß,
steve1da
Antworten Top
#7
Hallo Mitglieder,

ich danke ganz arg für eure Hilfe!!!


Mit sehr freundlichen Grüßen
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste