UserForm checkt op nieuw nummer in werkblad

Status
Niet open voor verdere reacties.

Jarodxxx

Gebruiker
Lid geworden
26 nov 2006
Berichten
243
Hallo,

Bijgevoegd is een testbestand "NieuwNummeraanmaken.xls".
Op het Formulier wat je krijgt staat een knop "Nieuw" en een textbox.

Is het mogelijk om op het moment dat je klikt op de button "Nieuw" dat er op het werkblad "nummer" een nieuw nummer wordt gezet?. Dit nummer moet beschikbaar zijn en liggen in de reeds gebruikte range (hier 1 - 5) als het nummer niet beschikbaar is in de range dan moet hij een nieuw opvolgend nummer maken (als 3 niet beschikbaar is dan dus 6 enz..).

Het nieuwe nummer moet worden gezet in het werkblad "nummer" en in de textbox.

Kan dit? en zo ja, hoe?

Alvast bedankt voor alle hulp!

Jarod.
 

Bijlagen

Zet deze code achter je userform-blad

Code:
Public Sub UserForm_Activate()

vNr = 1
vFind = False

With Worksheets("Nummer").Range("A2:A300")
Set a = .Find(vNr, LookIn:=xlValues, lookat:=xlWhole)
    If Not a Is Nothing Then
    
        Do Until vFind = True
        vRij = a.Row
        If Range("B" & CStr(vRij)).Value = "" Then
            vNieuwNr = a.Value
            TextBoxNieuwNummer.Value = vNieuwNr
            vFind = True
        Else
            vNr = vNr + 1
            Set a = .Find(vNr, LookIn:=xlValues, lookat:=xlWhole)
            If Not a Is Nothing Then
                vRij = a.Row
            ElseIf a Is Nothing Then
                TextBoxNieuwNummer.Value = vNr
                vFind = True
            End If
        End If
        Loop
        
    End If
End With

End Sub

Deze code zoekt alleen naar de eerst volgende nummer die beschikbaar is.
Dus bij opstarten vindt hij nummer 3, en wanneer deze bezet is nummer 6, etc. etc.

Dit zijn je eindwaarden bij opstarten:
- TextboxNieuwNummer.value = 3 (idem als vNr)
<========== Deze waarde wordt automatisch in je userform aangegeven

- vRij = 3
<========== Door middel van je eigen nog te maken code kan je onder deze rij een nieuwe rij invoegen


Dus wat je nu nog zelf moet uitzoeken is:
- Dat de VBA-code onder rij 3 (met als nummer-waarde 2) een rij invoegt c.q. kopieert.
- De waarde van vNr invullen in die nieuw gemaakte rij


Let wel op: Het programma kan vervelend doen als je een andere waarde in je textbox gaat invullen. Maar daar kom je wel achter.

suc6
 
Formulier werkt op ander blad

Heel erg bedankt!

Werkt prima, echter is het ook mogelijk om deze code uit te voeren als UserformNieuwNummer wordt geopend op sheets("blad2")?

Volgens mij ligt het ergens aan de volgende code:

Code:
With Worksheets("Nummer").Range("A2:A300")
  Set a = .Find(vNr, LookIn:=xlValues, lookat:=xlWhole)

Is het daarnaast ook mogelijk dat het cijfer uit "TextBoxNieuwNummer" in het werkblad("Nummer") te plaatsen met als criterium dat hetzelfde nummer maar 1x wordt opgeslagen?

Groeten,

Jarodxxx
 

Bijlagen

Snap niet echt wat je bedoelt met dat criterium ?!

Bedoelde je zoiets als bijgevoegd ?

Het lag inderdaad aan die code, je hebt nu namelijk te maken met een andere werkblad naam. Gewoon een variable toekennen aan de huidige werkbladnaam en dat aangeven in je code.

Let wel op: de code zal continu opstarten wanneer je één van de 2 bladen opent of aanklikt. Weet niet of dat de bedoeling is, maar je zou eventueel de code pas kunnen laten werken als je aan een macro een sneltoetscombinatie toevoegt.
 

Bijlagen

Laatst bewerkt:
Nummer kijken op verkeerde werkblad

Hallo gast0667,

Bedankt voor je hulp zover.

Heb het helaas niet goed uitgelegd in dit geval.

Ik bedoelde het volgende:

Is het mogelijk als ik sheet ('blad 2") open dat het formulier start, maar dat deze kijkt voor beschikbare nummers in een rij op sheet ("nummer")?

1) Daarbij is het de bedoeling dat het bepaalde nummer onderaan de rij wordt toegevoegd
in sheet ("nummer")
2) Staat het nummer er al? maar is kolom B leeg, dan toch weer dat nummer gebruiken
(+ opslaan)

Bedankt en excuus voor slechte uitleg.

Jarod
 
Laatst bewerkt door een moderator:
Update: nummer maken

gast0667,

Vorige post is me inmiddels al gelukt (zie bijlage) (volgens mij voert de code nog wel een .select actie op sheet("blad2") uit?


Gaande weg bedacht ik me dat het handig is als er een maximum aan het aantal te maken nummer is.

De range is nu A2:A15 is het ook mogelijk dat het maximum aantal getallen bepaald wordt op basis van sheet("Range")?

Als het maximum bereikt is moet er alleen een melding komen dat het maximum aantal bereikt is. (msgbox)

Dat bij het sluiten van 't formulier (CommandButtonSluiten) alle rijen met alleen een nummer en zonder tekst kolom B verwijderen.


Bedankt,

Jarod
 

Bijlagen

Laatst bewerkt door een moderator:
Update: nummer maken

gast0667,

Vorige post is me inmiddels al gelukt (zie bijlage) (volgens mij voert de code nog wel een .select actie op sheet("blad2") uit?


Gaande weg bedacht ik me dat het handig is als er een maximum aan het aantal te maken nummer is.

De range is nu A2:A15 is het ook mogelijk dat het maximum aantal getallen bepaald wordt op basis van sheet("Range")? (A2 staat hierbij uiteraard altijd vast)

Als het maximum bereikt is moet er alleen een melding komen dat het maximum aantal bereikt is. (msgbox)

Dat bij het sluiten van 't formulier (CommandButtonSluiten) alle rijen met alleen een nummer en zonder tekst kolom B verwijderen.


Bedankt,

Jarod
 
Laatst bewerkt door een moderator:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan