Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
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
MsgBox Code ausführung
25.08.2008 18:40:31
Hanses
Hallo,
ich versuche über eine MsgBox eine Auswahl zu treffen.
Leider funktioniert das ganze nur wenn ich ja anklicke.
Habe eine MsgBox mit Ja/Nein Schaltflächen.
Stehe auf dem Schlauch wo der Fehler liegt.
Der Code sieht so aus:

Private Sub CommandButton6_Click()
Dim i As Integer
Dim antwort As String
antwort = MsgBox("Hat die WA Dienst am 01.01 des Jahres ?", 4)
If antwort = vbYes Then
For i = 5 To 35
If i Mod 2 = 1 Then
Range(Cells(6, i), Cells(86, i)) = 1
Else
Range(Cells(6, i), Cells(86, i)) = "'--"
End If
Next
End If
End Sub


Besten Dank für Eure Hilfe

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox Code ausführung
25.08.2008 18:53:58
Piet
Hi,
da fehlt die Else Bedingung für If Antwort = vbYes
Was soll denn überhaupt passieren wenn vbNo?
Dim Antwort as Long oder variant!
mfg Piet
AW: MsgBox Code ausführung
25.08.2008 18:57:00
Hanses
Hey Piet,
bei vbYes eine 1 schreiben, bei vbNo "--"
AW: MsgBox Code ausführung
25.08.2008 18:57:44
Hanses
Hey Piet,
bei vbYes eine 1 schreiben, bei vbNo "--"
AW: MsgBox Code ausführung
25.08.2008 19:36:00
Jürgen
Hallo Hanses,
wenn der ganze Bereich je nach Auswahl mit "1" oder "--" gefüllt werden soll, sollte es dieser Code tun:

Private Sub CommandButton6_Click()
Dim antwort As VbMsgBoxResult
antwort = MsgBox("Hat die WA Dienst am 01.01 des Jahres ?", 4)
If antwort = vbYes Then
Range(Cells(6, 5), Cells(86, 35)).Value = "1"
Else
Range(Cells(6, 5), Cells(86, 35)).Value = "'--"
End If
End Sub


@Piet: wenn schon, denn schon "VbMsgBoxResult" als Datentyp für die Variable, die den Rückgabewert der MsgBox entgegennimmt - das erhöht u.a. den Eingabekomfort, wenn man "If antwort = " eingibt (automatische Vorschlag der verfügbaren Werte).
Gruß, Jürgen

Anzeige
AW: MsgBox Code ausführung
25.08.2008 23:03:00
Nepumuk
Hallo Jürgen,
und wozu der Umweg über eine Variable?
Private Sub CommandButton6_Click()
    
    If MsgBox("Hat die WA Dienst am 01.01 des Jahres ?", vbYesNo) = vbYes Then
        Range(Cells(6, 5), Cells(86, 35)).Value2 = "1"
    Else
        Range(Cells(6, 5), Cells(86, 35)).Value2 = "'--"
    End If
    
End Sub

Gruß
Nepumuk
Anzeige
AW: MsgBox Code ausführung
25.08.2008 23:28:20
Daniel
Hallo
ich würde das so lösen:

Private Sub CommandButton6_Click()
Dim i As Long
Dim Txt(1) As Variant
Select Case MsgBox("Hat die WA Dienst am 01.01 des Jahres ?", 4)
Case vbYes
Txt(1) = 1
Txt(0) = "'--"
Case vbNo
Txt(1) = "'--"
Txt(0) = 1
Case Else
End Select
For i = 5 To 35
Range(Cells(6, i), Cells(86, i)) = Txt(i Mod 2)
Next
End Sub


Gruß, Daniel
ps. ich hab jetzt nicht darauf geachtet, wann die 1 und wann die -- als erstes gesetzt werden sollen, aber das kannst du ja einfach tauschen, falls es falsch sein sollte.
Gruß, Daniel

Anzeige
AW: MsgBox Code ausführung
26.08.2008 11:47:35
Hanses
Hallo Daniel,
vielen Dank !!
Genau das habe ich besucht. Es klappt prima.
Eine Frage noch, da ich verstehn möchte was da passiert.
Kannst Du mir erklären was bei diesem Code abläuft!
For i = 5 To 35
Range(Cells(6, i), Cells(86, i)) = Txt(i Mod 2)
Next
Besten Dank und Gruß
AW: MsgBox Code ausführung
26.08.2008 23:17:58
Daniel
Hi
je nach grader oder ungerader Spaltenzahl hat die Funktion (i Mod 2) den Wert 0 oder 1 (entspricht der deutschen Funktin REST einer Division).
das nutze ich aus, in dem ich diesen Spaltenabhänigen Wert in einen Text-Array mit 2 werten einsetze (die zwei werte haben den Index 0 oder 1
der inhalt des Textarrays (ob zuerst die 1 oder zuerst das -- hängt von der Anwendereingabe ab.
Gruß, Daniel
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige