Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
776to780
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
776to780
776to780
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel in Makro

Formel in Makro
26.06.2006 20:07:24
Thorsten_Z
Hallo,
ich möchte gerne folgende WENN-Formel in ein Makro einbinden
=WENN(UND(F3&gt0;Liste!O3&lt&gt"");Liste!O3;0)
Diese Formel Steht in Zelle R3
entsprechend steht die Formel in R4
=WENN(UND(F4&gt0;Liste!O4&lt&gt"");Liste!O4;0)
Das ganze geht momentan bis Zeile 4004. Würde ich sämtliche Formeln in der Mappe bis ans Tabellenende kopieren, wären das eine Menge an Daten, die vieleicht nie genutzt würden. Aber eben nur vieleicht... Darum soll das Makro "einfach" in Spalte R (Zeile für Zeile) durchgehen und aufgrund der Formel das entsprechende Ergebniss in die entsprechende Zelle (R3-R ultimo) schreiben.
Wie kann sowas gemacht werden?
Gruß Thorsten
Rückmeldung ist Ehrensache

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in Makro
26.06.2006 20:24:41
Ramses
Hallo
Zelle R3 wählen
Doppelklick auf das kleine schwarze Kästchen rechts unten im Zellrahmen
Gruss Rainer
AW: Formel in Makro
26.06.2006 20:44:59
Thorsten_Z
Hallo Ramses,
Danke für deine Antwort, aber wir schreiben grade aneinander vorbei.
Wie ich eine Formel kopiere weiß ich. Danke :-) aber genau das will ich ja nicht. Ich will in Spalte R gar keine Formeln haben. Die Berechnung soll ja das Makro übernehmen und nur das Ergebniss, entsprechend der bedingungen in der Formel, in die entsprechende Zelle der Spalte R schreiben. Und das ganze von Zeile 3 bis Ende
Gruß
Thorsten
AW: Formel in Makro
26.06.2006 20:57:47
Ramses
Hallo
Nein, wir schreiben nicht aneinander vorbei.
Der Doppelklick koopiert die Formel genau so weit, wie links davon Daten stehen.
Diese Formeln vergrössern die Tabelle nur unerheblich
Zu deiner Anforderung:
1. Du musst sicherstellen, dass das Makro jedesmal ausgelöst wird und die Daten in den Spalten F und O geändert werden.
Werden die Daten in F und O nur berechnet, funktioniert das ganze nicht und du musst das über ein Calculate Ereignis auslösen.
Am einfachsten, wenns unbedingt per makro sein muss:
Starte den Makrorekorder
Vergib einen Namen
Vergib einen Shortcut
Kopiere die Zelle in R3 mit einem Doppelklick
Anschliessend Spalte R markieren
Bearbeiten - Kopieren
Bearbeiten - Inhalte einfügen
Aufzeichnung beenden
Nun kannst du das Makro immer aufrufen.
Gruss Rainer
Anzeige
AW: Formel in Makro
26.06.2006 22:47:08
Thorsten_Z
Hallo Ramses,
Jetzt habe ich verstanden was du gemeint hast.
Bin deinen Anweisungen gefolgt und hat auch geklappt.
Aber hier habe ich ja wieder Formeln in den Zellen der Spalte R. Das möchte ich ja nicht so gerne.
Danke für deine Zeit und Mühe
Gruß
Thorsten
AW: Formel in Makro
26.06.2006 23:04:07
Ramses
Hallo
Du musst bei der Aufzeichnung
Bearbeiten - Inhalte einfügen - Werte
wählen. Dann werden statt der vorher kopierten Formeln nur die entsprechenden Werte eingefügt.
Gruss Rainer
AW: Formel in Makro
26.06.2006 23:15:51
Thorsten_Z
Hallo,
da lag der Hase im Pfeffer...
Aber der Vorschlag von Ingo trifft genau das, was ich suche. Habe nur vergessen zu erwähnen, dass in Liste O keine Zahl sondern Text ist...
Anzeige
...Trotzdem Danke Ramses o.t.
26.06.2006 23:17:39
Thorsten_Z
..
AW: Formel in Makro
26.06.2006 21:17:26
ingoG
Hallo Thorsten,
ganz klar ist es mir noch nicht aber schau Dir mal diese Macro an...
hier wird im aktuellen Blatt in in spalte R ab zeile 3 bis zum letzten Eintrag in Spalte F der entsprechend berechnete wert eingetragen...
Gruß Ingo
PS eine Rückmeldung wäre nett...
Option Explicit

Sub test()
Dim zelle As Range
Dim Bereich As Range
Set Bereich = Range("O3", "O" & Range("F65536").End(xlUp).Row)
For Each zelle In Bereich
zelle = Worksheets("Liste").Range("O" & zelle.Row) * _
(Worksheets("Liste").Range("O" & zelle.Row) <> "") * _
(Range("F" & zelle.Row) > 0)
Next zelle
End Sub

Anzeige
AW: Formel in Makro
26.06.2006 22:52:12
Thorsten_Z
Hallo Ingo,
Dein Makro verursacht leider einen Laufzeitfehler 13 (Typen unverträglich).
Ich weiß nicht warum...
Hab ich was übersehen?
Ich brauche doch nicht irgendetwas anpassen, oder?
Gruß
Thorsten
AW: Formel in Makro
26.06.2006 22:57:28
IngoG
Hallo thorsten,
kann mehrere Gründe dafür geben, aber am wahrscheinlichsten stehen in Liste O3:O? nicht nur Zahlen, sondern auch text...
Kannst ja mal mit dem Debugger schritt für schritt durch das macro laufen.
Gruß Ingo
Du hast recht...
26.06.2006 23:04:34
Thorsten_Z
...in Liste O ist Text und keine Zahl. Hab ich jetzt nicht dran gedacht, das zu erwähnen. Das Makro hält an bei
zelle = Worksheets("Liste").Range("O" & zelle.Row) * _
(Worksheets("Liste").Range("O" & zelle.Row) &lt&gt "") * _
(Range("F" & zelle.Row) &gt 0)
Hast du zufällig eine Codezeile parat, die das berücksichtigt?
Gruß Thorsten
Anzeige
AW: Du hast recht...
27.06.2006 10:21:06
ingoG
Hallo Thorsten,
dann sollte es so funzen:

Sub test()
Dim zelle As Range
Dim Bereich As Range
Set Bereich = Range("O3", "O" & Range("F65536").End(xlUp).Row)
For Each zelle In Bereich
if (Worksheets("Liste").Range("O" & zelle.Row) <> "") and _
(Range("F" & zelle.Row) > 0) then
zelle = Worksheets("Liste").Range("O" & zelle.Row)
else
zelle = 0
endif
Next zelle
End Sub

Gruß Ingo
Perfekt. das wars...Danke o.t.
27.06.2006 10:40:22
Thorsten_Z
Gerne, danke für die Rückmeldung oT
27.06.2006 10:52:09
ingoG
.
AW: Gerne, danke für die Rückmeldung oT
27.06.2006 23:07:51
Dörte
hallo thorsten,
wie ich gesehen habe, arbeiten wir an dem gleichen problem. schau dir doch mal ins
archiv 776001 bis 780000
unter 24.06.2006 00:20:25 formel durch makro automatisch ersetzen Dörte
rein. vielleicht ist das eine alternative.
gruß dörte
Anzeige
Hallo Dörte...
28.06.2006 00:14:53
Thorsten_Z
Hab mir das mal angeschaut. Aber ich muß ehrlich sagen, dass ich am zweifeln bin ob ich es über ein Makro machen soll. Zwei Gründe die dagegen sprechen:
Erstens, wie Ramses sagte..."Diese Formeln vergrössern die Tabelle nur unerheblich"
Und zweitens aus deinem Threed von schauan..."Manchmal rechnet aber auch Excel per Formel auf dem Blatt schneller ;-)"
Sie haben beide recht!!!
Es ist ärgerlich um die Arbeit die Ramses und Ingo damit hatten, aber für mich bringt es, wie zu Anfang anders angenommen, leider keine nennenswerten Vorteile.
Aber Danke für deinen Tip
Gruß
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige