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

cellen koppelen tot serienummer

Status
Niet open voor verdere reacties.

robbie32

Gebruiker
Lid geworden
21 dec 2001
Berichten
780
Hoi,

Vraagje:

Wij gebruiken serie nummer met de volgende indeling: 070702
waarvan de eerste 07 het jaar is
de 2e 07 de maand
de 3e 02 het volgnummer.

Nu heb ik het zover gekregen om dit automatisch in excel te laten verschijnen.
Echter lukt het niet helemaal.
cel a1: =nu()
cel a2: =jaar(a1)
cel a3: =maand(a1)
cel a4: 02 (volgnummer vastgezet met 2 getallen) dus 02 wordt hier ook weergegeven.

Nu wil ik dus cel a2, a3 en a4 samenvoegen (cel a4 laat ik ophogen door een makro)
nu is het resultaat in a5 met de formule : =RECHTS(A2;2)&RECHTS(A3;2)&RECHTS(A4;2) ; 0772. En dit is niet de indeling zoals ik die hebben wil (070702) hoe krijg ik dit voor elkaar??

PS ik weer dat e.e.a. vereenvoudigd kan worden, maar dat is van latere zorg.

Gr. Robbie32
 
Code:
Option Explicit

'   code: J. Radjesh Klauke, Sexbierum, Netherlands
'   web : http:\\office.webforums.nl

Sub ChangeFormat()
    Application.ScreenUpdating = False
        If ActiveCell.Value = "" Then
            MsgBox "no value selected"
        Else
            ActiveCell.Value = Format(ActiveCell.Value, "##-##-##")
        End If
    Application.ScreenUpdating = True
End Sub
Even snel geschreven. Zelf naar eigen wensen aanpassen.
 
Kon het toch niet laten...

Code:
Option Explicit

'   code: J. Radjesh Klauke, Sexbierum, Netherlands
'   web : http:\\office.webforums.nl

Sub SetFormat()
    Dim sh As Worksheet
    Dim rng As Range

    Set sh = ActiveSheet
    For Each rng In sh.UsedRange
        If Application.IsNumber(rng) Then
            rng.Value = Format(rng.Value, "##-##-##")
        Else
        End If
    Next
End Sub

Seze code zorgt er voor dat de selectie wort aangepast naar de betreffende Format. Je zult zelf even de code naar smaak aan moeten passen. Voor de rest doet deze wat jij wilt.
 
Hoi,

Bedankt voor je reactie.
Ik snap dat je deze code in de de sheet zelf moet copieren.
Maar kan je dit voorbeeld misschien even als bijlage meesturen zodat ik fkes een voorbeeldje heb?

alvast mijn dank

Robbie32
 
Excusesn voor de alleen maar het plaatsen van de code. Beetje uitleg was wellicht (inderdaad) makkelijk voor je geweest ;)

Voorbeeld: Plaats de code in een Module!!!! en plaats een commandbutton op het werkblad. Open de VBA-Editor (Alt+F11) en dubbelklik op Blad1 in de Editor. Deze zie je aan de rechterkant staan. Kopieer en plak dan deze code:

Code:
Private Sub CommandButton1_click()
    Setformat
End sub

Wanneer je nu een cel selecteert, daarna op de commandbutton klikt, zal de Format wijzigen. ;)
 
Ik heb de code iets voor je uitgebreid. Zelf uiteraard weer even naar eigen smaak aanpassen.

Code:
Option Explicit

'   code: J. Radjesh Klauke, Sexbierum, Netherlands
'   web : http:\\office.webforums.nl

Sub SetFormat()
    Dim sh As Worksheet
    Dim rng As Range

    Set sh = ActiveSheet
    For Each rng In sh.UsedRange
        If Application.IsNumber(rng) Then
            If Len(rng.Value) <> 6 Then
                MsgBox "No Valid Entry", vbInformation+vbOkOnly, "Error"
                Exit Sub
            End If
            rng.Value = Format(rng.Value, "##-##-##")
        Else
            ActiveCell.Select
            Exit Sub
        End If
    Next
End Sub
 
Laatst bewerkt:
Helaas is dit niet wat ik zoek.
Ik krijg er koppeltekens tussen en daar heb ik niets aan.
En de waardes die verschijnen kloppen ook niet. De gegevens van de datum geeft tie als seriele waarde weer en niet als werkelijke datum.

Is er geen andere mogelijkheid, iets met celeigenschappen oid om dit voor elkaar te krijgen?

Robbie32
 
cel a1: =nu()
cel a2: =jaar(a1)
cel a3: =maand(a1)
cel a4: 02 (volgnummer vastgezet met 2 getallen) dus 02 wordt hier ook weergegeven.

Nu wil ik dus cel a2, a3 en a4 samenvoegen (cel a4 laat ik ophogen door een makro)
nu is het resultaat in a5 met de formule : =RECHTS(A2;2)&RECHTS(A3;2)&RECHTS(A4;2) ; 0772. En dit is niet de indeling zoals ik die hebben wil (070702) hoe krijg ik dit voor elkaar??

=TEKST(REST(A2;1000);"00")&TEKST(A3;"00")&TEKST(A4;"00")

Wigi
 
en met deze code?

Code:
Option Explicit

'   code: J. Radjesh Klauke, Sexbierum, Netherlands
'   web : http:\\office.webforums.nl

Sub SetFormat()
    Dim sh As Worksheet
    Dim rng As Range

    Set sh = ActiveSheet
    For Each rng In sh.UsedRange
        If Application.IsNumber(rng) Then
            If Len(rng.Value) <> 5 Then
                MsgBox "No Valid Entry"
                Exit Sub
            End If
            rng.Value = Format(rng.Value, "##-##-##")
            rng.Value = Format(rng.Value, "dd-mm-yyyy")
        Else
            ActiveCell.Select
            Exit Sub
        End If
    Next
End Sub
 
=TEKST(REST(A2;1000);"00")&TEKST(A3;"00")&TEKST(A4;"00")

Wigi


Hoi Wigi,

Dit is precies wat ik zocht.. kort maar krachtig!!
Bedankt.

@ Radjesh Klauke;

Ik denk dat deze code te ingewikkeld is voor mijn vraag. Nadeel er moet altijd een button geklikt worden om e.e.a. uit te voeren. de oplossing van Wigi sluit veel beter aan bij mijn vraag. Maar bedankt voor het meedenken!

Gr. Robbie32
 
=TEKST(REST(A2;1000);"00")&TEKST(A3;"00")&TEKST(A4;"00")

Wigi

Wigi,

Nog een vraagje/aanvulling hierop.
Is het ook mogelijk om als de maand overgaat naar de volgende maand (dus van juli naar augustus) de teller van het volgnummer automatisch te resetten?

Ik hoop dat je hier ook een oplossing voor hebt, dat zal mijn nog verder helpen in mijn probleem!

Alvast mijn dank
 
Hoi,

Nog even een aanvulling op Wigi:

=TEKST(REST(JAAR(NU());1000);"00")&TEKST(MAAND(NU());"00")&TEKST(A4;"00")

Je hebt nu niet meer apart de cellen A2 en A3 nodig
A1 had je al niet nodig
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan