Volgnummers gebruiken in onderwerp outlook

Status
Niet open voor verdere reacties.

Leyke

Nieuwe gebruiker
Lid geworden
15 jul 2013
Berichten
4
Voor het maken van een nieuwe mail in outlook heb ik een code geschreven die een Formulier opent. In dit formulier kan ik dan door middel van Option Buttons aangeven om welk technisch systeem (SYS) de mail gaat. Tevens kan ik een volgnummer ingeven. Dit is altijd een 3 cijferig nummer (001, 002, 003, enz). De code achter het Formulier bepaalt ook nog het jaar (YY) en de dag van het jaar (DDD). Zo creëer ik een referentie als begin van het onderwerp van de mail. De referentie heeft dus volgende format: SYS_YY.DDD_001.
Als ik van één bepaald systeem (SYS) meerdere mails op een dag moet maken moet ik zelf bijhouden welk volgnummer ik als laatste heb gebruikt.

Ik zou graag willen dat een VBA code dat voor mij bijhoud. Het spreekt voor zich dat bij een nieuwe dag het volgnummer weer bij 001 moet beginnen.
Ik heb meerdere technisch systemen waar ik uit kan kiezen op het Formulier, dus de code moet voor elk systeem bijhouden welk volgnummer als laatste is gebruikt.

Heeft iemand hier een idee over?

Alvast bedankt voor de reactie('s).
 
Schrijf in een bestandje op een vaste locatie welk nummer je het laatst hebt gebruikt. Uiteraard doe je dat per SYS. Of dat dan een bestandje per SYS is of 1 bestand waar ze allemaal in staan maakt niet zoveel uit. Bij het aanmaken van een nieuw formulier lees je dat bestandje dan, hoogt het nummer met 1 op en gebruikt het gelezen nummer in het formulier. Dan hoef je die ook niet meer zelf in te geven.
 
Laatst bewerkt:
Aan die mogelijkheid had ik ook al gedacht. Maar mijn doel is om het zonder bestand te doen. Ik zat eigenlijk te denken aan het gebruik van een (dynamic?) Array en hoopte dat iemand mij daarmee op weg zou kunnen helpen.
 
Je kan in een array opslaan wat je wilt maar als je Outlook afsluit is dat weg.
 
Ivm beperkingen ben ik niet gemachtigd om wijzigingen in het register aan te brengen (ik wil dit voor op mijn werk gebruiken).
Ik wil dan ook verder gaan om een bestand (ik dacht aan excel) te gebruiken waarin per systeem het laatst gebruikte volgnummer wordt vermeld. Volgnummer 000 geeft dan aan dat voor desbetreffend systeem nog geen mail die dag is gemaakt.
Ik dacht aan een methodiek die elke keer als het formulier geladen wordt, de gegevens in excel converteerd naar een array in de code van outlook. Steeds bij een selectie van een technisch systeem dient de code dan uit de array het laatst gebruikte volgnummer te halen en het volgende nummer voor te stellen.
Bij akkoord en afsluiten van het formulier dient de code de array bij te werken met het nieuwe volgnummer en weer weg te schrijven in het excel bestand.

Bij het eerste gebruik op een dag van het formulier dient eerst alles weer op 000 gezet worden.

Klinkt dat werkbaar of is een andere methodiek meer werkbaarder?

Blijft de vraag of iemand een voorbeeld heeft om gegevens in een excelrange in een array te laden in de code die onder outlook wordt gebruikt.

Wederom bedankt voor de reacties.
 
Zoals ik al zei, een bestandje waarin het is opgeslagen. En of dat nu Excel is of een ander type bestand maakt niet uit. Als je een voorbeeldje maakt van zo'n Excel bestandje met de juiste gegevens erin maak ik wel een stukje VBA in Outlook voor je om die gegevens in te lezen en te wijzigen.
 
Eigenlijk is dat bestandje heel simpel. In kolom A staat SYST_1 tot bijv SYST_5.
In kolom B staat dan achter elk systeem het volgnummer. Het volgnummer is een tekst in de vorm van 000. Het zou wel mooi zijn als er een systeem aan het bestand aan wordt toegevoegd dat de VBA code hiervoor niet gewijzigd hoeft te worden.

Zoals al gezegd, als het formulier op een dag voor het eerst wordt geopend dienen alle volgnummers op 000 gezet worden.

Alvast bedankt.
 
Maak een Excel document met de naam SYST_volgnummers.xlsx en plaats deze in je documenten map. Het document dient de volgende inhoud te hebben:
Syst.JPG
Het werkblad noem je Volgnummers.

Maak in het Outlook VBA project een module aan en plaats daar deze functie in:
Code:
Function HaalVolgnummer(Syst As String, Optional Nieuw As Boolean) As String
    Dim xlApp As Object
    Dim sourceWB As Object
    Dim Regel As Integer
    Dim Nummer As Integer

    Set xlApp = CreateObject("Excel.Application")
    With xlApp
        .Visible = False
        .EnableEvents = False
    End With
        
    Set sourceWB = xlApp.Workbooks.Open(Environ("userprofile") & "\Documents\SYST_volgnummers.xlsx")
    Regel = Right(Syst, 1)
    If Nieuw Then sourceWB.Worksheets("Volgnummers").Cells(Regel, 2) = 0
    Nummer = sourceWB.Worksheets("Volgnummers").Cells(Regel, 2) + 1
    sourceWB.Worksheets("Volgnummers").Cells(Regel, 2) = Nummer
    sourceWB.Close True
    Set xlApp = Nothing
    HaalVolgnummer = Format(Nummer, "000")
End Function

Vanuit je eigen Sub roep je die dan als volgt aan om een nummer op te halen:
VlgnrSyst_1 = HaalVolgnummer("SYST_1")

Om een nummer weer bij 1 te laten beginnen voor een nieuwe dag gebruik je dit:
VlgnrSyst_1 = HaalVolgnummer("SYST_1", True)

Uiteraard bepaal je in je eigen Sub wanneer dat nodig is.

NB.
Dit werkt goed voor SYST_1 t/m SYST_9
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan