Anzeige
Archiv - Navigation
1044to1048
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

Makroaufzeichnung

Makroaufzeichnung
06.02.2009 14:30:00
Ferenz
Hallo Excel-Profis,
ich habe ein kleines Problemchen. Ich wollte ein Makro aufzeichnen, dass mir den relativen Zahlenwert eines Bezuges innerhalb einer Formel durch das Klicken der F9-Taste in einen absoluten Wert transferiert. Aber zu meinem erstaunen zeichnet der Markorekorder nur den absoluten Wert auf.
Der Macro-Code sieht folgendermaßen aus:

Sub TG()
' TG Makro
' Tages-Gewinn= Addiert das Stammkapital am Anfang des Tages mit den Tagesgewinnen.
Range("B14").Select
Selection.Copy
Range("C13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=1487.73+R[-4]C[6]+R[10]C"
Range("C13").Select
End Sub


Ich denke das liegt wohl an der 3. letzten Zeile mit dem Wert 1487.73. Dieser Wert soll relativ sein und durch F9-Taste dann in einen absoluten Wert gesetzt werden. Aber das Marco zeichnet nur den absoluten Wert auf. Meine Aktion mit der F9-Taste scheint der Recoder vollkommen zu ignorieren. Bei der Excel-Version 2007 gibt es noch die Recorder-Option relative Aufzeichnung. Mit der habe ich auch rumexperimentiert, aber dass scheint nicht meinen Fall zu betreffen.
Kann mir bitte jemand bei meinem kleinen Problem helfen.
Besten Dank
Ferenz

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

Betreff
Datum
Anwender
Anzeige
AW: Makroaufzeichnung
06.02.2009 14:54:00
Horst
Hi,
relative Aufzeichnung musst du explizit festlegen.
mfg Horst
AW: Makroaufzeichnung
06.02.2009 16:39:00
Ferenz
Hallo Horst,
Danke für Deine Antwort.
Sorry, habe absolut keine Ahnung von Macros. Kann nur aufzeichnen. Wie macht man eine explizite Festlegung einer relativen Aufzeichnung.
Gruß
Ferenz
Makroaufzeichnung erzeugt SCHLECHTES VBA !
06.02.2009 14:57:00
NoNet
Hallo Ferenz,
der Code, der durch den Makrorekorder erzeugt wird, kann man allenfalls als "VBA-ähnlichen Code" bezeichnen, auf jeden Fall ist dieser fast immer deutlich optimierbar.
Wenn ich Deinen Codeschnipsel richtig gedeutet habe, soll der Wert aus B14 nach C13 kopiert werden und dann die Zellen E9 + C10 addiert werden ?
Das macht folgender Code :
VBA-Code:
Sub TG()
' TG Makro
' Tages-Gewinn= Addiert das Stammkapital am Anfang des Tages mit den Tagesgewinnen.
'
    With Range("C13")
        .Value = Range("B14").Value + [E9].Value + [C10].Value
        .Select
    End With
End Sub
Gruß, NoNet
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Ferenz

Hallo NoNet,
Danke für Deine Mithilfe.
Habe Deinen Code 1 zu 1 reinkopiert. Dabei kam ein Laufzeitfehler 13 mit Typenunveträglichkeit.
Habe dann die Zellen an meine angepasst. So kommt wenigstens der Wert raus den ich haben möchte. Was fehlt sind jetzt noch die relativen Bezüge zu den beiden Zellen I9 und C23. Die sind bei Deinem angepasstem Code absolut.
Der angepasste Code sieht jetzt so aus.

Sub TG()
' TG Makro
' Tages-Gewinn= Addiert das Stammkapital am Anfang des Tages mit den Tagesgewinnen.
With Range("C13")
.Value = Range("B14").Value + [I9].Value + [C23].Value
.Select
End With
End Sub


Gruß
Ferenz

AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Daniel

HI
relative Zellbezüge innerhalb von VBA erzeugst du mit dem OFFSET-Befehl:

with Range("C13")
.value = Range("B14").value + .Offset(-4,2).Value + .Offset(-3,0).value
.Select
End with


Gruß, Daniel

AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Ferenz

Hallo Daniel,
habe Dein Macro 1zu1 rein´kopiert, aber da kommt immer wieder die Fehlermeldung
"Laufzeitfehler '13'
Typen unverträglich"
Was mache ich da falsch und wi sind die Ziffern in Klammer zu verstehen? Ich mein, wie beziehen sich diese in Klammern gesetzten Zahlen auf meine C23 und I9?
"Offset(-4,2).Value + .Offset(-3,0).value"
Gruß
Ferenz
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Daniel

Hi
mal als beispiel:
Range("A1").Offset(1,3) entspricht Range("D2")
Range("C10").Offset(-1, -2) entspricht Range("A9")
Gruß, Daniel
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Ferenz

Hallo Daniel,
danke für Deine Antwort. Leider verstehe ich die Logik nicht, die dahinter steckt.
Mein Makro funktioniert immer noch nicht.
Ich habe die Datei hochgeladen.
https://www.herber.de/bbs/user/59269.xls
Es geht um Gesamt-Gewinn (Tages-Bilanz) [BG] und Tages-Gewinn [TG].
Habe das Makro für TB bereits erstellt:
C13 [TG]=B14 (relativer Wert) +I9 (relativer Wert)
Das Makro für TG soll wie folgt aussehen:
C13 [TG] = B14 (absoluter Wert) + I9 (relativer Wert) + C23 (relativer Wert)
Am Tages-Ende klicke ich auf TB, um die Gesamt-Bilanz zu erhalten.
Am Tages-Anfang klicke ich auf TG, um die Tages-Gewinne laufend auf die Gesamt-Bilanz fortzuschreiben.
Kannst Du mir bitte helfen.
Netter Gruß
Ferenz
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Daniel

HI
die Beipspieldatei enthält kein Makro
und mir ist auch noch nicht so ganz klar, was du erreichen willst.
Gruß, Daniel
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Ferenz

Hallo Daniel,
also ich weiß nicht warum das Makro in der Datei verschwunden ist. Bei mir geht es. Aber egal.
Ok allgmein was ich will ist folgendes.
Mit dem ersten Makro will ich eine Summe, die über alle Bezüge hinweg relativ ist. (Das habe ich hingekriegt).
Mit dem zweiten Makro will ich eine Summe, die den Wert aus B14 in einen absoluten Wert ändert und einen relativen Bezug zu den tagesaktuellen Gewinnen herstellt. (Das klappt nicht)
Mein Problem liegt beim zweiten Makro.
Ich habe die Makro-Aufzeichnung wie folgt durchgeführt.
- Makro-Recorder gestartet
- Auf Zelle C13 geklickt
- In Zelle C13 Gleichheitszeichen gesetzt
- Auf Zelle B14 geklickt
- In Zelle C13 habe ich in der Formel den relativen Bezug B14 markiert und mit der F9-Taste zu einem absoluten Wert geändert
- In Zelle C13 die Formel erweitert durch Plus-Zeichen
- Auf Zelle I9 geklickt
- In Zelle C13 die Formel erweiert durch Plus-Zeichen
- Auf Zelle C23 geklickt.
- Enter gedrückt
- Makro-Rekorder beendet.
Mein Problem ist jetzt, dass das Makro immer den ursprünglichen absoluten Wert nimmt und nicht den aktuellen Wert aus Zelle B14 und das dann in einen absluten ändert wie ich es mit der F9-Taste gemacht habe. (siehe unten Formel kursiv)
Sprich wenn in B14= 1000 € stand. Dann bleiben diese 1000 € für immer und ewig 1000 €. Ich will aber immer den aktuellen Wert aus B14, der sich täglich ändert.
Habe ein kleinen Tipp-Fehler in der Bezeichnung des ersten Makros. Sorry. Sieht korrekt dann so aus.
Korrektur ist fett markiert.
1. Makro für TB:
C13 [TB]=B14 (relativer Wert) +I9 (relativer Wert)
2. Makro für TG soll wie folgt aussehen:
C13 [TG] = B14 (relativer Wert durch F9-Taste in einen absoluten Wert ändern) + I9 (relativer Wert) + C23 (relativer Wert)
Hoffe es ist nun verständlicher
Mit freundlichen Grüßen
Ferenz
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Daniel

Hi
du must unterscheiden zwischen Formeln bzw Festen Werten auf der einen Seite und relativen und absoluten Zellbezügen auf der anderen Seite.
mit der Taste F9 wandelst du eine Formel in einen festen Wert um, mit der Taste F4 hingegen änderst du den Zellbezug einer Formel von Absolut zu Relativ und wieder zurück.
Gruß, Daniel
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Ferenz

Hallo Daniel,
das ist mir schon klar, Ich will aber das die Umwandelung mittels F9-Taste nicht ich, sondern das Makro ausführen soll so wie ich den Ablauf auch beschrieben habe. Aber der Rekorder zeichnet mir diese Umwandelung mittels F9-Taste nicht auf.
Wie bekomme ich das Mittels Makro hin ohne es jedesmal manuell die F9-Taste zu betätigen?
Gruß
Ferenz
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
Ferenz

Ah, Sorry jetzt habe ich gemerkt wo das Mißverständnis liegt. Mein Fehler.
Du hast natürtlich recht das die F9-Taste den Wert in einen festen Wert umwandelt. Das hatte ich gemeint mit absolut. Sorry. Der Rekorder zeichnet mir den festen Wert auf für immer und ewig und merkt sich nicht, dass der Wert mal ein relativer Bezug war.
Gruß
Anzeige
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
06.02.2009 16:36:18
Ferenz
Hallo NoNet,
Danke für Deine Mithilfe.
Habe Deinen Code 1 zu 1 reinkopiert. Dabei kam ein Laufzeitfehler 13 mit Typenunveträglichkeit.
Habe dann die Zellen an meine angepasst. So kommt wenigstens der Wert raus den ich haben möchte. Was fehlt sind jetzt noch die relativen Bezüge zu den beiden Zellen I9 und C23. Die sind bei Deinem angepasstem Code absolut.
Der angepasste Code sieht jetzt so aus.

Sub TG()
' TG Makro
' Tages-Gewinn= Addiert das Stammkapital am Anfang des Tages mit den Tagesgewinnen.
With Range("C13")
.Value = Range("B14").Value + [I9].Value + [C23].Value
.Select
End With
End Sub


Gruß
Ferenz

Anzeige
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
06.02.2009 20:56:42
Daniel
HI
relative Zellbezüge innerhalb von VBA erzeugst du mit dem OFFSET-Befehl:

with Range("C13")
.value = Range("B14").value + .Offset(-4,2).Value + .Offset(-3,0).value
.Select
End with


Gruß, Daniel

AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
07.02.2009 13:07:35
Ferenz
Hallo Daniel,
habe Dein Macro 1zu1 rein´kopiert, aber da kommt immer wieder die Fehlermeldung
"Laufzeitfehler '13'
Typen unverträglich"
Was mache ich da falsch und wi sind die Ziffern in Klammer zu verstehen? Ich mein, wie beziehen sich diese in Klammern gesetzten Zahlen auf meine C23 und I9?
"Offset(-4,2).Value + .Offset(-3,0).value"
Gruß
Ferenz
Anzeige
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
08.02.2009 21:35:39
Daniel
Hi
mal als beispiel:
Range("A1").Offset(1,3) entspricht Range("D2")
Range("C10").Offset(-1, -2) entspricht Range("A9")
Gruß, Daniel
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
09.02.2009 12:54:09
Ferenz
Hallo Daniel,
danke für Deine Antwort. Leider verstehe ich die Logik nicht, die dahinter steckt.
Mein Makro funktioniert immer noch nicht.
Ich habe die Datei hochgeladen.
https://www.herber.de/bbs/user/59269.xls
Es geht um Gesamt-Gewinn (Tages-Bilanz) [BG] und Tages-Gewinn [TG].
Habe das Makro für TB bereits erstellt:
C13 [TG]=B14 (relativer Wert) +I9 (relativer Wert)
Das Makro für TG soll wie folgt aussehen:
C13 [TG] = B14 (absoluter Wert) + I9 (relativer Wert) + C23 (relativer Wert)
Am Tages-Ende klicke ich auf TB, um die Gesamt-Bilanz zu erhalten.
Am Tages-Anfang klicke ich auf TG, um die Tages-Gewinne laufend auf die Gesamt-Bilanz fortzuschreiben.
Kannst Du mir bitte helfen.
Netter Gruß
Ferenz
Anzeige
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
10.02.2009 00:35:00
Daniel
HI
die Beipspieldatei enthält kein Makro
und mir ist auch noch nicht so ganz klar, was du erreichen willst.
Gruß, Daniel
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
10.02.2009 13:22:52
Ferenz
Hallo Daniel,
also ich weiß nicht warum das Makro in der Datei verschwunden ist. Bei mir geht es. Aber egal.
Ok allgmein was ich will ist folgendes.
Mit dem ersten Makro will ich eine Summe, die über alle Bezüge hinweg relativ ist. (Das habe ich hingekriegt).
Mit dem zweiten Makro will ich eine Summe, die den Wert aus B14 in einen absoluten Wert ändert und einen relativen Bezug zu den tagesaktuellen Gewinnen herstellt. (Das klappt nicht)
Mein Problem liegt beim zweiten Makro.
Ich habe die Makro-Aufzeichnung wie folgt durchgeführt.
- Makro-Recorder gestartet
- Auf Zelle C13 geklickt
- In Zelle C13 Gleichheitszeichen gesetzt
- Auf Zelle B14 geklickt
- In Zelle C13 habe ich in der Formel den relativen Bezug B14 markiert und mit der F9-Taste zu einem absoluten Wert geändert
- In Zelle C13 die Formel erweitert durch Plus-Zeichen
- Auf Zelle I9 geklickt
- In Zelle C13 die Formel erweiert durch Plus-Zeichen
- Auf Zelle C23 geklickt.
- Enter gedrückt
- Makro-Rekorder beendet.
Mein Problem ist jetzt, dass das Makro immer den ursprünglichen absoluten Wert nimmt und nicht den aktuellen Wert aus Zelle B14 und das dann in einen absluten ändert wie ich es mit der F9-Taste gemacht habe. (siehe unten Formel kursiv)
Sprich wenn in B14= 1000 € stand. Dann bleiben diese 1000 € für immer und ewig 1000 €. Ich will aber immer den aktuellen Wert aus B14, der sich täglich ändert.
Habe ein kleinen Tipp-Fehler in der Bezeichnung des ersten Makros. Sorry. Sieht korrekt dann so aus.
Korrektur ist fett markiert.
1. Makro für TB:
C13 [TB]=B14 (relativer Wert) +I9 (relativer Wert)
2. Makro für TG soll wie folgt aussehen:
C13 [TG] = B14 (relativer Wert durch F9-Taste in einen absoluten Wert ändern) + I9 (relativer Wert) + C23 (relativer Wert)
Hoffe es ist nun verständlicher
Mit freundlichen Grüßen
Ferenz
Anzeige
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
10.02.2009 21:42:24
Daniel
Hi
du must unterscheiden zwischen Formeln bzw Festen Werten auf der einen Seite und relativen und absoluten Zellbezügen auf der anderen Seite.
mit der Taste F9 wandelst du eine Formel in einen festen Wert um, mit der Taste F4 hingegen änderst du den Zellbezug einer Formel von Absolut zu Relativ und wieder zurück.
Gruß, Daniel
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
10.02.2009 23:06:00
Ferenz
Hallo Daniel,
das ist mir schon klar, Ich will aber das die Umwandelung mittels F9-Taste nicht ich, sondern das Makro ausführen soll so wie ich den Ablauf auch beschrieben habe. Aber der Rekorder zeichnet mir diese Umwandelung mittels F9-Taste nicht auf.
Wie bekomme ich das Mittels Makro hin ohne es jedesmal manuell die F9-Taste zu betätigen?
Gruß
Ferenz
Anzeige
AW: Makroaufzeichnung erzeugt SCHLECHTES VBA !
10.02.2009 23:13:00
Ferenz
Ah, Sorry jetzt habe ich gemerkt wo das Mißverständnis liegt. Mein Fehler.
Du hast natürtlich recht das die F9-Taste den Wert in einen festen Wert umwandelt. Das hatte ich gemeint mit absolut. Sorry. Der Rekorder zeichnet mir den festen Wert auf für immer und ewig und merkt sich nicht, dass der Wert mal ein relativer Bezug war.
Gruß

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige