• 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 hangt bij "Typen komen niet overeen". Ik kom er maar niet uit!

Status
Niet open voor verdere reacties.

rjvdakker

Gebruiker
Lid geworden
7 feb 2019
Berichten
9
Hallo medescripters!

Ik heb een supersimpel scriptje geschreven dat maar steeds vastloopt op hetzelfde punt. Een scriptje om de gegevens van een invulform in een database te plaatsten. Kan toch niet zo lastig zijn zou je zeggen.
Toch hangt ie steeds op dezelfde regel. De regel heb ik hieronder tussen de duiveltjes aangegeven.
Wellicht weet iemand raad? Ik heb voor het gemak het gehele file-tje bijgesloten.
Overige feedback/tips uiteraard van harte welkom!

Mijn dank is bij voorbaat al enorm!

Rudolph


Sub Reset()

Dim iRow As Long

iRow = [Counta(Klanten!A:A)]

With frmForm

.txtKlant.Value = ""
.txtMPS.Value = ""

.lstScheme.Clear

.lstScheme.AddItem "MPS ABC"
.lstScheme.AddItem "MPS GAP"
.lstScheme.AddItem "GlobalGap GRASP"
.lstScheme.AddItem "GlobalGAP CoC"
.lstScheme.AddItem "MPS Florimark TraceCert"
.lstScheme.AddItem "MPS Florimark GTP"
.lstScheme.AddItem "MPS Florimark Trade"

.txtUren.Value = ""

.lstklanten.ColumnCount = 6
.lstklanten.ColumnHeads = True


If iRow > 1 Then

.lstklanten.RowSource = "Klanten!A2:I" & iRow
Else

.lstklanten.RowSource = "Klanten!A2:I2"

End If

End With

End Sub

Sub Submit()

Dim sh As Worksheet
Dim iRow As Long

Set sh = ThisWorkbook.Sheets("Klanten")

:evil: iRow = [counta(Klanten!A:A] + 1 :evil:

With sh

.Cells(iRow, 1) = iRow - 1

.Cells(iRow, 2) = frmForm.txtKlant.Value

.Cells(iRow, 3) = frmForm.txtMPS.Value

.Cells(iRow, 4) = frmForm.lstScheme.Value

.Cells(iRow, 5) = frmForm.txtUren.Value

.Cells(iRow, 6) = [text(Now(), "DD-MM-YYYY HH:MM:SS")]

End With


End Sub

Sub Show_Form()

frmForm.Show

End Sub
 

Bijlagen

Je mist er een teken:
Code:
iRow = [Counta(Klanten!A:A[COLOR="#FF0000"])[/COLOR]] + 1
 
Je mist een haakje sluiten van counta

edit: zie dat Ed me net voor is:D
 
iRow = [counta(Klanten!A:A)] + 1

ps ik dacht dat ik er vroeg bij was :o maar ik ben veel te laat op gestaan. wat zijn jullie er vroeg bij :thumb:
 
Laatst bewerkt:
Iets met bomen en bos ;)
 
Als je de code in de codemodule van het Userform zet, hoef je niet te verwijzen naar het userform zelf.

Een listbox vul je zó:

Code:
Private Sub Userform_Initialize()
  lstScheme.List =split("MPS ABC_MPS GAP_GlobalGap GRASP_GlobalGAP CoC_MPS Florimark TraceCert_MPS Florimark GTP_MPS Florimark Trade","_")
End Sub
of zo
Code:
Private Sub Userform_Initialize()
  lstScheme.List =Arrat("MPS ABC","MPS GAP","GlobalGap GRASP","GlobalGAP CoC","MPS Florimark TraceCert","MPS Florimark GTP","MPS Florimark Trade")
End Sub

Daarbij is lstScheme.clear 100% overbodig.

2. De eigenschappen van elementen in een Userform stel je in in de Ontwerp Modus, niet in VBA.

3. In een forum gebruik je code tags.

Gegevens schrijf je zó weg:

Code:
with Sheets("Klanten").cells(rows.count,1).end(xlup).offset(1)
   .resize(,6)=array(.row-1,txtKlant,txtMPS,lstScheme,txtUren,now)
end with

Wil je meer weten ?

https://www.snb-vba.eu/VBA_Fill_combobox_listbox.html
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan