• 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.

Code VBA vereenvoudigen (herhaling)

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
865
Ik dien een code 15 keer na elkaar uit te voeren maar ik vermoed dat deze code kan herschreven en beperkt worden tot een aantal lijnen door het gebruik van looping for i = 1 to 15 .... Kan iemand helpen aub?


Code:
    Dim test01 As Double
    Dim test02 As Double
    Dim test03 As Double
    Dim test04 As Double
    Dim test05 As Double
    Dim test06 As Double
    Dim test07 As Double
    Dim test08 As Double
    Dim test09 As Double
    Dim test10 As Double
    Dim test11 As Double
    Dim test12 As Double
    Dim test13 As Double
    Dim test14 As Double
    Dim test15 As Double
    
    Dim correcttest01 As Boolean
    Dim correcttest02 As Boolean
    Dim correcttest03 As Boolean
    Dim correcttest04 As Boolean
    Dim correcttest05 As Boolean
    Dim correcttest06 As Boolean
    Dim correcttest07 As Boolean
    Dim correcttest08 As Boolean
    Dim correcttest09 As Boolean
    Dim correcttest10 As Boolean
    Dim correcttest11 As Boolean
    Dim correcttest12 As Boolean
    Dim correcttest13 As Boolean
    Dim correcttest14 As Boolean
    Dim correcttest15 As Boolean
   

    While Not correcttest01
        
        test01 = InputBox("Geef " & Sheets("data").Range("E11") & " in " & Sheets("data").Range("E12") & "-" & Sheets("data").Range("F12"), "Info voor certificaat", "Analyse")
            If test01 < Sheets("data").Range("E12") Or test01 > Sheets("data").Range("F12") Then
                MsgBox "De ingegeven waarde is niet correct!", vbCritical, "Fout!"
            Else
                correcttest01 = True
                Sheets("certificaat").Range("K22").Value = test01
            End If
    Wend

    While Not correcttest02
        test02 = InputBox("Geef " & Sheets("data").Range("G11") & " in" & Sheets("data").Range("G12") & "-" & Sheets("data").Range("H12"), "Info voor certificaat", "Analyse")
            If test02 < Sheets("data").Range("G12") Or test02 > Sheets("data").Range("H12") Then
                MsgBox "De ingegeven waarde is niet correct!", vbCritical, "Fout!"
            Else
                correcttest02 = True
                Sheets("certificaat").Range("K24").Value = test02
            End If
    Wend
 
Zonder je document is het lastig te testen, maar probeer dit eens:
Code:
Sub Controleren()
    Call CheckCorrect("E11", "E12", "F12", "K22")
    Call CheckCorrect("G11", "G12", "H12", "K24")
End Sub

Sub CheckCorrect(R1 As String, R2 As String, R3 As String, R4 As String)
    Dim CorrectTest As Boolean
    Dim Test01 As Double
    
    While Not CorrectTest
        With Sheets("data")
            Test01 = InputBox("Geef " & .Range(R1) & " in " & .Range(R2) & "-" & .Range(R3), "Info voor certificaat", "Analyse")
            If Test01 < .Range(R2) Or Test01 > .Range(R3) Then
                MsgBox "De ingegeven waarde is niet correct!", vbCritical, "Fout!"
            Else
                CorrectTest = True
                Sheets("certificaat").Range(R4).Value = Test01
            End If
        End With
    Wend
End Sub
 
Waarom geen data validatie gebruikt ?
 
Dank voor jullie antwoorden.

Ik moet me eens verdiepen in data validatie SNB, doe ik eerstdaags. heb je ergens een goede uitleg op het net?
 
Je hebt het inderdaad niet goed overgenomen. Die CheckCorrect routine moet je niks in aanpassen maar laten zoals ik hem plaatste.
 
Snap nog altijd niet waar ik die kerel op zijn tenen getrapt heb. Je hoeft een paard ook niet te gaan verdrinken me dunkt. In ieder geval iedereen bedankt voor de hulp.

Basale Stefano :d
 
Laatst bewerkt:
Blijkbaar heb je jouw berichtje aangepast. Mijn post er ook maar even tussen uit gehaald. Wat denk ik wel blijft is dat je Test01 As Double beter niet kan gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan