VBA - PROGRAMMIERUNG -  DIALOGE


'Beispiel für Dialogeingabe und WENN
Public Sub Eingabe1()
Dim ZB As Variant
Dim Ergebnis As Variant
ZB = "A2"
Zeile1: ' Sprungadresse
ZB = InputBox("Bitte Zahl kleiner 10 eingeben")
If ZB > 10 Then
    MsgBox "Falsche Eingabe. Zahl kleiner als 10 erforderlich."
    GoTo Zeile1
Else
    MsgBox "Alles wie gewünscht."
    GoTo Zeile2
End If
Zeile2:
End Sub

'Gundprogramm
Public Sub Dlg_Beispiel()
Dim ZB As Variant, ZB2 As Variant
ZB = InputBox("Bitte Zellbezug der zu kopierenden Zelle eingeben:", "VBA-Seminar")
ZB2 = InputBox("Bitte Zellbezug des Zielortes eingeben:", "VBA-Seminar")
Range(ZB).Select
Selection.Kopieren
Range(ZB2).Select
ActiveSheet.Paste
MsgBox "Der Inhalt der Zelle " + ZB + " wurde in die Zelle " + ZB2 + " kopiert."
End Sub

Sub KopierenDialog()
Dim ZB As Variant, ZB2 As Variant, Zahl As Variant
ZB = InputBox("Bitte Zellbezug der zu kopierenden Zelle eingeben:", _
"QUELLORT")
If ZB = "" Then
    MsgBox "Routine wird wegen fehlender Eingabewerte beendet", 16
    GoTo Schluss
End If
ZB2 = InputBox("Bitte Zellbezug des Zielortes eingeben:", "ZIELORT")
If ZB2 = "" Then
    MsgBox "Das Makro wird wegen fehlendem Zielort beendet", 48
    GoTo Schluss
End If

ZahlEingabe:
Zahl = InputBox("Bitte die Anzahl der zu füllenden Zellen angeben", _
"ANZAHL")
If Zahl = "" Then
    MsgBox "Das Makro wird wegen fehlender Eingabe beendet", 48
    GoTo Schluss
End If
If Zahl > 10 Then
    MsgBox "Die von Ihnen eingegebene Zahl " & Zahl & _
        " ist zu groß. Die größte zulässige Zahl ist 9.", 48
    GoTo ZahlEingabe
End If
Range(ZB).Select
Selection.Kopieren
Range(ZB2).Select
Zeilenzahl = Selection.Rows.Count
MsgBox "Zeilenzahl = " + Zeilenzahl
Range(ZB2, Cells(Zeilenanzahl & Zahl, 1)).Select
ActiveSheet.Paste
MsgBox "Der Inhalt der Zelle " & ZB & " wurde in die Zelle " & _
ZB2 & " kopiert."
Schluss:
End Sub

Public Sub ZähleWerte()
Zähler = 0
Set Suchbereich = Application.InputBox(Prompt:="Geben Sie den Suchbereich ein.", _
Type:=8)
Suchwert = Application.InputBox(Prompt:="Geben Sie die gesuchte Zahl ein.", _
Type:=1)
For Each AngegebeneZelle In Suchbereich
    If AngegebeneZelle.Value = Suchwert Then
            Zähler = Zähler + 1
    End If
Next AngegebeneZelle
MsgBox "Suchwert wurde " & CStr(Zähler) & "-mal gefunden"
End Sub

Public Sub MeldungBeispiel()
Prompt = "Dies ist ein Beispiel für eine kritische Meldung."
Prompt = Prompt & " Wollen Sie fortfahren?"
DialogArt = vbYesNo + vbCritical + vbDefaultButton2
Title = "Demonstration einer MeldungsDlg"
Antwort = MsgBox(Prompt, DialogArt, Title)
If Antwort = vbYes Then
    Prompt = "Sie haben 'JA' gewählt"
Else
    Prompt = "Sie haben 'NEIN' oder 'EINGABE' gewählt."
End If
MsgBox Prompt
End Sub