Aanvraag zoeken en weergeven in userform

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

HJ25

Gebruiker
Lid geworden
30 jan 2013
Berichten
304
Hallo allemaal,

in het bijgevoegde bestand een deel van een systeem voor een planning. De aanvragen die ingevoerd worden, komen in het tabblad "Planningsoverzicht" te staan. Nu heb ik in het startscherm een knop staan met de tekst "Aanvraag zoeken". In het scherm dat tevoorschijn komt wanneer je op die knop klikt kan een contractnummer en een plaatsingsdatum ingevuld worden. Het is de bedoeling dat wanneer één van beide of allebei ingevuld zijn en je op de knop "Zoeken" klikt excel via een vba code in het werkblad "Planningsoverzicht" gaat kijken. Wanneer er een aanvraag gevonden is moet de naam van de opleiding / gebruiker, het contractnummer en de plaatsingsdatum in het scherm "Gevonden" komen te staan.

Vervolgens moet het mogelijk zijn om de aanvraag te wijzigen. Wanneer er op "Aanvraag wijzigen" geklikt wordt moet de volledige aanvraag in de userform "Wijzigen" komen te staan.

Is dit allemaal mogelijk? Of is er iemand die hier een goed alternatief voor heeft?
 

Bijlagen

Ik weet niet of dit allemaal mogelijk is in Excel. Waarin ik wel weet dat het mogelijk is, is Microsoft Access... Hierin kan dit ( naar mijn weten ) een stuk makkelijker dan in Excel.
Tenzij iemand een beter idee heeft zou ik Access als alternatief aanraden !
 
Okee bedankt voor je reactie! Is dit toevallig ook niet te combineren dat er in Access het programmeerdeel gedaan wordt zodat dit in Excel werkt?
 
HJ25,
Dit is mogelijk, maar mijn Excel spacet een beetje...
Zal proberen me Excel te fixen anders krijg je morgen wel een voorbeeldje...
 
Helaas kan ik weinig uitrichten in jouw bestand, omdat er een object vereist wordt die niet aanwezig op mijn computer.
Dus zonder de testen...

Achter userform 'Zoeken'
Code:
Private Sub CommandButton1_Click()
    If TextBox1 = "" Then
        MsgBox "Contractnummer is leeg"
        Exit Sub
    End If
    
    If TextBox1 <> "" Then
        With Sheets("Planningsoverzicht")
        rij = .Range("E3:E" & .Range("E" & Rows.Count).End(xlUp).Row).Find(TextBox1).Row
            If rij = 0 Then
                MsgBox "Contractnummer niet gevonden"
            Else
                .Range("E3:E" & .Range("E" & Rows.Count).End(xlUp).Row).Find(TextBox1).Select
                Unload Me
                Gevonden.Show
            End If
        End With
    End If
End Sub
Achter userform 'Gevonden'
Code:
Private Sub UserForm_Initialize()
    With Sheets("Planningsoverzicht")
    rij = .ActiveCell.Row
        TextBox1 = .Cells(rij, "G")
        TextBox2 = .Cells(rij, "E")
        TextBox3 = .Cells(rij, "A")
    End With
End Sub
Achter userform 'Wijzigen'
Code:
Private Sub CommandButton17_Click()
    With Sheets("Planningsoverzicht")
    rij = .ActiveCell.Row
        .Cells(rij, "D") = ListBox1
        'etc, etc....
    End With
End Sub

Hoop dat je hier wat verder mee komt...
 
Laatst bewerkt:
Ik heb de codes er achter gezet, maar helaas werkt het nog niet. Wanneer ik probeer te zoeken krijg ik de volgende foutmelding:
"Fout 1004 tijdens uitvoering:
Methode Select van klasse Range is mislukt."

Misschien is het verstandig om eerst alleen het zoeken proberen te realiseren en daarna verder te werken?
Weet je toevallig ook welk object bij jou niet werkt? Kan dit toevallig niet de LDDate zijn?

Bedankt alvast voor zover!!
 
Oei, dat is vervelend...
Is LDDate een Datepicker? Dan is dat hem, want ik heb geen Access.

Probeer maar ff eruit te slopen als voorbeeld...
 
Ja dat is een Datepicker. Maar hij werkt bij mij wel maar ik kan de waarde ervan niet gebruiken ofzo dus hier moet ik nog wat anders voor verzinnen. Hier het bestand waar hij uit is!
 

Bijlagen

Ik heb zelf een bestandje gemaakt met jouw bladen, want krijg in jouw bestand allemaal gekke meldingen...
In de bijlage een oplossing
 

Bijlagen

Bedankt spaarie! Ik denk dat ik hier wel even wat mee kan proberen in mijn eigen bestand!
 
Top spaarie! Ik heb het in mijn eigen bestand nagemaakt en het werkt! Bedankt!
 
Ik heb hem nu zo aangepast dat je ook alleen op de gebruiker kan zoeken. Helaas is het zo dat wanneer ik een contractnummer invul en tegelijk ga zoeken op een naam die niet bij het contractnummer hoort dat ik dan twee keer het scherm krijg, namelijk eerst die van het gevonden contractnummer en daarna van de gevonden gebruiker. Is het mogelijk om het zo te regelen dat hij naar beide zoekt en dat wanneer deze in combinatie met elkaar niet gevonden wordt dat dit aangegeven wordt door een msgbox?
 

Bijlagen

Je kan ook de plaatsingsdatum laten vullen aan de hand van je contractnummer door
Code:
Private Sub ComboBox1_Change()
    rij = Sheets("Planningsoverzicht").Range("E3:E" & Sheets("Planningsoverzicht").Range("E" & Rows.Count).End(xlUp).Row).Find(ComboBox1).Row
    TextBox1 = Sheets("Planningsoverzicht").Cells(rij, 1)
End Sub
Als je het handmatig wilt blijven invullen dan is dit misschien een oplossing?
Code:
    If ComboBox1 <> "" Then
        If Sheets("Planningsoverzicht").Range("E3:E" & Sheets("Planningsoverzicht").Range("E" & Rows.Count).End(xlUp).Row).Find(ComboBox1).Offset(, -4) <> TextBox1 Then
            MsgBox "Contract komt niet overeen met plaatsingsdatum"
            Exit Sub
        Else
        Application.Goto Sheets("Planningsoverzicht").Range("E3:E" & Sheets("Planningsoverzicht").Range("E" & Rows.Count).End(xlUp).Row).Find(ComboBox1)
        Unload Me
        gevonden.Show
        End If
    End If
 
Helemaal top! Ik ga de onderste gebruiken! Bedankt spaarie!
 
Ik heb hem toch nog iets anders gemaakt, maar wanneer ik nu de gebruiker invul én de datum dan vindt hij het wel alleen wanneer ik op het kruisje van het scherm klik krijg ik een foutmelding: "Ongeldige procedure-aanroep of ongeldig argument".

Daarnaast zoekt hij, wanneer ik de naam van de gebruiker invul en daarbij een datum die er niet bij hoort toch de naam op en geeft deze ook weer, terwijl er eigenlijk een bericht moet komen dat deze combinatie niet voorkomt.
Hoe kan ik dit verhelpen?
 

Bijlagen

1) Klik op 'Foutopsporing' en je ziet waar de fout zit. Dit is overigens je eigen fout...
HINT: Kijk naar je opgegeven bereiken (G moet A zijn)

2) Dat komt hierdoor;
Ik heb hem toch nog iets anders gemaakt
Zelfde als je 1e vraag, als je het iets aanpast moet je de code ook aanpassen en je gebruikt mijn code niet...
HINT:
Code:
    If ComboBox1 <> "" Then
        If Sheets("Planningsoverzicht").Range("[COLOR="#FF0000"]G[/COLOR]3:[COLOR="#FF0000"]G[/COLOR]" & Sheets("Planningsoverzicht").Range("[COLOR="#FF0000"]G[/COLOR]" & Rows.Count).End(xlUp).Row).Find(ComboBox1).Offset(, -[COLOR="#FF0000"]6[/COLOR]) <> TextBox1 Then
 
Uh nee... ik krijg allemaal foutmeldingen dus ik moet dit er even een keer opnieuw inzetten denk ik, maar dit ga ik even een andere keer doen. Ik zal hem op opgelost zetten totdat ik eventueel weer een vraag heb! Sorry!!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan