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

automatisch nummer bij openen van bestand.

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

DZP

Gebruiker
Lid geworden
26 feb 2007
Berichten
242
Is het mogelijk om bij het openen van een bestand automatisch een nieuw nummer te krijgen in een bepaalde cel die dan per opening met één verhoogt en begint met het jaartal en daar dan nog 6 cijfers achter plakt?:o

Natuurlijk zou ik dit het liefst voor excel willen hebben maar als het mogelijk is in word, zou ik daar ook zeer erkentelijk mee zijn!!:thumb:
 
Probeer deze eens:
Code:
Private Sub Workbook_Open()
Dim teller As Long

    teller = Range("A1")
    Range("A1") = teller + 1
    
End Sub
 
Zo misschien?

Code:
Private Sub Workbook_Open()
    Dim l As Long
    l = CLng(Right(Sheets("Sheet1").Range("A1"), 6))
    Sheets("Sheet1").Range("A1") = Year(Date) & l + 1
End Sub

Plak deze code in VBA bij ThisWorkbook. Je komt daar door Alt-F11 te doen, vervolgens in Project explorer te dubbelklikken op je bestandsnaam en nog eens op ThisWorkbook.

Wigi
 
Wigi <> Probeer deze eens:
Private Sub Workbook_Open()
Dim l As Long
l = CLng(Right(Sheets("Sheet2").Range("b45"), 6))
Sheets("Sheet2").Range("b45") = Year(Date) & l + 1
End Sub
Als ik het zo invoer krijg ik de mededeling:
Er is een dubbelzinnige naam "Sub Workbook Open" en dat klopt want die schoont bepaalde cellen op bij het openen van het bestand.

Als ik dan het volgende invoer:
Code:
Dim l As Long
    l = CLng(Right(Sheets("Sheet2").Range("b45"), 6))
    Sheets("Sheet2").Range("b45") = Year(Date) & l + 1
Krijg ik de volgende mededeling:
Fout 9 tijdens uitvoering.
Het subscript valt buiten het bereik!!!
Wat is er of doe ik voud.
 
Laatst bewerkt:
Code:
Private Sub Workbook_Open()
Dim teller As Long

    teller = Sheets("naam van je blad").Range("A1")
    Sheets("naam van je blad").Range("A1") = teller + 1
    
End Sub

Deze is beter.
Zeker omdat je niet altijd saved als je in dit blad staat.
Dus als je je file opent dan zal hij cel A1 pakken vanaf het blad wat op dat moment aktief is.

Zie Wigi zijn code (ik wilde even snel mijn code er in stampen en was dit nog vergeten).
 
Is het ook mogelijk om de nummers met datum op 1 januari weer met een nieuw jaar te laten beginnen en de rest van de nummers weer op 0 te zetten?:rolleyes:
 
Demeter wat jij heb aangegeven volstaat voorlopig dus bedankt voor je service.
Die van Giwi is volgens mij met jaartal maar die wil helaas niet runnen.
In ieder geval bedankt voor de moeite en ik sluit dit onderwerp af.:thumb:
 
i am sorry,
Zo kun je zien dat ik toch ook een mens ben!

Wigi bedankt voor de oplossing (met jaartal)
Maar begint de macro op 1 januari met een nieuwe telling of loopt de telling gewoon door?

Topic is weer even geopend!!
 
Laatst bewerkt:
i am sorry,
Zo kun je zien dat ik toch ook een mens ben!

Wigi bedankt voor de oplossing (met jaartal)
Maar begint de macro op 1 januari met een nieuwe telling of loopt de telling gewoon door?

Topic is weer even geopend!!

Het jaartal stijgt met 1 en het nummer erachter ook.

Bv.

2006000045

wordt

2006000046

Wigi
 
Ik zie nu pas dat je terug op 0 wilt beginnen. Straks zal ik de code aanpassen.
 
Code:
Private Sub Workbook_Open()
    Dim l As Long, lVolgNumm As Long
    l = CLng(Right(Sheets("Blad1").Range("A1"), 6))
    If Day(Date) = 1 And Month(Date) = 1 Then
        lVolgNumm = 1
    Else
        lVolgNumm = l + 1
    End If
    Sheets("Blad1").Range("A1") = Year(Date) & WorksheetFunction.Rept("0", 6 - Len(CStr(lVolgNumm))) & lVolgNumm
End Sub

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan