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

invullen cellen

Status
Niet open voor verdere reacties.

bjornesto

Gebruiker
Lid geworden
16 apr 2012
Berichten
201
Ik heb een formulier dat ze moeten invullen als er iets niet in orde is om zo een mail te sturen naar de aanvrager alsook nog andere dingen die ze kunnen doen.

Bedoeling is dat ze het textvak me.txtbx_company.value invullen. (zie file na company)

Computer gaat in een andere file (lijst met verscheidene worksheets en meer data zoals een badgenaam en nummer per bedrijf opgesomt) zoeken of dat bedrijf al in de lijst staat.
Bestaat de waarde dan zal hij de tekstboxen invullen (.txtbx_badge_ID_1, ...) met de waarden die in de lijst staan (zie waarde bestaat en de code tags)


de code hieronder werkt wel met een "define name --> lookup" en dit in een specifiek worksheet in dezelfe file maar dit is fout.
Hij moet in de lijst zoeken in een andere file met verscheidene worksheets (A, B, C, D, E) en dan waardes voor .txtbx_badge_ID_1 invullen aan de hand van de lijst als het bedrijf in deze lijst staat

Heb ook attachement bijgevoegd
Knop klikken (sheet1)
Company naam invullen (Getronics) of zie sheet 2 voor andere namen
Onderaan vult hij dan automatisch de waarden in van de badge nummers

Code:
Private Sub txtbx_company_AfterUpdate()
'nakijken of waarde bestaat

If WorksheetFunction.CountIf(Sheet2.Range("B:B"), Me.txtbx_company.Value) = 0 Then
    MsgBox "Company is not in our list", vbInformation, "Not found in our list"
    Exit Sub
End If

'Waarde bestaat
With Me
    .txtbx_badge_ID_1 = Application.WorksheetFunction.VLookup(Me.txtbx_company, Sheet2.Range("lookup"), 2, 0)
    .txtbx_badge_ID_2 = Application.WorksheetFunction.VLookup(Me.txtbx_company, Sheet2.Range("lookup"), 3, 0)
    .txtbx_badge_ID_3 = Application.WorksheetFunction.VLookup(Me.txtbx_company, Sheet2.Range("lookup"), 4, 0)
    .txtbx_badge_ID_4 = Application.WorksheetFunction.VLookup(Me.txtbx_company, Sheet2.Range("lookup"), 5, 0)
End With
 

Bijlagen

Ik zou een combobox gebruiken en gebruik maken van VBA ipv Vlookup.

Voor het vullen van de combox met gegevens uit meerder tabjes:
Code:
Private Sub UserForm_Initialize()
  Set d = CreateObject("Scripting.Dictionary")
  For Each sh In Sheets(Array("A", "B"))
    ar = sh.Cells(1, 2).CurrentRegion
    For j = 1 To UBound(ar)
      d(ar(j, 1)) = Application.Index(ar, j, 0)
    Next j
  Next sh
  ComboBox1.List = Application.Index(d.items, 0, 0)
End Sub

Voor het vullen van de textboxen:
Code:
Private Sub ComboBox1_Change()
  With ComboBox1
    If .ListIndex > -1 Then
      For j = 1 To 4
        Me("txtbx_badge_ID_" & j) = .Column(j)
      Next j
    End If
  End With
End Sub
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan