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

Opslaan als met het eerst volgende verhoogde nummer

Status
Niet open voor verdere reacties.

snitsel

Gebruiker
Lid geworden
12 feb 2008
Berichten
199
Beste

Ik had graag een macro knop gebruikt in excel met de volgende functie:
Mijn bestelling moet opgeslagen worden onder het eerst volgende nummer.
Bestellingen worden onder de volgende benaming opgeslagen: BE080000

Stel de laatste bestelling heeft de volgende benaming: BE080016
Ik open een nieuwe bestelling in excel op de server: C:\Bestellingen
Als ik op de macro knop druk moet de bestelling opgeslagen worden --> C:\Bestellingen\
BE080017.xls
en zo verder voor alle volgende bestellingen

mvg
 
Je kan met het FileSearch object werken om op te halen hoeveel bestanden er in een directory zitten, al dan niet onderworpen aan voorwaarden (extensie, ...)

Zie voor code hier: http://www.helpmij.nl/forum/showthread.php?t=340985&highlight=filesearch, post # 3.

Vervolgens een SaveAs doen in VBA gebruik makende van het vorige resultaat, + 1. Dit stukje is al vaak voorgekomen op het forum hier.

Wigi

Wigi, dit zal waarschijnlijk niet het goede resultaat weergeven want er staan ook bestanden in deze map die hij niet mag meetellen (oa standaard bestellingen ..)
Vanaf dat er opeens een standaard bestelling wordt bijgezet op de server, zal hij dus weer mis tellen.
Of ben ik mis?
 
Wigi, dit zal waarschijnlijk niet het goede resultaat weergeven want er staan ook bestanden in deze map die hij niet mag meetellen (oa standaard bestellingen ..)
Vanaf dat er opeens een standaard bestelling wordt bijgezet op de server, zal hij dus weer mis tellen.
Of ben ik mis?

Een beetje wel.
Wat Wigi bedoelt is dat je aan kunt geven welke bestanden geteld moeten worden.
In onderstaande code wordt in de directory C:\Bestellingen gezocht naar bestanden die met BE08 beginnen.
Er verschijnt een messagebox met het hoogste waarde dat gevonden wordt (bijv. BE080016) en het volgende nummer (dus BE080017).
Er wordt dus nog niets opgeslagen maar ik denk dat je hiermee wel uit de voeten kan.

Code:
Sub BestandenZoeken()

With Application.FileSearch
    .LookIn = "C:\Bestellingen\"
    .Filename = "BE08*"
    If .Execute() > 0 Then
        MsgBox "Het laatste bestand is : " & .FoundFiles(.FoundFiles.Count) _
        & Chr(13) & "Het eerste nummer is : " & Format(Right(.FoundFiles.Count, 4) + 1, "BE080000")
    End If
End With

End Sub

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
Code:
.Filename = "BE08*"

Zoiets inderdaad ja. Ik was wellicht niet duidelijk genoeg, excuses.
 
Code:
.Filename = "BE08*"

Zoiets inderdaad ja. Ik was wellicht niet duidelijk genoeg, excuses.

Dan wordt het eigenlijk maar geteld? en nog niet opgeslagen als eerst volgend bestand?

ik heb het even uitgeprobeerd en ik krijg een foutmelding.
foutmeldingopsporing: With Application.FileSearch

Wat is hier mis?
 
Dat dient enkel voor het tellen, ja.

In een vorige post schreef ik al dat je daarna nog een SaveAs moet doen.

ik heb het even uitgeprobeerd en ik krijg een foutmelding.
foutmeldingopsporing: With Application.FileSearch

Wat is hier mis?

Gebruik je Excel 2007?
 
Dat dient enkel voor het tellen, ja.

In een vorige post schreef ik al dat je daarna nog een SaveAs moet doen.



Gebruik je Excel 2007?

Hoe zal mijn code er dan uitzien als ik nog een "SaveAs" moet doen met het voorgaande resultaat +1?

Ja ik gebruik Excel 2007! Waarom?
 
Als ik Google op

excel 2007 filesearch

krijg ik al direct een aantal pagina's met uitgewerkte code.

Wigi
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan