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

VBA userform vraagjes

  • Onderwerp starter Onderwerp starter novec
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

novec

Gebruiker
Lid geworden
6 jan 2009
Berichten
194
Hallo
Ik kom even niet verder en zou graag wat hulp willen hebben.

Ik heb een uitslagen sheet voor zeilwedstrijden
In de sheet zitten 3 bladen, maar ik wil dat gebruikers zonder op de bladen te werken e.e.a. kunnen invullen.
Daarom heb ik userforms in VBA gemaakt.
De userform roep je op via de sheet Invoer formulieren.
Daar kun je de wedstrijd organiseren.
Dus een locatie en zeilnummers invoer.
In mijn Zeilers Sheet zitten nu alleen de zeilnummer 1, 2 en 3. Gebruik dus alleen die bij de invoer SVP (dit is een verkorte versie van complete bestand)
Daarna kun je via “uitslagen invoer” de uitslag invoeren en opslaan op de sheet “ScoreSheet”.

Ik heb 2 vragen
1. Als ik de wedstrijd organiseer en zeilnummers invoer komen de namen pas nadat ik op toevoegen heb geklikt. Ik heb voor code gezocht die de namen direct tonen nadat ik naar de volgende cel ga maar die niet kunnen vinden.
2. Deze vraag vindt ik belangrijker.
Als ik de wedstrijd invoer voor Race 1 moet ik voordat ik naar race 2 ga “opslaan”. Logische en goed.
Maar als ik dan Race 2 aanklik staat mijn uitslag van race 1 nog in beeld en dan zou ik graag de velden leeg hebben.
En
Als ik dan weer terug ga naar Race 1 zou ik WEL graag de uitslagen die bij Race 1 horen weer willen zien. .

Ik heb de sheet in bijlage gedaan.
Het is puur een hobby projectje en geweldig leezaam., maa als je vast komt te zitten houdt het op.
Komen jullie andere zaken tegen di
 

Bijlagen

Dit lost je 1ste vraag al op. Vervolledig zelf de code voor de rest van de Textboxen.
Code:
Private Sub CmbCompToevoegen_Click()
    Dim i As Integer
    With Sheets("Scoresheet")
        For i = 1 To 24
            Cells(i + 6, 1) = Me("TxtComp" & i).Text
        Next
        .Range("C3").Value = TxtWedLoc.Text
        .Range("C4").Value = DTP1.Value
    End With

End Sub

Private Sub TxtComp1_AfterUpdate()
    TxtSailorName1.Text = Sheets("Zeilers").Cells(CInt(TxtComp1.Text) + 1, 3).Value
End Sub

Private Sub TxtComp2_AfterUpdate()
    TxtSailorName2.Text = Sheets("Zeilers").Cells(CInt(TxtComp2.Text) + 1, 3).Value
End Sub
 
En dit je 2e.
Code:
Private Sub CbxRaceNr_Change()
    Dim fColumn As Integer, i As Integer
    For i = 1 To 42
        Me("cbx" & i).ListIndex = -1
    Next
    With Sheets("ScoreSheet")
        fColumn = Application.Match(CbxRaceNr.Value, .Rows(6), 0)
        For i = 1 To 42
            Me("cbx" & i).Value = .Cells(i + 6, fColumn).Value
        Next
    End With
End Sub

Private Sub CmdSaveRace_Click()

    Dim fColumn As Integer, i As Integer
    With Sheets("ScoreSheet")
        fColumn = Application.Match(CbxRaceNr.Value, .Rows(6), 0)
        For i = 1 To 42
            .Cells(i + 6, fColumn).Value = Me("cbx" & i).Value
        Next
    End With
    
End Sub
 
Laatst bewerkt:
Hi

Ten eerste geweldig bedankt voor je bijdrage :-)

Oplossing 1 heb ik net ingevoerd en werk tot op 1 dingetje na. Ik krijg de deelnemers ook automatisch toegevoegd op het sheet "Invoer Formulieren".
Ik ben enthousiast over je antwoord vooral omdat ik begrijp wat je hebt gemaakt. Maar tegelijkertijd begrijp ik niet waarom het ook in sheet "invoer formulieren" komt te staan.
De code zoals ik die heb staan nu is als volgt:
Code:
Private Sub CmbCompToevoegen_Click()
    Dim i As Integer
    With Sheets("Scoresheet")
        For i = 1 To 24
            Cells(i + 6, 1) = Me("TxtComp" & i).Text
        Next
        .Range("C3").Value = TxtWedLoc.Text
        .Range("C4").Value = DTP1.Value
        
    Sheets("ScoreSheet").Activate
    Sheets("Scoresheet").Range("A7").Select
        ActiveCell.Value = TxtComp1.Value
        ActiveCell.Offset(1, 0).Value = TxtComp2.Value
        ActiveCell.Offset(2, 0).Value = TxtComp3.Value
        ActiveCell.Offset(3, 0).Value = TxtComp4.Value
        ActiveCell.Offset(4, 0).Value = TxtComp5.Value
        ActiveCell.Offset(5, 0).Value = TxtComp6.Value
        ActiveCell.Offset(6, 0).Value = TxtComp7.Value
        ActiveCell.Offset(7, 0).Value = TxtComp8.Value
        ActiveCell.Offset(8, 0).Value = TxtComp9.Value
        ActiveCell.Offset(9, 0).Value = TxtComp10.Value
        ActiveCell.Offset(10, 0).Value = TxtComp11.Value
        ActiveCell.Offset(11, 0).Value = TxtComp12.Value
        ActiveCell.Offset(12, 0).Value = TxtComp13.Value
        ActiveCell.Offset(13, 0).Value = TxtComp14.Value
        ActiveCell.Offset(14, 0).Value = TxtComp15.Value
        ActiveCell.Offset(15, 0).Value = TxtComp16.Value
        ActiveCell.Offset(16, 0).Value = TxtComp17.Value
        ActiveCell.Offset(17, 0).Value = TxtComp18.Value
        ActiveCell.Offset(18, 0).Value = TxtComp19.Value
        ActiveCell.Offset(19, 0).Value = TxtComp20.Value
        ActiveCell.Offset(20, 0).Value = TxtComp21.Value
        ActiveCell.Offset(21, 0).Value = TxtComp22.Value
        ActiveCell.Offset(22, 0).Value = TxtComp23.Value
        ActiveCell.Offset(23, 0).Value = TxtComp24.Value
        ActiveCell.Offset(-4, 2).Value = TxtWedLoc.Value
        ActiveCell.Offset(-3, 2).Value = DTP1.Value
        
        Name1 = Sheets("Scoresheet").Range("B7")
        Name2 = Sheets("Scoresheet").Range("B8")
        Name3 = Sheets("Scoresheet").Range("B9")
        Name4 = Sheets("Scoresheet").Range("b10")
        Name5 = Sheets("Scoresheet").Range("b11")
        Name6 = Sheets("Scoresheet").Range("b12")
        Name7 = Sheets("Scoresheet").Range("b13")
        Name8 = Sheets("Scoresheet").Range("b14")
        Name9 = Sheets("Scoresheet").Range("b15")
        Name10 = Sheets("Scoresheet").Range("b16")
        Name11 = Sheets("Scoresheet").Range("b17")
        Name12 = Sheets("Scoresheet").Range("b18")
        Name13 = Sheets("Scoresheet").Range("b19")
        Name14 = Sheets("Scoresheet").Range("b20")
        Name15 = Sheets("Scoresheet").Range("b21")
        Name16 = Sheets("Scoresheet").Range("b22")
        Name17 = Sheets("Scoresheet").Range("b23")
        Name18 = Sheets("Scoresheet").Range("b24")
        Name19 = Sheets("Scoresheet").Range("b25")
        Name20 = Sheets("Scoresheet").Range("b26")
        Name21 = Sheets("Scoresheet").Range("b27")
        Name22 = Sheets("Scoresheet").Range("b28")
        Name23 = Sheets("Scoresheet").Range("b29")
        Name24 = Sheets("Scoresheet").Range("b30")
        
        FrmRaceSetup.TxtSailorName1.Text = Name1
        FrmRaceSetup.TxtSailorName2.Text = Name2
        FrmRaceSetup.TxtSailorName3.Text = Name3
        FrmRaceSetup.TxtSailorName4.Text = Name4
        FrmRaceSetup.TxtSailorName5.Text = Name5
        FrmRaceSetup.TxtSailorName6.Text = Name6
        FrmRaceSetup.TxtSailorName7.Text = Name7
        FrmRaceSetup.TxtSailorName8.Text = Name8
        FrmRaceSetup.TxtSailorName9.Text = Name9
        FrmRaceSetup.TxtSailorName10.Text = Name10
        FrmRaceSetup.TxtSailorName11.Text = Name11
        FrmRaceSetup.TxtSailorName12.Text = Name12
        FrmRaceSetup.TxtSailorName13.Text = Name13
        FrmRaceSetup.TxtSailorName14.Text = Name14
        FrmRaceSetup.TxtSailorName15.Text = Name15
        FrmRaceSetup.TxtSailorName16.Text = Name16
        FrmRaceSetup.TxtSailorName17.Text = Name17
        FrmRaceSetup.TxtSailorName18.Text = Name18
        FrmRaceSetup.TxtSailorName19.Text = Name19
        FrmRaceSetup.TxtSailorName20.Text = Name20
        FrmRaceSetup.TxtSailorName21.Text = Name21
        FrmRaceSetup.TxtSailorName22.Text = Name22
        FrmRaceSetup.TxtSailorName23.Text = Name23
        FrmRaceSetup.TxtSailorName24.Text = Name24
        
        End With
        
        Sheets("Invoer formulieren").Activate
 
End Sub


Private Sub TextBox29_Change()

End Sub



Private Sub CmbDaguitslag_Click()

    Sheets("DAG uitslag").Activate
       
    Range("B6:AC31").Select
    ActiveWorkbook.Worksheets("DAG Uitslag").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("DAG Uitslag").Sort.SortFields.Add Key:=Range( _
        "AC7:AC31"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("DAG Uitslag").Sort
        .SetRange Range("B6:AC31")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("B4").Select
    
    FrmRaceSetup.Hide
    
       
    
End Sub
 
Blijkbaar toch niet zo goed, bekijk mijn CmbCompToevoegen en dan de jouwe. Alles wat jij erbij gezet hebt is overbodig.
 
Mijn fout !!!!
Code:
Private Sub CmbCompToevoegen_Click()

    Dim i As Integer
    With Sheets("Scoresheet")
        For i = 1 To 24
            .Cells(i + 6, 1) = Me("TxtComp" & i).Text
        Next
        .Range("C3").Value = TxtWedLoc.Text
        .Range("C4").Value = DTP1.Value
    End With

End Sub
 
Super
ik probeerde het opnieuw na je 1e opmerking en dacht echt "OK I'm missing something......"
En inderdaad. Alle werk nu naar behoren.
Ben er helemaal blij mee!

Maar kan geen verschil vinden, wat heb je veranderd?


Dank man
 
Laatst bewerkt:
punt (.) vóór Cells doet het naar behoren werken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan