• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Macro uitvoeren via keuze in inputbox

Status
Niet open voor verdere reacties.

rg027

Gebruiker
Lid geworden
30 jun 2005
Berichten
161
Via een inputbox wil ik bepaalde versie bijwerken.
Code:
[Sub Werkbij()
If InputBox("Welke versie bijwerken?" & vbNewLine & vbNewLine & _
    "1 Versie 1" & vbNewLine & _
    "2 Versie 2" & vbNewLine & _
    "3 Versie 3" & vbNewLine & _
    "4 Versie 2 en 3") = 1 Then
    
Call versie1

Else

If InputBox("Welke versie bijwerken?" & vbNewLine & vbNewLine & _
    "1 Versie 1" & vbNewLine & _
    "2 Versie 2" & vbNewLine & _
    "3 Versie 3" & vbNewLine & _
    "4 Versie 2 en 3") = 2 Then
    
Call versie2

Else

If InputBox("Welke versie bijwerken?" & vbNewLine & vbNewLine & _
    "1 Versie 1" & vbNewLine & _
    "2 Versie 2" & vbNewLine & _
    "3 Versie 3" & vbNewLine & _
    "4 Versie 2 en 3") = 3 Then
    
Call versie3

Else
 If InputBox("Welke versie bijwerken?" & vbNewLine & vbNewLine & _
    "1 Versie 1" & vbNewLine & _
    "2 Versie 2" & vbNewLine & _
    "3 Versie 3" & vbNewLine & _
    "4 Versie 2 en 3") = 4 Then
    
Call versie2
Call versie3

Else
Exit Sub

End If
End If
End If
End If

End Sub
/CODE]


Doch deze code veroorzaak niet het gewenste effect. Druk ik bvb 3 dan komt de inputbox 3X de vraag stellen. klik ik op annuleer krijg ik een foutmleding Heb me al rot gezocht doch ik geraak er niet uit. Iemand een oplossing?

Alvast dank
 
rg027, Wat je fout doet in je syntax is steeds je IF blijven herhalen. Het is de bedoeling dat je dmv je inputbox achterhaalt wat de gebruiker voor keuze heeft. Daarna ga je met die keuze dmv ElseIf aan de slag. Nog mooier vind ik het om met een Select Case te werken. Dat houdt je code leesbaarder... Probeer dit maar 'ns
Code:
Sub Werkbij()
Dim sInPuText As String

    sInPuText = "Welke versie bijwerken?" & vbNewLine & vbNewLine & _
                "1 Versie 1" & vbNewLine & _
                "2 Versie 2" & vbNewLine & _
                "3 Versie 3" & vbNewLine & _
                "4 Versie 2 en 3"
                            
    Select Case Application.InputBox(sInPuText, "Maak keuze", 1, , , , , 1)
        Case 1
            Call versie1
        Case 2
            Call versie2
        Case 3
            Call versie3
        Case 4
            Call versie2
            Call versie3
        Case Else
            MsgBox "geen keuze gemaakt!"
    End Select

End Sub

Groet, Leo
 
Leo,


Bedankt voor de hulp. Dit is inderdaad wat ik zocht.:thumb:
Groeten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan