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

Userform gebruiken in excel.

Status
Niet open voor verdere reacties.
danny147,

Ik heb bij de 2 regels code een ' gezet en het werkte normaal.

Code:
'.ColorIndex = 0
'.TintAndShade = 0

Dus kunnen ze volgens mij weg deze 2 regels en wordt de code dus korter.
Misschien is het probleem dan opgelost?
Let wel op de code onder de knop Verwijderen daar zit ook deze code, of kwam het probleem dan niet op het werk?
 
Laatst bewerkt:
Deze werkt zonder fout in 2003(denk ik)
Heb hier en daar wat schoonheidsfoutjes weggewerkt en ook wat functionaliteit toegevoegd o.a. de tabstops op de formulieren alsook veiligheid bij ongewild indrukken verwijderen-knop in werkblad(bij lege zoekcel).
Bekijk het maar eens en zie of je er iets mee kunt doen.

Mvg

Rudi
 

Bijlagen

Laatst bewerkt:
Hallo Warme bakkertje en danny147,

De code is behoorlijk korter en overzichtelijker geworden.
Waarom maakt de macrorecorder de code onnodig lang?

De code van het formulier Zoeken en Aanpassen heb ik als je per ongeluk op de Verwijderknop klikt de volgende regel erbij gezet (in het rood) zodat er niets gebeurd.

Code:
Private Sub Verwijderen_button_Click()
Dim lWA As Long
[COLOR="Red"]If Cbo_WA_nr.Value = "" Then Exit Sub[/COLOR]
With ActiveSheet.Range("C:C")

In het Formulier zit ook nog een klein foutje, namelijk weeknummer geeft het ordernummer.
Txt_Nr.Value = Worksheets(1).Cells(WA.Row, "C")
moet zijn
Txt_Nr.Value = Worksheets(1).Cells(WA.Row, "B")
 
Laatst bewerkt:
Maak er dan wel dit van of je gaat een foutmelding krijgen
Code:
Private Sub Verwijderen_button_Click()
If Cbo_WA_nr.Value = "" Then
    Exit Sub
[COLOR="Red"]Else[/COLOR]
Dim lWA As Long
With ActiveSheet.Range("C:C")
    Set WA = .Find(Cbo_WA_nr.Value, LookIn:=xlValues, lookat:=xlWhole)
    If Not WA Is Nothing Then
        lWA = WA.Row - 1
        Cbo_WA_nr.Value = ""
        Range(WA.Row & ":" & WA.Row).EntireRow.Delete
        Cells(lWA, "B").AutoFill Destination:=Range(Cells(lWA, "B").Address & ":" & Cells(lWA + 1, "B").Address)
    End If
End With
[COLOR="red"]End If[/COLOR]

Mvg

Rudi
 
Warme bakkertje,

Maak er dan wel dit van of je gaat een foutmelding krijgen

Bedankt voor de informatie.
Ik kreeg geen fout melding maar misschien met 2003 wel?

Zie mijn vorig bericht, had nog een foutje ontdekt en heb het al aan gepast.
Mijn vorig bericht heb ik aan gepast met de vermelding hiervan.
 
Beste Warme bakkertje en Hoornvan ;)

Bedankt voor het opkuisen van het bestandje, is nu meer overzichtelijker dan voorheen en voor het wegwerken van de foutmelding die hij geeft in excel 2003.

Zal hem morgen uitproberen op het werk.

De kleine foutjes hier en daar heb ik ook gezien :D

Bedankt voor het volgende extraatje

Code:
Private Sub UserForm_QueryClose _
  (Cancel As Integer, CloseMode As Integer)
    'Verhindert het gebruik van de Sluiten-knop
    If CloseMode = vbFormControlMenu Then
        MsgBox "Formulier enkel sluiten met de Annuleer-knop."
        Cancel = True
    End If
End Sub

Nu ik toch over extraatjes begin, het volgende :

Kan je ervoor zorgen dat via een Msg box een melding wordt gegeven als men bij het invoegen van de Wa. Nr. een getal in geeft dat meer of minder dan 6 cijfers is in userform "Ingeven_van_werkaanvragen.

Groetjes Danny. :thumb:
 
Wijzig de code achter de OK-knop als volgt
Code:
Private Sub Ok_button_Click()
    If Len(Txt_wa) <> 6 Then
    MsgBox "Gelieve 6 cijfers in te geven bij Wa. Nr. "
    Txt_wa.SetFocus
    Exit Sub
    Else
    Wegschrijven
    Txt_wa.SetFocus
    End If
End Sub

Mvg

Rudi
 
Beste Warme bakkertje ;)

Kan men via een code aan 2 voorwaarden voldoen ?

Zie code, maar er ontbreekt iets.

Code:
Private Sub Ok_button_Click()
    If Cbo_Cap_Gr = "DRINGEND" Then
[B]' Hier zou moeten komen dat Txt_datum = ""[/B]
    MsgBox "Gelieve een datum in te geven "
    Txt_wa.SetFocus
    Exit Sub
    Else
    Wegschrijven
    Txt_wa.SetFocus
    End If
End Sub

Heb gezien dat er altijd een Then of Go To achteraan moet staan en geen And.

Hij zou dus aan de 2 voorwaarden moeten voldoen.

Groetjes Danny. :thumb:
 
danny147,

Ik heb dit ervan gemaakt, bedoel je het zo?

Code:
Private Sub Ok_button_Click()
   If Len(Txt_wa) <> 6 Then
        MsgBox "Gelieve 6 cijfers in te geven bij Wa. Nr. "
        Txt_wa.SetFocus
    Exit Sub
    End If
    If Cbo_Week = "DRINGEND" Then
' Hier zou moeten komen dat Txt_datum = ""
        MsgBox "Gelieve een datum in te geven "
        Cbo_Week.SetFocus
    Exit Sub
    Else
        Wegschrijven
        Txt_wa.SetFocus
    End If
End Sub
 
Beste Hoornvan ;)

Ik bedoelde dat, wanneer er in de Cbo_Cap_Gr "DRINGEND" wordt geplaatst dat men dan in Txt_datum , hier een datum moet invullen als deze leeg is.
Met dan als vermelding "Gelieve een datum in te vullen"

In excel code zou het zijn:

Code:
=Als(En(Cbo_Cap_Gr= "DRINGEND";Txt_datum="");"Gelieve een datum in te vullen";"")

Los van de bovenstaande code van 6 cijfers, die heb ik weggelaten.
Neemt te veel plaats op het scherm.

Groetjes Danny :thumb:
 
danny147,

Op het formulier Ingeven Wa's staat geen TXT_datum (kan ik niet vinden) dus wil je er een TextBox bij plaatsen?
Moet deze dan in de kolom week komen?
Zoals ik het gedaan heb komt er als je minder of meer dan 6 cijfers plaats een MsgBox "6 cijfers", Voeg je bij weerk nr. "Dringend" in dan komt de MsgBox "Vul een datum in"
Hij controleerd nu de 2 boxen.

Dat werkt toch perfect, dacht ik

Of snap ik het nu niet meer?
 
Laatst bewerkt:
Beste Danny147,
Is het dit wat je bedoelt ?

Code:
Private Sub Ok_button_Click()
    If Cbo_Cap_Gr = "DRINGEND" And Txt_datum = "" Then
    MsgBox "Gelieve een datum in te geven ", vbExclamation, "Waarschuwing"
    Txt_datum.SetFocus
    Exit Sub
    Else
    Wegschrijven
    Txt_wa.SetFocus
    End If
End Sub

Los van de bovenstaande code van 6 cijfers, die heb ik weggelaten.
Neemt te veel plaats op het scherm.

Kun je ons eens een laatste versie v/h bestand posten, want ik ben nu ook niet meer mee.

Mvg

Rudi
 
Laatst bewerkt:
danny147,

Ik heb er nu dit van gemaakt de knop Week nr. wordt Datum, hij schrijft de ingevoerde datum weg in Week.
Code:
Private Sub Ok_button_Click()
   If Len(Txt_wa) <> 6 Then
        MsgBox "Gelieve 6 cijfers in te geven bij Wa. Nr. "
        Txt_wa.SetFocus
    Exit Sub
    End If
    If Cbo_Week = "DRINGEND" Then
    Lbl_week.Caption = "  Datum"
' Hier zou moeten komen dat Txt_datum = ""
        MsgBox "Gelieve een datum in te geven "
        Cbo_Week.SetFocus
    Exit Sub
    Else
        Wegschrijven
        Txt_wa.SetFocus
    End If
End Sub

Is het zo de bedoeling?
 
Beste Warme bakkertje en Hoornvan ;)

Ik denk dat ik jullie op een verkeerd spoor heb gezet.
De melding voor de Wa. Nr heb ik weg gelaten op het forum, maar niet in mijn code.

Rudi had het gesnapt ivm de nieuwe code zie hierboven.

Kunt ge alles eens uit testen in excel 2003 op eventuele fouten ?
Vb. 2 Wa's ingeven, een aantal Wa's verwijderen via userform alsook op tabblad en een paar Wa's zoeken.

Op het werk krijg ik nog steeds een foutmelding nl.

Code:
.Weight = xlThin

Groetjes danny :thumb:
 

Bijlagen

danny147,

Ik dacht wel dat er wat meer veranderd moest worden dan alleen de code.
Uit je bericht;
Kan men via een code aan 2 voorwaarden voldoen ?
kon ik niet opmaken dat je de formulieren had gewijzicht, wel beter zo.(meer mogelijkheden)
Verder ziet het er goed uit maar ik kan het niet testen omdat ik 2007 gebruik.

Als je colega's dit niet voldoende vinden weet ik het ook niet meer.
 
Beste ;)

Heb code Aanpassen2_button gewijzigd in:

Code:
Private Sub Aanpassen2_button_Click()
    If Cbo_Week = "DRINGEND" And Txt_datum = "" Then
    MsgBox "Vergeet datum niet in te geven "
    Txt_datum.SetFocus
    Exit Sub
    Else
    Wegschrijven3
    Txt_wa.SetFocus
    End If
End Sub

Groetjes Danny :thumb:
 
danny147,

Ik heb het volgende foutje ontdekt;

Code:
Private Sub Aanpassen2_button_Click()
    If Cbo_Week = "DRINGEND" And Txt_datum = "" Then
    MsgBox "Vergeet datum niet in te geven "
    Txt_datum.SetFocus
    Exit Sub
    Else
    Wegschrijven3
    Txt_wa.SetFocus
    End If
End Sub

Code:
[B]Txt_datum.SetFocus [/B]moet [COLOR="Red"]Txt_datum2[/COLOR].SetFocus zijn en [B]Txt_wa.SetFocus[/B]

Deze laatse geeft bij mij een fout melding, als ik hem weg haal werkt alles goed.
 
Laatst bewerkt:
Beste Warme bakkertje en Hoornvan ;)

Heb hier en daar nog wat schoonheidsfoutjes weggewerkt

Zoals:

Wat in de Ok_button staat moet ook in de Volgende_button staan.

Als Cbo_week = "Dringend" en Txt_datum2 = "" dan moet hij de foutmelding pas geven na het wegschrijven van Cbo_week.

En de volgende code heb ik weggelaten in beide verwijder knoppen.

Code:
.Weight = xlThin

Zie definitief bestandje als afsluiter.

Bedankt voor alles. :D

Groetjes Danny. :thumb: :thumb:
 

Bijlagen

Laatst bewerkt:
Danny147,
Nog een kleine aanpassing indien gewenst

Code:
Private Sub Aanpassen2_button_Click()
    Wegschrijven3
End Sub

Sub Wegschrijven3()
Dim lrij As Long
With Worksheets(1).Range("C1:C65536")
Set WA = .Find(Cbo_WA_nr.Value, LookIn:=xlValues, lookat:=xlWhole)
WA.Select
Cells(WA.Row, "F").Value = Zoeken_van_werkaanvragen.Cbo_Week.Value
End With
If Not Cells(WA.Row, "F").Value = "DRINGEND" Then
    Cells(WA.Row, "G").Value = ""
    Txt_datum = ""
    Else
    MsgBox "Vergeet de datum niet aan te passen", vbExclamation
    Txt_datum2.SetFocus
End If
End Sub

Opm.: door die xlThin weg te laten trekt hij nu geen verticale lijnen meer onderaan je kader.

Mvg

Rudi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan