Clever-Excel-Forum

Normale Version: Potenzen im Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Leute,

ich bin noch recht unerfahren was das Schreiben von Makros in Excel angeht. Ich möchte im Makro eine Rechnung durchführen, die Potenzieren erfordert. Dazu habe ich eine Variable als Double erstellt, dieser einen Wert aus einer Zelle zugewiesen und in meiner Formel verwendet. Als ich das Makro anwenden wollte, bekam ich die Fehlermeldung: "Fehler beim Kompilieren: Typkennzeichen entspricht nicht deklariertem Datentyp". Um sicher zu gehen, dass ich den Datentyp nicht irgendwie verändert hatte, hab ich zum Testen eine neue Excel-Datei angelegt.
Diese ist leer. Nur in Zelle A1 habe ich den Wert 5 eingetragen. Dann habe ich mir ein Makro geschrieben, welches diesen Wert quadrieren und in Zelle A2 ausgeben soll. Das Makro sieht wie folgt aus:

Sub test()
'Variablen definieren
Dim a As Double
Dim b As Double
'Variable füllen
a = Range("A1")
'Rechnung
b = a^(2)
'Ausgabe
Range("A2") = b
End Sub

Will ich nun das Makro starten erhalte ich wieder die Fehlermeldung mit der Typkennzeichnung. Ich versteh nicht, was ich da falsch mache.

Ich hoffe einer von Euch kann mir helfen und erklären, was ich da falsch mache.

Gruß Max
Hallo Max,

schau mal ob Dir das weiterhilft.

https://msdn.microsoft.com/de-de/library/zh100ckf.aspx

Gruß 
Ich
Hallo DuBistDu,

Ich habe meinen Fehler gefunden. Man muss auch ein Leerzeichen zwischen Variable und ^Operator haben. Sonst erkennt er das wohl nicht.

Gruß Max
Hallo,

das kann nicht das Problem sein, da die Leerzeichen automatisch eingefügt werden.
Hi,

ich kriege mit Deinem Code auch keine Fehlermeldung

[attachment=7509]

Gruß
Ich
(19.10.2016, 18:03)BoskoBiati schrieb: [ -> ]Hallo,

das kann nicht das Problem sein, da die Leerzeichen automatisch eingefügt werden.

Hi,

wenn ich "b=a^(2)" schreibe, erzeugt er bei mir nicht automatisch Leerzeichen. Füge ich allerdings ein Leerzeichen zwischen a und ^Operator ein (also: "b=a ^(2)"), wird noch ein weiteres Leerzeichen zwischen dem Operator und dem Exponenten eingefügt --> "b = a ^ (2)". Und dann klappt auch die Berechnung.

Wisst Ihr wie das kommen, dass die Leerzeichen nicht automatisch erstellt werden? Kann es was mit Einstellungen zu tun haben?

Schon mal vielen Dank für Eure Antworten

Gruß Max
Hallo,

wenn ich mal davon absehe, dass die Klammern überflüssig sind, kann ich das nicht nachvollziehen, da das bei mir nicht passiert, egal wie ich schreibe. Nicht einmal, wenn ich den Code aus Deinem Beitrag kopiere.

Es hätte übrigens dieser Code gereicht:


Code:
Range("A2") = Range("A1") ^ 2
Hi,

Danke für den Tipp direkt mit den Zellen zu rechnen. Hatte ich jetzt nicht gemacht, weil das Problem ursprünglich in einem anderen Makro mit sehr vielen Variablen aufgetaucht ist. Dort hatte ich mir die Variablen eingeführt, um nicht mit den Zellen durcheinander zu kommen.
Wenn ich das Leerzeichen nicht selbst einfüge, sieht es bei mir so aus (siehe Anhang). Jetzt weiß ich aber worauf ich achten muss.

Vielen Dank für Eure Antworten!

Gruß Max