Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Formel einfügen über VBA ändert Zahlenformat?

Formel einfügen über VBA ändert Zahlenformat?
Björn
Hallo,
ich hab auch mal wieder eine Frage.
Ich füge per Makro mehrere Formel in eine Tabelle ein. Bei einer Formel aber wird das Zahlenformat der Zelle geändert, und zwar auf "Text". Somit wird mir natürlich nicht das Ergebnis der Formel sondern einfach die Formel in Textform angezeigt.
Ich füge alle Formel nach diesem Schema ein:
Range("H11").FormulaR1C1 = "=Kalkulation!U7&Kalkulation!AA7&Kalkulation!AM7"

Das ist auch genau die Formel, die dann das Format ändert.
Das ist ja nur ne Verkettung von 3 Feldern aus einer Tabelle "Kalkulation", die sich in der gleichen Mappe befindet. Ich verstehe das nicht.
Selbst wenn ich vor oder nach dem Formel einfügen das Zahlenformat per Makro auf Standard ändere hilft das nichts.
Range("H11").NumberFormat = "General"
Hat da jemand eine Idee?
Gruß
Björn B.
Anzeige
AW: Formel einfügen über VBA ändert Zahlenformat?
03.12.2010 11:11:56
hary
Hallo
hilft das evtl.
Range("H11").Formula = usw.
gruss hary
nein, das hilft leider nicht, aber...
03.12.2010 11:17:38
Björn
Hallo hary,
... ich habe gesehen, dass das die einzige Formel ist, die nicht in der R1C1-Schreibweise vorliegt.
Komisch, ich habe alle in einem Vorgang mit dem Rekorder aufgezeichnet.
Gruß
Björn B.
Problem gelöst...
03.12.2010 11:35:20
Björn
So, habe die Formel umgeschrieben. Irgendwie scheint VBA die Verkettenformel nicht so toll darstellen zu können.
So funktioniert es jedenfalls:
Range("H11").FormulaR1C1 = "=Kalkulation!R[-4]C[13]" & "&" & "Kalkulation!R[-4]C[19]" & "&" & "Kalkulation!R[-4]C[31]"
Das "&" aus der Verkettenformel muss als string mitgegeben werden, dass es funktioniert.
Vielen Dank für Eure Bemühungen.
Gruß
Björn B.
Anzeige
Das glaub' ich nicht, weil das doch...
03.12.2010 11:41:48
Luc:-?
…keinen Unterschied macht, Björn,
aber A1-Adressen in einer für R1C1-Formeln reservierten Eigenschaft kann XL doch nur als Text interpretieren!
Luc :-?
Das wird's dann wohl auch sein,...
03.12.2010 11:37:30
Luc:-?
…Björn… ;-)
Außerdem gibt's, glaub' ich, in VBA kein Format General, zumindest nicht, wenn man Format benutzt. Da heißt es dann GeneralNumber
Gruß u.schöWE, Luc :-?
Anzeige
AW: Das wird's dann wohl auch sein,...
03.12.2010 12:02:40
Björn
Hallo Luc,
also ich als schreibfauler Mensch hab das nicht selbst erfunden.
Das kommt vom Rekorder und z.B. das "General" funktioniert bei mir auch.
So wird das bei mir aufgezeichnet (XL2003):
Selection.NumberFormat = "General"

Selbst in der Hilfe zu NumberFormat kommt "General" als Bsp.
Und wie gesagt, die Formel wurde auch so aufgezeichnet. Erst nach dem Hinweis von Hary ist mir das dann aufgefallen, aber auch mit .Formula oder .FormulaLocal hat es nicht geklappt.
Gruß
Björn B.
Anzeige
Formula... hätte eigentl klappen müssen,...
03.12.2010 12:14:27
Luc:-?
…Björn,
nur FormulaArray dürfte sich weigern, aber viell ist XL jetzt gnatzig oder irgendetwas, das evtl auch diese Aufzeichnung veranlasst hat, verursacht das.
Das mit General mag ja sein; ich habe damit aber schlechte Erfahrungen gemacht, wenn ich es in VBA verwendet habe (Format u.ä.). War nur'n Tipp…
Ciao, Luc :-?
Anzeige
AW: Formula... hätte eigentl klappen müssen,...
03.12.2010 13:05:22
Björn
Hallo Luc,
ich verwende das Format ja auch gar nicht so.
War ja nur mein erster Gedanke, dass wenn das irgenwie umgestellt wird, ich es einfach wie so einstelle, wie ich es brauche. Wäre dann zwar nicht schön, aber in dem Fall hätte mir ein "Das funktioniert" auch gereicht.
Trotzdem Danke.
Gruß
Björn B.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: Zahlenformat bei Formeln richtig einfügen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  3. Schreibe dein Makro: Verwende das folgende Beispiel, um eine Formel korrekt einzufügen und das Zahlenformat zu setzen:

    Sub FormelEinfügen()
       Range("H11").FormulaR1C1 = "=Kalkulation!R[-4]C[13] & Kalkulation!R[-4]C[19] & Kalkulation!R[-4]C[31]"
       Range("H11").NumberFormat = "General" ' Setzt das Zahlenformat auf Standard
    End Sub
  4. Starte das Makro: Drücke F5 oder gehe zu "Run" > "Run Sub/UserForm", um das Makro auszuführen.


Häufige Fehler und Lösungen

  • Formel wird als Text angezeigt: Wenn die Formel nicht korrekt ausgewertet wird, prüfe, ob du die Formel in der R1C1-Notation eingibst. Achte darauf, dass Verkettungen mit & in der richtigen Form vorliegen.

  • Zahlenformat ändert sich unerwartet: Wenn das Excel-Zahlenformat nach dem Einfügen der Formel nicht korrekt ist, stelle sicher, dass du die Formatierung nach dem Einfügen der Formel anwendest. Beispiel:

    Range("H11").NumberFormat = "General"

Alternative Methoden

  • Verwendung von .Formula: Anstelle von .FormulaR1C1 kannst du auch .Formula verwenden, um die Formel in A1-Notation einzufügen. Dies kann in einigen Fällen helfen:

    Range("H11").Formula = "=Kalkulation!U7 & Kalkulation!AA7 & Kalkulation!AM7"
  • Direktes Setzen des Zahlenformats: Du kannst das Zahlenformat auch direkt nach dem Einfügen der Formel setzen, um sicherzustellen, dass es nicht auf "Text" wechselt.


Praktische Beispiele

Hier sind einige Beispiele, wie du Formeln mit unterschiedlichen Zahlenformaten in Excel einfügen kannst:

  1. Einfache Verkettung:

    Range("H11").FormulaR1C1 = "=Kalkulation!R[-4]C[1] & Kalkulation!R[-4]C[2]"
    Range("H11").NumberFormat = "General"
  2. Mit Formatierung:

    Range("H12").FormulaR1C1 = "=Kalkulation!R[-4]C[1] + Kalkulation!R[-4]C[2]"
    Range("H12").NumberFormat = "0.00" ' Setzt das Zahlenformat auf zwei Dezimalstellen

Tipps für Profis

  • Verwende Option Explicit: Füge dies am Anfang deiner Module hinzu, um sicherzustellen, dass alle Variablen deklariert sind.

  • Debugging: Wenn du Probleme hast, nutze den Debugger in VBA, um zu prüfen, wo der Fehler auftritt. Setze Haltepunkte und schaue dir die Werte der Variablen an.

  • Verwende With-Anweisungen: Das kann deinen Code kürzer und leserlicher machen. Beispiel:

    With Range("H11")
       .FormulaR1C1 = "=Kalkulation!U7 & Kalkulation!AA7 & Kalkulation!AM7"
       .NumberFormat = "General"
    End With

FAQ: Häufige Fragen

1. Warum ändert sich das Zahlenformat, wenn ich eine Formel einfüge?
Das kann passieren, wenn die Formel nicht in der richtigen Notation vorliegt oder Excel sie nicht als Formel erkennt. Achte darauf, dass die Formel korrekt eingegeben ist.

2. Was ist der Unterschied zwischen .Formula und .FormulaR1C1?
.Formula verwendet A1-Notation, während .FormulaR1C1 die R1C1-Notation verwendet. Die Wahl hängt von deinen persönlichen Vorlieben und dem spezifischen Anwendungsfall ab.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige