Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
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

2 Formatprobleme mit Parametern VBA

2 Formatprobleme mit Parametern VBA
25.04.2019 14:01:47
Bastian
Hallo zusammen,
ich habe noch zwei Probleme.
In Excel Zelle A2 soll die Formel =WENN(A1*1,5 über VBA eingefügt werden.
Dabei sollen jedoch die "1,5" und die "3" Variablen sein. Ohne Variablen klappt es (s.u.), mit Variablen bekomme ich jedoch stets einen "Anwedungs- oder objektdefinierten Fehler", sowohl beim rechnen mit der 1,5 als auch beim Versuch die "3" in der Fomel (gefolgt von 'Monate') einzugeben:
Der tatsächliche Sachverhalt ist etwas komplexer aber wenn ich diese Grundfehler rausbekomme sollte ich den Rest hinbekommen.
Danke im Voraus für Eure Hilfe.
VBA:

Sub Formatproblem()
Dim i As Single
Dim s As Integer
i = InputBox("Welcher Faktor?", "Faktor", 1.5)
s = InputBox("Anzahl Monate?", "Monate", 3)
Range("A2").Formula = "=IF(A1*1.5

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Formatprobleme mit Parametern VBA
25.04.2019 14:35:22
Daniel
Hallo Bastian,
er scheint deine Single Deklaration nicht zu mögen. Beides als Integer funktioniert mit dieser Zeile:
Range("A2").Formula = "=IF(A1*" & i & "
Gruß
Daniel
AW: 2 Formatprobleme mit Parametern VBA
25.04.2019 14:37:42
EtoPHG
Hallo Bastian,
Der tatsächliche Sachverhalt ist etwas komplexer aber wenn ich diese Grundfehler rausbekomme sollte ich den Rest hinbekommen. wage ich zu bezweifeln.
1. Eine Inputbox gibt primär Text (String) zurück.
2. Da du die Formel ebenfalls aus Strings zusammsetzt, erübrigt sich die "implizite" Wandlung in Single, bzw. Integer, denn beim Zusammensetzen, werden diese wieder in Strings zurückgewandelt.
3. Eine Inputbox sollte Abbrechen, bzw. X-Schliessen behandeln.
4. Die vollständige Formelübertragung müsste lauten:
"=IF(A1*" & i & "
Gruess Hansueli
Anzeige
AW: 2 Formatprobleme mit Parametern VBA
25.04.2019 15:13:30
Bastian
Danke schonmal für die Rückmeldungen.
Daniel: Stimmt, mit Integer geht es, aber Integer kann nur ganze Zahlen und ich benötige zwingend eine Zahl mit Nachkommastelle(n).
Hansueli:
Die 's' Monate klappen so wie von Dir beschrieben. Dankeschön.
Das Problem scheint tatsächlich zu sein wenn ich Nachkommastellen eingebe.
Wenn ich 'i' als Single, Double, String oder Integer definiere und in der InnputBox als ganze Zahl eingebe funktioiert das Makro.
Definiere ich 'i' jedoch als Single, Double oder String und gebe eine Zahl mit Nachkommastelle ein bekomme ich in der Range("A2").Formula-Zeie den "Anwendungs- oder objektdefiierten Fehler".
Aber es muss doch eine Möglichkeit geben, eine Zahl über die Eingabemaske abzufragen und anschließend damit wie gewollt zu verfahren, oder (tatsächlich) nicht?
Ich kann natürlich die Rechenoperation in VBA durchführen und dann nur das Ergebnis via VBA in die Zelle schreiben (klappt auch) aber ich hätte lieber die Formel in Excel.
Anzeige
InputBox: Dezimaltrenner MUSS PUNKT sein! (owT)
25.04.2019 15:18:44
EtoPHG

InputBox: Dezimaltrenner MUSS PUNKT sein!
25.04.2019 15:21:01
EtoPHG
Bastian,
Ich vermute du gibst ein Komma als Dezimaltrenner ein (wie das die Deutschen halt so machen ;-)
Versuch es mal mit einem Punkt!
Gruess Hansueli
AW: InputBox: Dezimaltrenner MUSS PUNKT sein!
25.04.2019 15:49:06
Bastian
Hallo Hansueli,
Dankeschön!!
Das hatte ich auch schon probiert (allerdings noch nicht mit allen Kombinationen...)
Mit Integer/Double/Single funktioniert das so nicht (dann wird aus z.B. 1,5 15 :-O ).
Wenn ich 'i' als String definiere klappt das mit dem Punkt.
Habe mich jetzt entschieden String zu verwenden (mit Komma als Trennzeichen) und dann per i = Replace(i, ",", ".") zu wandeln (da das Makro am Ende nicht für mich ist).
Zur vorherigen Anmerkung
"Der tatsächliche Sachverhalt ist etwas komplexer aber wenn ich diese Grundfehler rausbekomme sollte ich den Rest hinbekommen. wage ich zu bezweifeln.":
Doch, auch die komplizierte Formel funktioniert jetzt :-))
(die da wäre
SSTK.Range("M" & i).Formula = "=IF(OR(J" & i & ">H" & i & "*" & AvgP & ",J" & i & "<H" & i & "*" & AvgN & ",K" & i & ">H" & i & "*" & Max12 & "),""check"",IF(OR(L" & i & ">H" & i & "*" & AvgP & ",L" & i & "<H" & i & "*" & AvgN & "),""" & m & "M"",""""))" )
Anzeige
Schön hast du selber eine Lösung gefunden! (owT)
25.04.2019 15:51:02
EtoPHG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige