Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1540to1544
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

VBA Zufallsoperator setzen

VBA Zufallsoperator setzen
16.02.2017 14:46:26
Dieter(Drummer)
Guten Tag, VBA Spezialisten.
Ich suche eine VBA Lösung, die in der aktiven Tabelle, in B3:B15, wahlwiese zufällige Operatoren, Plus oder Minus, setzt
Wäre schöne, wenn jemand eine Lösung hat.
Gruß, Dieter(Drummer)

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zufallsoperator setzen
16.02.2017 14:54:44
Daniel
Hi
=Wahl(Zufallsbereich(1;2);1;-1)

oder:
=ZUFALLSBEREICH(0;1)*2-1
das gibt dir zufällig die Zahl 1 oder -1 aus, welches du dann als Faktor in den weiteren Berechnungen verwenden kannst.
für "+" und "-" wäre auch möglich:
=Wahl(Zufallsbereich(1;2);"+";"-")

aber damit kannst du in Berechungen nichts anfangen.
AW: VBA Zufallsoperator setzen
16.02.2017 15:05:43
Dieter(Drummer)
Halli Daniel,
Danke für schnelle Rückmeldung.
Mit dieser, deiner Formel: =Wahl(Zufallsbereich(1;2);"+";"-"), wird wohl zufällig ein Plus oder Minus gesetzt und das ändert sich nach jeder Brechnung, die ausgelöst wird. Mein Wunsch war anders. ES soll per VBA in den Zellen B3:B15, nach Zufallsprinzip, ein Minus oder Plus eingesetzt werden, als ob es direkt in die Zellen eingegeben wurde.
Evtl gibt es ja eine solche VBA Lösung.
Gruß, Dieter(Drummer)
Anzeige
1+1=3 ? :-)) Teil 2....
16.02.2017 15:13:23
robert
AW: VBA Zufallsoperator setzen
16.02.2017 15:20:06
Daniel
Hi
naja, solange wie du hier mitliest, könntest du inzwischen wissen, dass du dann einfach nur die Formel in die Zellen schreiben musst und dann die Formel durch die Werte ersetzt.
With Range("B3:B15")
.FormulaLocal = "=Wahl(Zufallsbereich(1;2);""+"";""-"")"
.Formula = .Value
End with
Gruß Daniel
AW: Daniel und Michael ...
16.02.2017 15:33:17
Dieter(Drummer)
... Dank an euch. Beide Lösungen funktionieren natürlich.
Daniel. auf deine Idee war ich auch schon mit deiner Formel gekommen und hatte inzwischen diees Makro, mit Aufzeichnung und Anpassung:
Sub OperatorPlusMinus()
Range("B3").Select
ActiveCell.FormulaR1C1 = "=CHOOSE(RANDBETWEEN(1,2),""+"",""-"")"
Range("B3").Select
Selection.AutoFill Destination:=Range("B3:B15"), Type:=xlFillDefault
Range("B3:B15").Select
Range("A2").Select
Range("B3:B15").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub

dass auch funktioniert, wier dein Vorschlag. Eure beiden VBA Codes, Daniel und Michael, sind natürlich professioneller.
Danke und Gruß, Dieter(Drummer)
Anzeige
AW: @Daniel. Codefehler im Code von mir
17.02.2017 15:05:25
mir
Hallo Daniel,
ich habe deinen Code um eine Inputbox erweitert, um den Bereich per Inputbox anzugeben.
Bei Codeaufruf erscheint ein Felerhinweis:"Unzulässiger oder nicht ausreichend definierter Verweis" und " .Formulalocal" ist im Code blau unterlegt. Wie wäre es richtig, damit es mit Inputbox auch funktioniert?
Dein Code ohne Inputbox geht natürlich prima.
Mit der Bitte um Hilfe.
Gruß, Dieter(Drummer)
PS Evtl. habe ich noch mehr Fehler im Code.
Jetziger Code:
Sub Marker()
Dim rngSelect As Range
On Error Resume Next
ActiveSheet.Select
Set rngSelect = Application.InputBox _
(Prompt:="Zellbereich markieren.", Type:=8)
.Formulalocal = "=Wahl(Zufallsbereich(1;2);""+"";""-"")"
.formula = .Value
End Sub

Anzeige
AW: @Daniel. Codefehler im Code von mir
17.02.2017 15:10:21
mir
Hi
wenn du mit dem . als Auslassungszeichen arbeitest, dann brauchst du auch die WITH-Klammer, in welcher du definierst, was vor dem Punkt eingesetzt werden muss.
die darfst du nicht weglassen.
Du kannst bei WITH natürlich auch die zuvor stellte Variable einsetzen.
es müsste sogar funktionieren, bei WITH direkt die Inputbox einzusetzen.
also:
Set rngSelect = Application.Inputbox(...)
With rngSelect
.FormulaLocal = "=...."
end with 
oder
with Application.Inputbox(...)
.FormulaLocal = "=..."
End with
Gruß Daniel
Anzeige
AW: Danke Daniel, so funktioniert es ...
17.02.2017 15:22:19
Dieter(Drummer)
... jetziger Code:
Private Sub Marker()
Dim rngSelect As Range
On Error Resume Next
ActiveSheet.Select
With Application.InputBox _
(Prompt:="Zellbereich markieren.", Type:=8)
.Formulalocal = "=Wahl(Zufallsbereich(1;2);""+"";""-"")"
.formula = .Value
End With
End Sub

Danke und noch einen erfreulichen Tag.
Gruß, Dieter(Drummer)
AW: VBA Zufallsoperator setzen
16.02.2017 15:23:55
Michael
Hi Daniel,
das kannst Du doch!
Sub machen()
Range("b3:b15").FormulaLocal = "=Wahl(Zufallsbereich(1;2);"" + "";"" - "")"
Range("b3:b15").Value = Range("b3:b15").Value
End Sub
Gruß,
M.
Anzeige
sorry, Daniel,
16.02.2017 15:26:12
Michael
ich hatte beim Namen nicht aufgepaßt!
Deine Lösung war beim Absenden noch nicht sichtbar...
Gruß,
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige