end(xlUp) plus volgnummer met volgletters

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
Hallo allemaal,

Onderstaand 2 simpele codes die beide hetzelfde doen. Het is de bedoeling dat er met deze code het laatste nummer wordt gevonden in kolom A. Dat werkt allemaal. Echter...de code werkt enkel met cijfers en niet met letters. Het nummer wat in de kolom staat, wordt telkens voor af gegaan met: M2014 - , en hierna pas daarna het oplopende volgnummer. In Label 14 dient dit nummer meteen met 1 te worden opgeteld. Nu kan het volgens mij allemaal wel met rechts of met links en blablabla. Echter het kan simpeler. Sterker nog heel die Dim hoeft volgens mij niet eens. Wie kan mij het antwoord geven? Alvast bedankt.

Code:
Dim MAX As Long
    MAX = Sheets("Besteloverzicht").Cells(Rows.Count, 1).End(xlUp)
    Label14 = MAX + 1

Code:
    Label14 = Sheets("Besteloverzicht").Cells(Rows.Count, 1).End(xlUp) + 1

En hoe zat het ook al weer om een range aan te geven. De range loopt vanaf A4 tot en met A9000.

Was dat iets van: ( Ik heb de code nog niet getest, maar gevoelsmatig zit er al een fout in.) Dit omdat ik heb begrepen dat je beter met een range kan werken dan met Cells. Waarom weet ik overigens niet, maar ik heb mij dat laten wijsmaken.

Code:
    Range("A4", Range("A9000").End(xlUp)
 
Laatst bewerkt:
Code:
Dim sq
sq = Split(Cells(Rows.Count, 1).End(xlUp), " - ")
Cells(Rows.Count, 1).End(xlUp) = sq(0) & " - " & sq(1) + 1
 
HSV. Alle respect. Ik geloof blindelings dat deze code werkt. Nog niet getest, maar enig uitleg zou ik hier op prijs stellen. sq?? (Oke dat zal voor DIM de gegeven "naam" zijn), maar dan Split?? sq(0)?? sq(1)??

Ik ken heel split niet
 
Met alle respect dat je zoveel te vragen hebt, en die wij graag proberen op te lossen, maar van het gebruik van de F1 word je vast niet dommer.
 
Laatst bewerkt:
Met F1 ( Help functie) heb ik al langer een probleem. Als ik deze functie gebruik dan zie ik rechts een scherm met een startpagina voor Developer en daarnaast een zoekbalk Microsoft Office Bing. Als ik dan daar in de zoekbalk Split invoer, of wat anders, dan krijg ik telkens: Er zijn geen resultaten gevonden.....
Ik heb nog niet zo heel lang geleden een virus op de pc gehad, maar of dit hiervoor ook al gaande was, dat weet ik niet. Daar heb ik nooit opgelet.

Dus de F1 functie heb ik al vaker gebruikt en net overigens weer geprobeerd.
 
Ga eens in de code (Vb-editor) achter of op "Split" staan en druk dan eens F1.
 
Hoop dat dit werkt. Ik krijg hetzelfde scherm als iin de bijlage.


VBA editor.JPG
 
Heb je ook een selecteervakje rechtsonderin? Zet deze op offline.
 
Niet echt een selecteervakje, maar meer een keuze lijst als je deze aanklikt. Hierin Offline gekozen met daarin de keuze dat de informatie op de pc gezocht moet worden.

Nu krijg ik inderdaad een heel ander scherm te zien, met daarin meer informatie en als ik dan nu op split zoek dan zie ik daar help voor ontwikkelaars.

Ik ga hier eens in spitten. Ik had hier al eerder voordeel mee, maar ik was het dus kwijt. Blij dat ik het weer terug heb. Alleen geen idee hoe dit gebeurd is, maar soms moet je daar niet te veel over malen en accepteren dat het terug is.

Maar als ik het dan nog niet weet..... sorry als ik er dan op terug kom :rolleyes:
 
Mooi dat het probleem van de Help is verholpen.
Je mag er ook gerust op terug komen hoor.

Ik kan je ook een tip meegeven.
Als je wilt weten wat de waarde van "sq(0)" en "sq(1)" is, dan vraag het op in een "msgbox". ;)
 
Laatst bewerkt:
Ik had voor zover ik het begrepen heb, begrepen dat het te maken zou hebben met de woorden. Zeg maar sq(0) zou dan volgens mij moeten zijn M2014 en sq(1) het streepje.

Maar daar ga ik inderdaad eens de msgbox voor gebruiken. :thumb:

Maar ef een schuine vraag. Is dit dan DE code die je hiervoor moet gebruiken als je letters erin hebt staan?
 
Foutmelding: Deze eigenschap of methode wordt niet ondersteund....

Ik heb excel 2007.

Code naar hoe ik hem heb omgebouwd en ook daarvoor kreeg ik een foutmelding

Code:
Dim sq
sq = Sheets("Besteloverzicht").Split(Cells(Rows.Count, 1).End(xlUp), " - ")
Label14 = Cells(Rows.Count, 1).End(xlUp) = sq(0) & " - " & sq(1) + 1

Bij de laatste: Foutcode 9. Subscript valt buiten het bereik...

Code:
Dim sq
sq = Split(Cells(Rows.Count, 1).End(xlUp), " - ")
Label14 = Cells(Rows.Count, 1).End(xlUp) = sq(0) & " - " & sq(1) + 1
 
Laatst bewerkt:
Ik vind het wel DE methode.

De foutmelding:
Code:
Dim sq
sq = Split(Cells(Rows.Count, 1).End(xlUp), " - ")
Label14 = sq(0) & " - " & sq(1) + 1
 
Laatst bewerkt:
Misschien met vermelding van bladnaam voor de cells.end(xlup) "Sheets("Besteloverzicht")" ?

Je loopt al een tijdje mee op het forum, en waarschijnlijk heb je hier ook nog geen helderziende gezien; dus plaats het bestand.
 
Beste HSV,

Ik zat met proberen en proberen erg in de buurt. Hoe jij het in post 15 stelde, had ik al eerder geprobeerd alleen niet in onderstaande opzet.

Nu werkt deze perfect. Ook heb ik jou tip gebruikt om de msgbox te gebruiken en inderdaad ik zag het bijna goed. Ik kreeg netjes M2014 te zien en anders dan ik had verwacht 0001.

Wat ik alleen wel mis is de "0" toevoeging. Deze moet variëren. Bij 1 moet het zijn 0001, bij 10 moet het zijn 0010, bij 100 moet het zijn, 0100 bij 1000 moet het zijn, 1000. Binnen de excelformules weet ik dit wel, maar hier zit het anders, maar ik weet het... en ook wat ik mij zelf heb voorgenomen... met het weer werkende F1... Probeer ik het eerst zelf.
Code:
Dim sq
        sq = Split(Sheets("Besteloverzicht").Cells(Rows.Count, 1).End(xlUp), " - ")
        Label14 = " " & sq(0) & " - " & sq(1) + 1
 
Oke topic op slot. Het was even puzzelen om de format op de juiste plek te krijgen.... maar het resultaat is er.

HSV wederom bedankt voor je medewerking.

Code:
 Dim sq
        sq = Split(Sheets("Besteloverzicht").Cells(Rows.Count, 1).End(xlUp), " - ")
        Label14 = " " & sq(0) & " - " & Format(sq(1) + 1, "0000")

En o ja voor ik het vergeet... inderdaad DE code is simpel als je hem doorhebt. Mede door die tip van jou met de msgox.

Toch nog wel even een aanvullende vraag. Nu ik weet waar sq(0) en sq(1) voor staat, vraag ik mij wel af waarom je in de regel sq = Split(Sheets("Besteloverzicht").Cells(Rows.Count, 1).End(xlUp), " - ") , na .End(xlUp) de aanvulling: , " - " hebt geplaatst. Ook al is het misschien wel duidelijk en heeft het iets weg van uitsluiten van een bepaald gedeelte. Echter dan kan het of beter gezegd, lijkt het mij dan, dat dit stukje als: sq(1) kan worden gezien en de 0001 als sq(2).
 
Laatst bewerkt:
Als je de Split-functie grondig bestudeerd had zou je gemerkt hebben dat deze aanvulling: , " - " het teken is waarop de celwaarde gesplitst moet worden.
De split-functie geeft je een op 0 gebaseerde array, dus het 1ste element v/d splitsing wordt aangegeven met (0), het 2de met (1), enz .... aangezien in jouw specifiek geval er geen 3de deel is kan jij nooit sq(2) hebben.
In jouw geval is dus sq(0) dan M2014 en sq(1) dan het volgnummer.
 
Met F1 ( Help functie) heb ik al langer een probleem. Als ik deze functie gebruik dan zie ik rechts een scherm met een startpagina voor Developer...
Als je op F1 gedrukt hebt en het helpvenster verschijnt, klik dan naast de loep en het woord "zoeken" op het kleine zwarte pijltje en klik onder Inhoud op deze computer op: Help voor Excel. Je krijgt dan voortaan bij het openen van de helpfile alleen de helpteksten die in Excel zelf zitten (dit geldt voor Excel 2010). Andere helpmogelijkheden (die voor ontwikkelaars en op internet) kunnen wel nuttig zijn, maar leiden je vaak alleen maar af van het probleem waarvoor je een oplossing zoekt. In de meeste gevallen kun je met de helptekst van Excel volstaan.
 
Rudi dank voor je uitleg. Ja grondig bestudeerd is een groot woord. Ik was al blij dat ik er uit was gekomen. Verder had ik er nog niet echt naar gekeken. Ook omdat de code grotendeels door HSV gegeven was. Dus ik zocht eigenlijk naar het probleem waarom de code niet functioneerde, hoe ik die werkend moest krijgen en tegelijk probeerde ik ook uit te vogelen hoe de code eigenlijk in elkaar steekt. Ook omdat het de eerste keer was dat ik te maken kreeg met deze code. Het verder uitzoeken en uitproberen doe ik vaak erna als ik er dan echt even voor kan zitten. Ik bedoel gezien het tijdstip, rond heen en weer vliegend kind, een vrouw op de bank etc... dat belet je nog wel eens veel omdat deze zaken veel tijd kost. ;). Ik ga deze code dan ook verder uitzoeken. Nu ik van jou weet dat het geen uitsluiten betreft, maar juist het aangeven van de splitsing betreft, helpt mij dit ook weer op weg. Tegelijkertijd de help functie maakt het voor mij ook niet altijd even duidelijk. Wellicht zoals Zapatr al aangaf, het probleem wat ik ook had met de helpfunctie en dat het online werken je veelal enkel maar van het probleem afleiden. Ik heb in ieder geval de code iets beter bekeken. Het eerste wat ik zag was Split(Expressie, Splitsingsteken, Limiet, Vergelijk). Waarvan de laatste 3 kennelijk niet eens vereist zijn. Limiet en Vergelijk zijn in de code waar het bij mij om gaat niet inbegrepen. Weer een leuk stoeiproject. Kan weer aan het bestandje TEST worden toegevoegd. :thumb:

Ook voor jou zapatr. Ondanks dat het probleem met de helpfunctie al was opgelost toch bedankt voor je reactie. Momenteel werkt de boel weer zoals het hoort.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan