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

Max waarde uit kolom

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
Pompiedom....piedom,

Ik heb een formule, maar deze werkt niet.

Wat is de bedoeling.

In kolom H staan nummers Deze nummers zijn optellend:

H1 = C 0001
H2= C 0002
etc

In cel A1 moet de hoogste waarde uit kolom H worden gepakt, plus 1: =MAX(H:H)+1
Van deze hoogste waarde moet de laatste 4 cijfers worden genomen =RECHTS(H:H;4)
Omdat voorloopnullen niet worden meegenomen, moet hier een aparte notatie voor komen: =TEKST(XX;"0000")

Bijvoorbeeld:

C 0012 is de hoogste waarde in kolom H. Dan moet deze gepakt worden en dan moet in cel A1 de waarde: 0012 komen te staan. Vermoedelijk werkt RECHTS niet in combinatie met MAX. Of werkt RECHTS niet in een kolom.


Op de volgende wijze krijg ik het wel voor elkaar.

=TEKST(MAX(H:H)+1;"0000"), maar dan staan er geen voorloopnullen in de cellen van kolom H. Dan is het als volgt:

H1=1
H2=2
etc.

Ik wil niet met celeigenschappen en aangepaste waarde werken. Dit geeft enkel maar problemen.
 
Laatst bewerkt:
Masala,

Als ik je vraag goed begrjp loopt kolom H altijd op dus je moet altijd de laatst gevulde cel hebben.

Toch ?
Dan lukt het denk ik met de volgende formule :

Code:
=TEKST(RECHTS(INDIRECT("H"&AANTALARG(H:H));4)+1;"0000")

Was vergeten om er 1 bij op te tellen.

:o
 
Laatst bewerkt:
Heb jij helemaal goed begrepen. En nog helemaal goed ook. Het werkt.

Ik zat helemaal verkeerd te denken en was te veel gefocust op de MAX, RECHTS, TEKST.

Hartstikke bedankt voor je hulp.
 
Beste Gelens,

Ik heb jou code gebruikt en deze werkte inderdaad.

Echter ik heb een testbestand gemaakt. Hier werkt deze dus niet in. Vermoedelijk heeft het te maken met de Tabellen die in Tabblad: Database_Factuur en Database Creditfactuur in de code.

In beide Tabellen staat in kolom A de waardes over hierboven in post#1. In Beide databases is dat op deze manier uitgezet. Het nummer bijvoorbeeld: A2013 - 0005 wordt iedere keer opgeteld met 1. En uit dit zelfde kolom wordt de hoogste waard gezocht en opgeschreven. Vervolgens pakt de andere code weer de laatste 4 tekens het nummer en dus in in eerder genoemde keuze: 0005.

Code:
=ALS(F28="A";TEKST(RECHTS(INDIRECT(Tabel_Facturen;Factuur;A&AANTALARG(Tabel_Facturen;Factuur));4);"0000");TEKST("RECHTS(INDIRECT(Tabel_Creditfacturen;Factuur;A&AANTALARG(Tabel_Facturen;Factuur));4)";"0000")

De code wordt met een ALS IF functie behandeld.
De naam: Factuur in de code staat voor de hele kolom A in het tabel.

Wat is er mis mee. Krijg enkel maar #Waarde of &Naam als foutmelding
 
Hi,

Voeg even dat testbestandje toe, dat werkt makkelijker, want nu is het zoeken naar een naald in een hooiberg.

Thx,

Joske
 
Bijgaand de code die niet werkt.

De code in #2 werkt wel, maar niet in een tabel. Ik heb nu het tabel verwijderd en vervolgens werkt de code ook niet meer. Waarschijnlijk omdat de telling in kolom A vanaf rij 3 begint. Dit heb ik nu voor MAX gewijzigd vanaf rij 3, maar het punt is dat ik enkel de laatste 4 cijfers wil filteren en meer niet.

Wat er gebeurd bij opslaan is dat het nummer in kolom A van Database facturen wordt opgeslagen alszijnde bijvoorbeeld A2013-0001. Vervolgens in tabblad:" Factuur maken ", dient in cel F28 de hoogste waarde uit kolom A van:"Database facturen " te worden gehaald. Echter hiervan niet de hele code, maar enkel de laatste 4 cijfers (dus: 0001) dient te worden gefilterd en getoond in cel F28 van tabblad Factuur maken. Vervolgens wordt in een andere cel van dit tabblad deze waarde bij een samenvoeging van 3 cellen overgenomen en opgeteld met 1 (In deze cel komt dan het volgende te staan: A2013-0002). Celeigenschappen wil ik niet gebruiken vandaar TEKST in de formule. Alles wordt dus uit kolom A gehaald van tabblad: Database Facturen gehaald.

Daarnaast geldt ditzelfde ook voor database creditfacturen en deze heeft dezelfde indeling.

Code:
=ALS(F28="A";TEKST(MAX('Database facturen'!A3:A9999);"0000");TEKST(MAX('Database Creditfacturen'!A3:A9999);"0000"))

Bestand kan ik plaatsen, maar gezien de informatie die ik hier geplaatst heb is dit voor nu voldoende. Als ik het bestand moet gaan plaatsen moet ik behoorlijk wat verwijderen. Vandaar dat ik even voor deze optie kies. Mocht het VBA zijn, dan werkt het plaatsen van het bestand beter. Dit omdat de zaken nogal erg gevoelig worden qua invoer. In deze gaat het slechts om een formule.
 
Laatst bewerkt:
Code:
=ALS(F28="A";TEKST(RECHTS(INDIRECT("Database_Facturen!A"&AANTALARG(Database_Facturen!A:A));4);"0000");TEKST(RECHTS(INDIRECT("Database_Creditfacturen!A"&AANTALARG(Database_Creditfacturen!A:A));4);"0000"))

Zo leer je iedere keer weer bij.

De tabbladen moeten aan één sluitend zijn voor wat betreft de naam. Knippen en plakken geeft kennelijk een koppeling (krijg een scherm met koppeling bijwerken).

Al met al. Ik heb de code uitgevoerd in een ander bestand met exact dezelfde waarden in exact dezelfde cellen. Hier werkte de code perfect in. Bij knippen en plakken, werkte de code ineens niet meer en begon te zeuren om een koppeling en de cel was leeg na het verwijderen van de koppeling.

Mijn oplossing en ik vind deze vreemd, was de volledige code opnieuw in de cel te typen van het bestand. Gevolg.... code werkt.

Erg vaag. Misschien dat iemand mij hier een verklaring voor kan geven.

Wat mij wel opvalt en daar wil ik wel een oplossing voor die denk ik wel voor de hand ligt is dat in kolom A de laatste waarde vanaf rij1 wordt gepakt en daarvan de laatste 4 letters. In deze staat de laatste waarde in cel A2 (factuur) en hiervan de laatste 4 letters, dus tuur. De kolom begint feitelijk pas bij A3 en niet bij A1. In ieder geval A3:A9999 werkt niet.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan