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

autonummer zoeken

Status
Niet open voor verdere reacties.
Hoi heb nog een probleempje gevonden...

werkt alles perfect bij de getalen 11000 12000 13000 14000
maar ik heb er 2 die beginnen met 01000 en 02000
en nu krijg ik daar natuurlijk als nieuw getal 1000. :o
 
Rene046, Dat je bij 01000 als 1e nieuwe getal 1001 krijgt, dat klopt! De waarde 01000 is namelijk géén getal maar een tekst. Excel is vervolgens zo slim om 'm toch als een getal te zien, en sloopt daarvoor de voorste nul van de waarde.
Als je dus met een 5-cijferig artikelnummer wilt werken, zal je 1e nummer 10000 (tienduizend) moeten zijn. (dit is een regel in databeheer-land)

Nog een vraagje... Hoe zet je die tekstwaarde 01000 eigenlijk in een cel? Als het goed is wordt die al direct aangepast naar 1000.

Groet, Leo
 
Laatst bewerkt:
O dat was makkelijk

eigenschappen (rechter klik)
notatie, aangepast, en dan 5 nullen typen


helaas kan ik niet die 01000 in 10000 veranderen want alle producten zijn al genummert.
wat ik dus weer raar vind is dat ik als het ware ook 1000 kan invullen in een cel in de A kolom en daar dan wel 01000 komt te staan.

dus met de bovenstaande routine word de eigenschap van de cel niet behouden of zo.
 
Rene046, En plakken maar weer...:):D
Code:
Sub VindOntbrekendGetal4()
'variatie op code van Ginger... door Wigi (zoeken mag in ongesorteerde lijst); 25/10/2007
'bijgewerkt door Ginger (1e ontbrekende getal wordt onder de lijst geplaatst -> indien er geen _
 ontbrekend getal is wordt de hoogste waarde met 1 verhoogd); 26/10/2007
'bijgewerkt door Ginger; 28/10/2007; numberformat van de cel op 'custom'& "00000"
    Dim rCell As Range
    Dim rToSeek As Range
    Dim i As Integer, y As Integer, z As Integer, x As Integer
    Dim lLastCell As Long
    
    '####################################################################################
    Const iKolNrBron As Integer = 13 'geef hier het kolomnummer van de te doorzoeken lijst
    '####################################################################################
    
    lLastCell = Cells(65536, iKolNrBron).End(xlUp).Row
    
    Set rToSeek = Intersect(Columns(iKolNrBron), ActiveSheet.UsedRange)
    
    y = WorksheetFunction.Min(rToSeek) 'onderste waarde in lijst
    z = WorksheetFunction.Max(rToSeek) 'bovenste waarde in lijst
    
    For i = y To z
        Set rCell = rToSeek.Find(what:=Format(i, "00000"), lookat:=xlWhole, LookIn:=xlValues)
        
        If rCell Is Nothing Then
            With Cells(lLastCell + 1, iKolNrBron)
                .Value = i
                .NumberFormat = "00000"
            End With
            Exit Sub
        End If
    Next
    
    With Cells(lLastCell + 1, iKolNrBron)
        .Value = z + 1
        .NumberFormat = "00000"
    End With

End Sub

Groet, Leo
 
Leo

dat werkt nu topie.

heel erg bedankt.

zou je me nog willen uitleggen hoe ik deze macro zo kan uitvoeren
dat de gebruiker in een tekstveld in een formulier eerst het nummer te zien krijg.
dan zet ik die in Initialize van dat blad

of mischien makkelijker.....

in het een formulier staat een tekstvak txt_ID waar het nummer in komen moet.
dan doet de rest van het formulier denk ik wel die waarde opslaan op de goede rij, tenminste dat werkt al goed.

groetjes Rene
omdat ik pas bezig ben kom ik er nog niet uit waar die waarde eigenlijk in zit, wat ik denk
is het die rCell.
 
Leo

dat werkt nu topie.

heel erg bedankt.

zou je me nog willen uitleggen hoe ik deze macro zo kan uitvoeren
dat de gebruiker in een tekstveld in een formulier eerst het nummer te zien krijg.
dan zet ik die in Initialize van dat blad

of mischien makkelijker.....

in het een formulier staat een tekstvak txt_ID waar het nummer in komen moet.
dan doet de rest van het formulier denk ik wel die waarde opslaan op de goede rij, tenminste dat werkt al goed.

groetjes Rene
omdat ik pas bezig ben kom ik er nog niet uit waar die waarde eigenlijk in zit, wat ik denk
is het die rCell.
 
Laatst bewerkt:
Hoi Leo,

heb het opgelost.. pff lastig denken dat macro taaltje.

dit is wat ik er van gemaakt heb.
Code:
  Sheets("CAT01").Select
    Dim rCell As Range
    Dim rToSeek As Range
    Dim i As Integer, y As Integer, z As Integer, x As Integer
    Dim lLastCell As Long
    
    '####################################################################################
    Const iKolNrBron As Integer = 1 'geef hier het kolomnummer van de te doorzoeken lijst
    '####################################################################################
    
    lLastCell = Cells(65536, iKolNrBron).End(xlUp).Row
    
    Set rToSeek = Intersect(Columns(iKolNrBron), ActiveSheet.UsedRange)
    
    y = WorksheetFunction.Min(rToSeek) 'onderste waarde in lijst
    z = WorksheetFunction.Max(rToSeek) 'bovenste waarde in lijst
    
    For i = y To z
        Set rCell = rToSeek.Find(what:=Format(i, "00000"), lookat:=xlWhole, LookIn:=xlValues)
        
        If rCell Is Nothing Then
       
            txt_ID.Value = Format(i, "00000")
            
            Exit Sub
        End If
    Next
    
       txt_ID.Value = Format(z + 1, "00000")
 
Rene046, Prima gevonden!:thumb: Succes met de rest van je form.

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan