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

macro aanpassen (nummer opzoeken, aanpassen e.d.)

Status
Niet open voor verdere reacties.

koogert

Gebruiker
Lid geworden
24 mrt 2010
Berichten
7
Beste help mij crew,

Ik ben bezig met een document dat diverse macro's bevat. 1 van deze macro's zorgt ervoor dat het document van een nieuw opdrachtnummer word voorzien. Nu is echter het probleem dat deze iedere keer het opdracht nummer vanaf bovenaf in de lijst pakt, terwijl het bedoeling is dat deze opvolgend op het laatste nummer is.

Uitleg:
Ik heb een opdracht verstrekt aan een bedrijf. Deze opdracht heeft opdrachtnummer O-10-00009. Als ik bij een volgende opdracht vervolgens klik op de knop "Nieuw werknummer" begint deze weer bovenaan de lijst (bijv. O-10-00001) terwijl ik graag zou hebben dat deze dan direct O-10-00010 is.

Ik ben al aan het zoeken geweest en lappen met macro's en teksten met uitleg gevonden maar eerlijk gezegd is dit allemaal chinees voor mij. Ik neem aan dat er een bestand of lijst moet komen met daarin het laatste opdrachtnummer, vervolgens dmv een macro +1 ingevoerd moet worden oid. Ik heb echter geen idee hoe ik dit moet doen.

zie bestand voor voorbeeld.

alvast bedankt,
mvgr lex
 

Bijlagen

De macro zoals aanwezig (hieronder door mij een beetje ingekort)

Code:
Sub nieuw_opdrachtnummer()

    Sheets("opdrachtnrs").Rows("1:1").Delete Shift:=xlUp
    Sheets("infoblad").Range("Q73").Value = Sheets("opdrachtnrs").[A1]
    
End Sub

verwijdert de eerste regel en dus het laatst gebruikte nummer.
Het kan dus nooit zo zijn, dat opnieuw O-10-00001 invult, want dat nummer is niet meer aanwezig.

Mvg

Piet
 
De macro zoals aanwezig (hieronder door mij een beetje ingekort)

Code:
Sub nieuw_opdrachtnummer()

    Sheets("opdrachtnrs").Rows("1:1").Delete Shift:=xlUp
    Sheets("infoblad").Range("Q73").Value = Sheets("opdrachtnrs").[A1]
    
End Sub

verwijdert de eerste regel en dus het laatst gebruikte nummer.
Het kan dus nooit zo zijn, dat opnieuw O-10-00001 invult, want dat nummer is niet meer aanwezig.

Mvg

Piet


Dit klopt inderdaad, echter is in dit geval het probleem dat je dan er van uit daat dat dit document bewerkt word, opgeslagen onder een naam en deze vervolgens weer basisbestand word. Als het basisbestand namelijk niet word opgeslagen, worden de regels ook niet verwijderd.

De oplossing in dit geval zou dus zijn: Nieuw factuurnummer, opslaan, het bestand kopieren en vervolgens met dit document verder. Hier willen we echter een beetje vanaf.
 
Code:
Sub nieuw_opdrachtnummer()
    [Q73] = IIf([Q73] <> "", Sheets("opdrachtnrs").Columns(1) _
            .Find([Q73], , xlValues, xlWhole).Offset(1).Value, [opdrachtnrs!A1])
End Sub
 
Code:
Sub nieuw_opdrachtnummer()
    [Q73] = IIf([Q73] <> "", Sheets("opdrachtnrs").Columns(1) _
            .Find([Q73], , xlValues, xlWhole).Offset(1).Value, [opdrachtnrs!A1])
End Sub

ok, dit is dus vrijwel dezelfde code, echter zonder dat de oude opdrachtnummers verwijderd worden. Ik weet niet of dit de oplossing is.

is het mogelijk om met de bestaande macro te verwijzen naar een sheet in een ander pad? in principe heb ik een excelblad klaar staan onder de standaard pad (pad$), maar heb geen idee hoe ik hier naartoe moet verwijzen zeg maar.
 
Topic mag dicht, ben via een andere methode aan de gang geraakt. Heb echt wel een ander topic geopend voor een volgende vraag

iedereen bedankt!
 
Laatst bewerkt door een moderator:
Dat mag je zelf doen, rechts onderaan de pagina (Vraag is opgelost)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan