Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
vbYesNo
zurück: Passwort weiter: Datenblatt von Diagram mit Werten aus Tabelle füllen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Michi87
Gast


Verfasst am:
12. Sep 2007, 12:37
Rufname:

vbYesNo - vbYesNo

Nach oben
       Version: Office 2k (2000)

Hallo ihr alle,

ich habe folgenden Code geschrieben:

Code:

Do While vaYear = "" Or Not IsNumeric(vaYear) Or intAnswer = vbNo
   
'InputBox for the year
        vaYear = InputBox("Please enter the year for 'Unbilled by end of December'.")
   
    intAnswer = MsgBox(Prompt:="Is the year" & vaYear & " correct?", Buttons:=vbYesNo, Title:="Please approve.")
    If Not IsNumeric(vaYear) Or intAnswer = vbNo Then
     MsgBox ("Please enter numbers - other enteries are not provided.")
    Else
       Exit Do
    End If
    Loop             
 


Der input den der user gibt soll also numerisch sein. Dannach überprüft der user nochmal selbst ob die Jahreszahl stimmt --> Yes/No. Aber wenn es keine numerische zahl ist, soll das Makro auch dann in die Schleife springen, wenn der User "Yes" sagt.
Bei mir funktioniert das leider noch nicht. Bzw. ich weiß nicht genau wie ich das in meinen code noch einbauen soll...

Für eine Hilfe von euch wäre ich euch sehr dankbar.

Gruß
Michael Smile
Gast



Verfasst am:
12. Sep 2007, 14:14
Rufname:


AW: vbYesNo - AW: vbYesNo

Nach oben
       Version: Office 2k (2000)

hat sich erledigt ;) danke an alle die gepostet hätten^^
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
12. Sep 2007, 14:28
Rufname:
Wohnort: Leipzig

AW: vbYesNo - AW: vbYesNo

Nach oben
       Version: Office 2k (2000)

Hallo Michael,

bei Deinem Vorschlag wird man auch bei nichtnumerischer Eingabe gefragt, ob die Zahl korrekt sei. Ich würde es lieber so machen:
Code:
Sub MeinTest()

    Dim vaYear As String
    Dim intAnswer As Integer
    Dim Done As Boolean
   
    Done = False
    Do Until Done
        vaYear = InputBox("Please enter the year for 'Unbilled by end of December'.")
        If vaYear = "" Then
            MsgBox ("Please enter numbers - other enteries are not provided.")
        ElseIf Not IsNumeric(vaYear) Then
            MsgBox ("Please enter numbers - other enteries are not provided.")
        Else
            intAnswer = MsgBox(Prompt:="Is the year" & vaYear & " correct?", _
                Buttons:=vbYesNo, Title:="Please approve.")
            Select Case intAnswer
                Case vbNo
                    MsgBox "Please try it again!"
                Case vbYes
                    Done = True
            End Select
        End If
    Loop

End Sub

_________________
Sei doch so nett und gib eine Rückmeldung, ob es klappt!
Gruß, Lisa

Guter Rat ist teuer!
Michi87
Gast


Verfasst am:
12. Sep 2007, 15:33
Rufname:

AW: vbYesNo - AW: vbYesNo

Nach oben
       Version: Office 2k (2000)

Ich hab es jetzt so gelöst:

Code:

Do
    Do
   
'InputBox for the year
    vaYear = InputBox("Please enter the year for 'Unbilled by end of December'.")
    If Not IsNumeric(vaYear) Then
    MsgBox ("Please enter numbers - other enteries are not provided.")
    End If
    Loop While Not IsNumeric(vaYear)
   
   
   
    intAnswer = MsgBox(Prompt:="Is the year" & vaYear & " correct?", Buttons:=vbYesNo, Title:="Please approve.")
    If intAnswer = vbNo Then
      vaYear = InputBox("Please enter the correct year for 'Unbilled by end of December'.")
    End If
   
    If Not IsNumeric(vaYear) Then
    MsgBox ("Please enter numbers - other enteries are not provided.")
    End If
   
Loop While Not IsNumeric(vaYear)


Hab also einfach mal zwei Schleifen draus gemacht;) Trotzdem vielen Dank für deinen Vorschlag. Smile

Ich habe aber noch zwei Probleme:
1. Alle Eingaben werden geblockt nur die Eingabe 15d15 lässt er durch geht alles andere nicht z.B. 4d4 - fand ich sehr komisch

2.Frage:
Ich möchte den Blattschutz des Sheets aufheben - soweit kein Thema- nur wie mache ich das, wenn ich ein Passwort vergeben möchte?? wie löse ich das in VBA?

Danke für die Antworten ;)
Michael
Lisa
Moderator; Word seit Word 5.0 (für DOS)


Verfasst am:
13. Sep 2007, 13:36
Rufname:
Wohnort: Leipzig

AW: vbYesNo - AW: vbYesNo

Nach oben
       Version: Office 2k (2000)

Hallo Michael,

erwischt! Wir sind hier im Word-VBA-Forum. Deswegen habe ich auch die Eingabe in die InputBox mit IsNumeric getestet (und konnte den seltsamen Effekt "15d15" auch nachvollziehen). Ich habe im Augenblick dafür noch keine Erklärung, aber schon eine Idee, woher das kommt, wird wohl mit Zahlenformaten zusammenhängen.

Wenn Du aber sowieso in Excel programmierst, nimm doch die Excel-InputBox
Code:
    vaYear = Application.InputBox(Prompt:="Please enter the year for 'Unbilled by end of December'.", _
        Type:=1)

Die hat ein Argument Type, in dem man vorgeben kann, dass nur numerische Eingaben erlaubt sind. Dann kannst Du Dir den IsNumeric-Test sparen. Außerdem geht hier "15d15" nicht durch. (Leider bietet Word-VBA diese InputBox nicht.)

Zu 2.: Gib mal in der VBA-Hilfe von Excel "Blattschutz" ein. Es wird brav geliefert:
Excel VBA-Hilfe hat folgendes geschrieben:
Unprotect-Methode
Siehe auch Betrifft Beispiele Zusatzinfo
Hebt den Schutz eines Blattes oder einer Arbeitsmappe auf. Diese Methode hat keine Wirkung, wenn das Blatt oder die Arbeitsmappe nicht geschützt ist.

Ausdruck.Unprotect(Password)

Ausdruck Erforderlich. Ein Ausdruck, der ein Chart-, Workbook- oder Worksheet-Objekt zurückgibt.

Password Optionaler Variant-Wert. Eine Zeichenfolge, die das Kennwort unter Berücksichtigung der Groß-/Kleinschreibung angibt, um den Schutz des Blattes oder der Arbeitsmappe aufzuheben. Wenn das Blatt oder die Arbeitsmappe nicht durch ein Kennwort geschützt ist, wird dieses Argument ignoriert. Wenn Sie dieses Argument bei einem durch ein Kennwort geschütztes Blatt auslassen, werden Sie zur Eingabe des Kennwortes aufgefordert. Wenn Sie dieses Argument bei einer durch ein Kennwort geschützten Arbeitsmappe auslassen, schlägt die Methode fehl.

Hinweise
Wenn Sie das Kennwort vergessen, können Sie den Schutz des Blattes oder der Arbeitsmappe nicht wieder aufheben. Sie sollten daher eine Liste Ihrer Kennwörter und der zugehörigen Dateinamen an einem sicheren Ort aufbewahren.

Beispiel
In diesem Beispiel wird der Schutz der aktiven Arbeitsmappe aufgehoben.

ActiveWorkbook.Unprotect

Falls Du noch weitere Fragen hast, solltest Du die aber wirklich im Excel-VBA-Forum stellen.

Gruß
Lisa
Michi87
Gast


Verfasst am:
13. Sep 2007, 13:47
Rufname:

AW: vbYesNo - AW: vbYesNo

Nach oben
       Version: Office 2k (2000)

Danke für alles Smile

hab es garnicht mitbekommen mit dem "Word VBA"-Forum - sorry dafür...

Mal schauen ob das jetzt alles so läuft.

Gruß
Michael
Michi87
Gast


Verfasst am:
13. Sep 2007, 15:15
Rufname:


AW: vbYesNo - AW: vbYesNo

Nach oben
       Version: Office 2k (2000)

vielen dank, das funktioniert so. Smile
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Forum