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

formulier moet data in wijzigende cellen invullen

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

adile

Gebruiker
Lid geworden
2 mrt 2014
Berichten
202
goedenavond,

ik heb een excel bestandje waarin ik een formuliertje heb aangemaakt met 2 invulvakjes waarin aantallen komen te staan.
dit formulier komt op basis van een tijdstip als pop-up omhoog.
de bezoekers aantallen moeten op de juiste tijd en dag (het moment dat het formulier omhoog komt) worden ingevuld in de cellen.

ik voeg het bestandje toe dat ik tot nu toe heb, het is wat uitgedund omdat het hier anders niet past.
wie o wie kan mij ermee helpen.

Gr Adile
 

Bijlagen

En wat is je probleem ermee? Het vinden van de juiste cel om de gegevens er in te plaatsten? Kijk dan eens naar dit.
Deze brengt je naar de juiste regel:
Code:
    Cells.Find(What:=Date, _
        After:=Range("A1"), _
        LookIn:=xlValues, _
        LookAt:=xlPart, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        SearchFormat:=False).Activate

Met dit stukje bepaal je de juiste kolom:
Code:
    Select Case Hour(Time)
        Case 7:     Kolom = 3  'Kolom C
        Case 9:     Kolom = 4  'Kolom D
        Case 11:    Kolom = 5  'Kolom E
        Case 13:    Kolom = 6  'Kolom F
        Case 15:    Kolom = 7  'Kolom G
        Case 17:    Kolom = 8  'Kolom H
        Case 18
            If Minute(Time) < 30 Then
                    Kolom = 9  'Kolom I
            Else
                    Kolom = 10 'Kolom J
            End If
        Case 19:    Kolom = 11 'Kolom K
        Case 21:    Kolom = 12 'Kolom L
        Case 23:    Kolom = 13 'Kolom M
    End Select

Het aantal personen plaats je dan in de kolom van de active row en bezoekers in de kolom van de active row +1.
Dus op Cells(ActiveCell.Row, Kolom) en Cells(ActiveCell.Row +1, Kolom)
 
Laatst bewerkt:
edmoor,

bedankt dat je er aandacht aan hebt besteedt,

zelf had ik al iets als deze code hieronder,
maar hoe kan ik die zo ombouwen dat jouw stukjes erin passen en dat hij werkt?
maar dan wel met de massage boxen "data ingevoerd" en "Formulier niet volledig ingevuld!"

gr adile

Code:
Private Sub CMBInvoeren_Click()

Dim iRow As Long
Dim ws As Worksheet
Set ws = ActiveSheet

'find first empty row in database
iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'check for a Name number
If Trim(Me.CMBAantalP.Value) = "" Then
Me.CMBAantalP.SetFocus
MsgBox "Formulier niet volledig ingevuld!"
Exit Sub
End If
If Trim(Me.CmbAantalB.Value) = "" Then
Me.CmbAantalB.SetFocus
MsgBox "Formulier niet volledig ingevuld!"
Exit Sub
End If

'copy the data to the database

ws.Cells(iRow, 4).Value = Me.CMBAantalP.Value
ws.Cells(iRow, 5).Value = Me.CmbAantalB.Value


MsgBox "Data ingevoerd", vbOKOnly + vbInformation, "Data ingevoerd"

'clear the data

    Me.CMBAantalP.Value = ""
    Me.CmbAantalB.Value = ""
    Me.CMBAantalP.SetFocus

End Sub
 
Dit heb ik er voor je van gemaakt:
Code:
Private Sub CMBInvoeren_Click()
    Dim iRow As Long
    Dim kolom As Integer
    Dim ws As Worksheet
    
    Set ws = ActiveSheet
        
    'check for a Name number
    If Trim(Me.CMBAantalP.Value) = "" Then
        Me.CMBAantalP.SetFocus
        MsgBox "Please complete the form"
        Exit Sub
    End If
    
    'Ga naar de regel met de huidige datum
    ws.Cells.Find(What:=Date, _
        After:=Range("A1"), _
        LookIn:=xlValues, _
        LookAt:=xlPart, _
        SearchOrder:=xlByRows, _
        SearchDirection:=xlNext, _
        MatchCase:=False, _
        SearchFormat:=False).Activate
        
    'Bepaal de juiste kolom
    Select Case Hour(Time)
        Case 7:     kolom = 3  'Kolom C
        Case 9:     kolom = 4  'Kolom D
        Case 11:    kolom = 5  'Kolom E
        Case 13:    kolom = 6  'Kolom F
        Case 15:    kolom = 7  'Kolom G
        Case 17:    kolom = 8  'Kolom H
        Case 18
            If Minute(Time) < 30 Then
                    kolom = 9  'Kolom I
            Else
                    kolom = 10 'Kolom J
            End If
        Case 19:    kolom = 11 'Kolom K
        Case 21:    kolom = 12 'Kolom L
        Case 23:    kolom = 13 'Kolom M
    End Select
    
    If kolom = 0 Then
        MsgBox "Incorrect time window"
        Exit Sub
    End If
    
    'copy the data to the database
    ws.Cells(ActiveCell.Row, kolom) = Me.CMBAantalP.Value
    ws.Cells(ActiveCell.Row + 1, kolom) = Me.CmbAantalB.Value
    
    MsgBox "Data added", vbOKOnly + vbInformation, "Data Added"
    
    'clear the data
    Me.CMBAantalP.Value = ""
    Me.CmbAantalB.Value = ""
    Me.CMBAantalP.SetFocus

End Sub

Tip:
Hou de kleurstelling van het formulier gelijk aan die van het sheet. Dat houd het zicht rustig. Bijvoorbeeld:
pb.jpg

Zet tevens de StartUpPosition op 2 - Center Screen
 
Laatst bewerkt:
Edmoor,

Dank voor je hulp en voor je tips, ik ga er zeker wat mee doen.
Ik heb jouw code geplakt in mijn bestandje, en heb om 21:33 uur de aantallen ingevuld, nadat ik het formulier handmatig had geopend.
de aantallen zouden dan op 02-11-2015 om 21:00 uur in week 45 ingevuld moeten worden. alleen zie ik niets staan.
hoewel hij wel zei data ingevuld :confused:

komt dit omdat ik hem handmatig geopend heb?

Adile
 
Nee, dat moet gewoon werken. Hier gaat dat in je eigen document ook goed. Zoals je kan zien:

wk45.JPG
 
Laatst bewerkt:
Ik heb een foto toegevoegd met hoe het bij mij komt te staan.
het komt helemaal onder week 53 te staan.

zou je jou bestand kunnen posten zodat ik kan kijken wat ik fout doe?

Untitled.jpg

Adile
 
Edmoor,

Excuus fout is helemaal aan mij te wijten had iets fout gedaan,
hij werkt perfect heel veel dank voor je tijd en moeite.:thumb:

Adile
 
Ok dan. En graag gedaan :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan