Twee werkbladen met een vba.

Status
Niet open voor verdere reacties.

Rob Vermeer

Gebruiker
Lid geworden
4 mei 2007
Berichten
54
Allemaal goede dag hier op het forum.

Ik ben al een paar dagen bezig met vba.:)
Ik begin het al een klein beetje in de gaten te krijgen hoe het zo,n beetje werkt.

Maar nu mijn vraag:

Ik heb 2 werkbladen die precies dezelfde functie heeft.
Met het invoeren van de nummers komt er I.c Rolnummers boven de venster te staan.
In het werkblad 1 moet het komen te staan.

Maar in het werkblad 2 moet in dat venstertje Loonwerk Rolnummers te staan.
Ben al heel wat aan het stoeien geweest maar nu ik er niet meer uit komen,
dus daarom mijn vraag.


Public rolnummer As String


Sub auto_open()
UserForm2.Show


ingave:
rolnummer = InputBox("Geef het rolnummer in: ", "I.c Rolnummers", rolnummer, 3800, 1700)
If rolnummer = "" Then GoTo einde
If Len(rolnummer) < 9 Or Len(rolnummer) > 10 Then GoTo foutmelding
Range("A1").Select
On Error GoTo nietdubbel
Columns("A:A").Find(rolnummer, lookat:=xlWhole).Activate
rijnummer = ActiveCell.Row()
If rijnummer <> 1 Then GoSub dubbelnummer
GoTo ingave

dubbelnummer:
pakbonnummer = ActiveCell.Offset(0, 1).Value
datum = ActiveCell.Offset(0, 2).Value
waarschuwing = MsgBox("Rolnummer " & rolnummer & " bestaat reeds." & Chr$(10) & Chr$(13) & "Pakbonnummer: " & pakbonnummer & Chr$(10) & Chr$(13) & "Datum: " & datum, 48)
Return

nietdubbel:
voorloop = ""
pakbonnummer = InputBox("Geef pakbonnummer in: ", "Pakbonnummers", pakbonnummer, 3800, 1700)
Range("A2").Select
Selection.EntireRow.Insert
ActiveCell.Formula = Chr$(39) & rolnummer
ActiveCell.Offset(0, 1).Formula = Chr$(39) & pakbonnummer
ActiveCell.Offset(0, 2).Formula = Now()
Selection.EntireRow.Select
Selection.HorizontalAlignment = xlGeneral
Selection.Font.Bold = False
Range("A1").Select
If Mid(rolnummer, 1, 1) = "0" Then voorloop = "0"
rolnummer = voorloop & (Val(rolnummer) + 1)
Resume Next

foutmelding:
melding = MsgBox("Invoer: " & rolnummer & Chr$(10) & Chr$(13) & "Rolnummer heeft niet het juiste aantal posities.", 48, "Invoerfout")
GoTo ingave

einde:
UserForm1.Show
End Sub

Mocht je het bestandje erbij willen hoor ik het wel.
 

Bijlagen

Laatst bewerkt:
Code:
rolnummer = InputBox("Geef het rolnummer in: ", ActiveSheet.Name, rolnummer, 3800, 1700)

Wigi
 
@Wigi toppie:thumb:

Maar nu nog 1 vraag over deze :

In werkblad I.c Rolnummers staat dit :

[ If Len(rolnummer) < 9 Or Len(rolnummer) > 10 Then GoTo foutmelding]


Dat klopt maar in werkblad Loonwerk Rolnummers moet dit komen te staan :

[If Len(rolnummer) < 5 Or Len(rolnummer) > 10 Then GoTo foutmelding


Hoe kan ik dit het beste oplossen.:confused:
 
Gebruik een IF structuur om op basis van de naam van het tabblad (ActiveSheet.Name) na te gaan of het een 5 of een 9 is.

Wigi
 
Een Iif kan ook en is eigenlijk zeer gelijkaardig aan de ALS functie in Excel.

Niet alleen Excel heeft helpfunctie, VBA ook.

Wigi
 
Sorry maar hier kan ik ff niet uitkomen.:evil:

Zouden jullie mij nog een keer kunnen helpen.:o
 
Gebruik een IF structuur om op basis van de naam van het tabblad (ActiveSheet.Name) na te gaan of het een 5 of een 9 is.

Code:
If Len(rolnummer) < IIf(ActiveSheet.Name = "I.c Rolnummers", 9, 5) Or Len(rolnummer) > 10 Then GoTo foutmelding

Toch niet zo ongelooflijk ingewikkeld hé ;)

Wigi
 
TOPPIE TOPPIE.:thumb: :thumb: :thumb: :thumb: :thumb:

Toch niet zo ongelooflijk ingewikkeld hé

Voor een leek als mij wel hoor.

Maar nogmaals bedankt .:D ;) :thumb:

Ga het vanavond ff er in zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan