Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro





Frage

Moin Leute! Ich will, dass Makro die unten angegebene Formel in eine andere Zeile kopiert. Es steht aber immer, "Makro kann nicht aufzeichnen"! Formel: =WENN((SUMMEWENN(B420:B455;B3; C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<1 ;RUNDEN(ZUFALLSZAHL()*10/4;0);WENN((SUMMEWENN( B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455 ;C3;C420:C455))<10;RUNDEN(ZUFALLSZAHL()*10/3;0) ;WENN((SUMMEWENN(B420:B455;B3;C420:C455))- (SUMMEWENN(B420:B455;C3;C420:C455))<30; RUNDEN(ZUFALLSZAHL()*10/2,5;0);WENN ((SUMMEWENN(B420:B455;B3;C420:C455))- (SUMMEWENN(B420:B455;C3;C420:C455))<50; RUNDEN(ZUFALLSZAHL()*10/1,8;0);WENN ((SUMMEWENN(B420:B455;B3;C420:C455))-( SUMMEWENN(B420:B455;C3;C420:C455))<-30; RUNDEN(ZUFALLSZAHL()*10/5;0);RUNDEN (ZUFALLSZAHL()*10/1,1;0)))))) Was jemand warum Excel dies nicht aufzeichnet? Danke für die Hilfe! Gruß

Antwort 1 von Saarbauer

Hallo,

nur die Formel kannst du nicht als Makro aufzeichnen, was gehört den noch dazu?

Gruß

Helmut

Antwort 2 von Olli19

Hallo Helmut!

Weshalb kann ich keine Formel nur so mit dem Makro kopieren?

Es ist aber nur die Formel, die ich aufzeichnen will!

Antwort 3 von piano

Hallo
Siehe AW 1. Was willst du damit erreichen?
Die Formel kannst du mit z.B.
ActiveCell.Formula="=WENN((SUMMEWENN(B420:B455;B3;
C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<1
;RUNDEN(ZUFALLSZAHL()*10/4;0);WENN((SUMMEWENN(
B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455
;C3;C420:C455))<10;RUNDEN(ZUFALLSZAHL()*10/3;0)
;WENN((SUMMEWENN(B420:B455;B3;C420:C455))-
(SUMMEWENN(B420:B455;C3;C420:C455))<30;
RUNDEN(ZUFALLSZAHL()*10/2,5;0);WENN
((SUMMEWENN(B420:B455;B3;C420:C455))-
(SUMMEWENN(B420:B455;C3;C420:C455))<50;
RUNDEN(ZUFALLSZAHL()*10/1,8;0);WENN
((SUMMEWENN(B420:B455;B3;C420:C455))-(
SUMMEWENN(B420:B455;C3;C420:C455))<-30;
RUNDEN(ZUFALLSZAHL()*10/5;0);RUNDEN
(ZUFALLSZAHL()*10/1,1;0)))))) "
ein eine Zelle einfügen - ungetestet!
Gruss piano

Antwort 4 von Saarbauer

Hallo,

ein Makro ist ein Programmierter Programmablauf.
Eine Formel ist eine Formel, es läuft kein Programm ab.

Wenn du dem Makro "sagst" schreibe die Formel in Zelle B15 und anschliessend rückst du 3Zeilen und 5 Spalten weiter und schreibst dort nocheinmal die formel in diese Zelle, dann hast du ein Makro

Gruß

Heölmut

Antwort 5 von Olli19

Hallo,

aber wenn ich schon auf diese Formel gehe und will sie nur kopieren, dann sagt mir Makro: "Kann nicht aufzeichnen"!

Das verstehe ich schon nicht, bei allen anderen Formeln macht er ja das aufzeichnen, nur bei dieser nicht!

Antwort 6 von Olli19

Ich will damit erreichen, dass, wenn man auf die Schaltfläche klickt, eine bestimmte Zahl rauskommt (=eine Zufallszahl natürlich)!
Und ich will das dann so haben, dass sich diese Zahl nur verändert, wenn man auf diese Schaltfläche klickt, da wüsste ich auch schon wie ich das mache, nämlich auf Optionen und Manuell einstellen. Nur das Makro zeichnet das ja nicht mal auf! Gibt es vielleicht eine andere Möglichkeit, dass diese Formel in eine bestimmte Zelle kommt mit einem Klick, aber so, dass man sie nicht immer eingeben muss, sondern die hat schon ihre bestimmte Zelle???

Danke schon mal Helmut für die Mühe!

Antwort 7 von Saarbauer

Hallo,

dein Makro müsste etwa so aussehen:

Sub Makro1()
    Range("A2").Select
    ActiveCell.FormulaR1C1 = "=RAND()"
    Range("A2").Select
End Sub


Wobei die in der Zeile
ActiveCell.FormulaR1C1 = "=RAND()"
durch deine Formel
=WENN((SUMMEWENN(B420:B455;B3;
C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<1
;RUNDEN(ZUFALLSZAHL()*10/4;0);WENN((SUMMEWENN(
B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455
;C3;C420:C455))<10;RUNDEN(ZUFALLSZAHL()*10/3;0)
;WENN((SUMMEWENN(B420:B455;B3;C420:C455))-
(SUMMEWENN(B420:B455;C3;C420:C455))<30;
RUNDEN(ZUFALLSZAHL()*10/2,5;0);WENN
((SUMMEWENN(B420:B455;B3;C420:C455))-
(SUMMEWENN(B420:B455;C3;C420:C455))<50;
RUNDEN(ZUFALLSZAHL()*10/1,8;0);WENN
((SUMMEWENN(B420:B455;B3;C420:C455))-(
SUMMEWENN(B420:B455;C3;C420:C455))<-30;
RUNDEN(ZUFALLSZAHL()*10/5;0);RUNDEN
(ZUFALLSZAHL()*10/1,1;0))))))

zu ersetzen ist.

Wenn du bei "Makro""Opitonen" einen Buchstaben festlegst, kannst mit "Strg" + (Buchstabe) jedesmal das Makro starten

Vielleich versuchst du zum Test es erst mal mit meiner Formel. Deine Formel habe ich nicht ausprobiert. ist zuviel aufwad eine entsprechende Tabelle zu erstellen

Gruß

Helmut

Antwort 8 von Olli19

Hallo,

das Makro kann ja alle anderen Formeln außer die Formel, die ich aufzeichnen will, aufzeichnen!

Liegt es vielleicht an der Formel?

=WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<1;RUNDEN(ZUFALLSZAHL()*10/4;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<10;RUNDEN(ZUFALLSZAHL()*10/3;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<30;RUNDEN(ZUFALLSZAHL()*10/2,5;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<50;RUNDEN(ZUFALLSZAHL()*10/1,8;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<-30;RUNDEN(ZUFALLSZAHL()*10/5;0);RUNDEN(ZUFALLSZAHL()*10/1,1;0))))))

Antwort 9 von coros

Hi Olli,

ich werde jetzt hier keinen Lösungsversuch machen, da ja hier schon zwei andere kompetente Helfer am Werk sind, aber nur mal eine Frage am Rande: Testest Du eigentlich auch mal die hier angebotenen Lösungsvorschläge oder geht es Dir nur noch darum, dass Du kein Makro mit der von Dir hier aufgeführten Formel aufzeichnen kannst? Bis jetzt bist Du noch auf keinen Lösungsvorschlag eingegangen, sondern sprichst/ schreibst nur über das Problem bei der Makroaufzeichnung. Eventuell solltest Du das mal bei Seite schieben und die Lösungen durchprobieren.

Außerdem halte ich die Aussage

Zitat:
bestimmte Zahl rauskommt (=eine Zufallszahl natürlich)


für einen Widerspruch. Eine Zufallszahl kann/ wird keine bestimmte Zahl sein, sonst wäre es ja keine Zufallszahl.

Schönen Abend noch und denke mal über meine Worte nach.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 10 von Olli19

Hallo,

darüber muss ich nicht denken, weil ich alles probiert habe, was mir angeboten wurde und ich noch selbst danach suche, wie es doch geht, nur es klappt nichts

Antwort 11 von coros

Hi Olli,

dann solltest Du hier vielleicht mal hinschreiben was an den Lösungen von Helmut und piano nicht funktioniert, damit man an diesen Lösungsversuchen weiterarbeiten kann.

Ich würde ja helfen, habe aber ehrlich gesagt noch immer nicht verstanden, ob es nun darum geht die Formel per Makro hinzuschreiben oder um das Anzeigen einer Zufallszahl bei jedem Makrodurchlauf. Wenn es nur um die Zufallszahl geht, kann man das auch ohne diese Formel regeln, sondern mit der Rnd-Funktion (Zufallszahlfunktion in VBA).

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 12 von Olli19

Hi Coros,

also bei den anderen Lösungsversuchen ist es immer noch das gleiche Problem, dass er diese Formel nicht aufzeichnet.
Könnte es vielleicht sein, dass die Formel zu lang ist oder spielt
das keine Rolle beim Makro.

Ich scgreibe jetzt nochmal zur verdeutlichung hin, was ich erreichen will, denn ich gebe zu, ich habe bisher wenig Infos hineingeschrieben.

Also, die Formel bedeutet soviel, dass in den Spalten B und C Fussballmannschaften stehen. In den Spalten D und E soll die se Formel hinein. Es soll aus dieser Formel ein Ergebnis entstehen z.B. 2:2! Das klappt ja auch alles, nur ich will jetzt nicht immer diese Formel dort hinschreiben oder hineinkopieren, sondern halt mit einem Makro per Klick diese Formel in die Zellen kopieren. Also am Anfang muss ich überall diese Formel hineinkopieren, aber es gibt ja auch mehrere Saisons und dann bräuchten ich beim 2.mal nur noch auf die Schaltfläche klicken und schon entsteht diese Formel. Dann kommt der nächste Knackpunkt, es soll nur einmal ausgeführt werden, da sich ja die Zufallszahl immer verändert, wenn man woanders irgendwas einträgt, dass sollte auch nicht sein, aber das kann man ja dann, wenn man das mit dem Makro geschafft hat, ja auf "Optionen","Berechnung" und dann auf "maunuell" ändern. Das wäre nicht das Problem, nur wie bekomme ich es hin, dass die Formel mit einem Klick oder irgendwas anderem dort in die Zellen auftaucht.

Danke schon mal für die bisherigen Beiträge

MfG
Olli19

Antwort 13 von Saarbauer

Hallo,

jetzt ist klar was du willst, also doch etwas mehr als nur die Formel, dein Makro müsste etwa so aussehen:

Sub Makro1()
Range("Cxxx:Dyyy" ).Select
ActiveCell.FormulaR1C1 = "=RAND()"
End Sub

Wobei die in der Zeile anstelle von "=RAND()"deine Formel einzusetzen ist und in der Zeile Range("Cxxx:Dyyy" ).Select ist xxx und yyy durch deine aktuellen Zahlen zu ersetzen. wobei xxx die erste und yyydie letzte Zeile der Tabelle ist

dann weiter wie in AW 7

Gruß

Helmut

Antwort 14 von coros

Hi Olli,

nachfolgendes Makro kopiere in ein "StandardModul" und starte es über eine Befehlsschaltfläche.

Option Explicit

Sub Formel_einfügen()
Range("D1:E10").FormulaLocal = "=WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<1;RUNDEN(ZUFALLSZAHL()*10/4;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<10;RUNDEN(ZUFALLSZAHL()*10/3;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<30;RUNDEN(ZUFALLSZAHL()*10/2,5;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<50;RUNDEN(ZUFALLSZAHL()*10/1,8;0);WENN((SUMMEWENN(B420:B455;B3;C420:C455))-(SUMMEWENN(B420:B455;C3;C420:C455))<-30;RUNDEN(ZUFALLSZAHL()*10/5;0);RUNDEN(ZUFALLSZAHL()*10/1,1;0))))))"
End Sub


Mit diesem Makro wird Dir die Formel in die Zelle D1 bis E10 (den Bereich musst Du noch anpassen) eingefügt.

Ich hoffe, Du kommst klar. Bei Fragen melde Dich bitte wieder. Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 3 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 15 von Olli19

Hallo,

erst mal Danke schön, ich werde es jetzt mal ausprobieren!

Antwort 16 von Olli19

Hi,

Danke Coros, es klappt!!!!

Nur leider folgt ein nächstes Problem, kann man anstelle von der tastenkombination strg + x" auch eine Schaltfläche nehmen oder geht es dann nicht?

Danke, ihr seit echt super!!

Gruß Olli19

Antwort 17 von coros

Hi Olli,

wenn Du Dir die Anleitung auf meiner Homepage bis zum Ende durchgelesen hättest, dann hättest Du auch lesen müssen, dass solch ein Makro z.B. über eine Schaltfläche gestartet werden kann. Weiterhin steht dort:
Zitat:

Lese dazu die Anleitung: Anleitung zum Einfügen einer Befehlsschaltfläche


Also, schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 4 nach. Dort stelle ich dazu ebenfalls eine bebilderte Anleitung zur Verfügung.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 18 von Olli19

Hallo nochmal!

Hab noch eine Frage!

Kann man per Makro Musiktitel abspielen?

Antwort 19 von coros

Hi Olli,

ja, das kann man machen. Kopiere nachfolgende Makros in ein "StandardModul" und starte jedes Makro über je eine Befehlsschaltfläche.

Option Explicit

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal Hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub Start()
Dim MediaPlayer As Variant, Lied As String
Lied = "Hier den Liedernamen angeben"
MediaPlayer = Shell("C:\Programme\Windows Media Player\wmplayer.exe " & ThisWorkbook.Path & "\" & Lied, vbHide)
End Sub

Sub Stopp()
SendMessage FindWindow(vbNullString, "Windows Media Player"), &H10, 0, 0
End Sub


Mit dem Makro "Start" wird ein Lied mit dem Mediaplayer abgespeilt und mit dem Makro "Stopp" wieder beendet. Du musst allerdings noch in dem Makro "Start" in der Zeile

Lied = "Hier den Liedernamen angeben"


den Liedrnamen einschließlich der Endung, also .mp3 oder .WMA, angeben. Außerdem muss sich die Musikdatei in dem gleichen Pfad wie die Exceldatei befinden.

Ich hoffe, Du kommst klar. Wenn nicht, dann melde Dich bitte.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 20 von Olli19

Hallo Coros!

Ich bedanke mich erst mal, du bist einfach nur super!

Ich werde das schnellstmöglich mal ausprobieren, ob es klappt, wenn ich Zeit dazu habe!

Erstmal Danke!!

MfG
Olli

Antwort 21 von Rose02

Hallo everybody,
ich verstehe wirklich nicht das ganze Theater: Ich habe mal ebven die Formel kopiert ( strg-c) und aufgezeichnet ( Extra-Makro-aufzeihnen-strg-v) - No problem - anschließend habe ich sie problemlos in weiteren Arbeitsmappen anweden können. Wo ist das Problem ?????
Gruß Rose02

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: