Clever-Excel-Forum

Normale Version: Makro Wenn-Funktion (Prüfung mehrere Zellen), dann führe aus
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo!

Ich hoffe, mir kann Jemand helfen. 

Ich habe eine Tabelle (Tabelle1), in der per Zufall die Zeichen (+, -, /, *) ausgewählt werden.
Diese Zeichen stehen in B1:B10 sowie F1:F10.

Nun soll per Makro-Klick geprüft werden, welches Zeichen in der jeweiligen Zelle (alle 20 Zellen) steht und anschließend eine zufällige Zahl aus der Tabelle2 (A1:A10 für +, B1:B10 für -, C1:C10 für / und D1:D10 für *) ausgewählt werden. 

Diese Auswahl wird dann in A1:A10, C1:C10, E1:E10 und G1:G10 eingetragen.

Ich habe selbst schon etwas versucht, für jede Zelle aber immer einzeln alle 4 Zeichen mit If - Then usw.abfragen, ist ja sehr aufwendig.

Ich suche etwas, wo größere Bereiche (wie B1:B10 und F1:F10) gleichzeitig geprüft bzw.abgefragt werden und anschließend dann die entsprechende Auswahl (aus Tabelle 2) nach den 4 möglichen Zeichen erfolgt.

Ich arbeite an einem Mathematik-Quiz und möchte per Zufall das Operationszeichen auswählen lassen und anschließend dann die jeweiligen Zahlen für die Aufgabe einfügen lassen.

Danke.

21839

Hallo 

Vielleicht so was in der Art.

Gruss Sevy
Code:
Option Explicit
Sub Füllen()
    If Not Prüfen("B1:B10") Then MsgBox "Fehler in Spalte B"
    If Not Prüfen("F1:F10") Then MsgBox "Fehler in Spalte F"
End Sub
Function Prüfen(myRange As String) As Boolean
    Dim wb1 As Worksheet
    Dim wb2 As Worksheet
    Dim Bezug As Integer
    Dim Zelle As Range
    Prüfen = True
    Set wb1 = ThisWorkbook.Sheets("Tabelle1")
    Set wb2 = ThisWorkbook.Sheets("Tabelle2")
    For Each Zelle In Range(myRange)
        Select Case Zelle.Value
            Case "+": Bezug = 1
            Case "-": Bezug = 2
            Case "*": Bezug = 3
            Case "/": Bezug = 4
            Case Else:
                Prüfen = False
                Exit Function
        End Select
        wb1.Cells(Zelle.Row, Zelle.Column - 1).Value = wb2.Cells(Zelle.Row, Bezug).Value
    Next
End Function