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

De laagste genoteerde getal onthouden.

Status
Niet open voor verdere reacties.

88Gamer88

Gebruiker
Lid geworden
17 sep 2017
Berichten
45
Hallo allemaal,
Ik had een vraag over het volgende.

Heb een excel bestand waar in een database verwerkt zit wat iedere half uur veranderd.
Deze database staat op een tab, op een ander tab worden bepaalden gegevens (getallen) weergegeven.

Ene uur is dat 100, andere uur 45, uur der op 105, daarna 95 enzovoort… enzovoort…
(Het veranderd net zo als het weer :D)

Nu zoek ik een manier dat er in een cel altijd de laagst genoteerde getal blijft staan.
Tot dat de waarde veranderd in een nog lager getal en deze weer onthouden wordt.

De waarde vanuit de database staat op in cel I6 en zou graag de laagste onthouden waarden op I7 willen hebben.

Alvast bedankt.
 
Via =
Code:
VERT.ZOEKEN("Leyblood";AH!F2:J16089; 5;)
wat door gelinkt is naar de database
 
Laat ik het anders formuleren. Op welke manier komt de halfuurlijkse update tot stand?
 
Via een .csv bestand die ieder keer geupdate wordt.
Maar dat is denk niet echt van toepassing ?
 
Laatst bewerkt:
Dat is juist wel van toepassing. Je zal moeten weten welke handeling I6 wijzigt, om tijdens deze handeling te kijken of I6 lager is dan I7. plaats je bestand eens.
 
Is dit te kort door de bocht?
Code:
Private Sub Worksheet_Calculate()
 If [I6] < [I7] Then [I7] = [I6]
End Sub
 
Hmmm

Dacht gewoon, staat een waarde in cel I6 en als die lager is dan I7 dan wordt dit automatisch over genomen.
Anders blijft het staan.

Bekijk bijlage Beta.xlsm

(Moet wel wel bij vertellen dat in de database ieder keer alles anders staat na iedere refresh dus daar kunnen geen cellen gehandhaafd worden.
Daarom werk ik ook met VERT.ZOEKEN om me waardes te achterhalen
 
Laatst bewerkt:
Tja Cobbe, dat is precies goed door de bocht. Ik zocht het te ver.
 
Is dit te kort door de bocht?
Code:
Private Sub Worksheet_Calculate()
 If [I6] < [I7] Then [I7] = [I6]
End Sub

Via welke weg kan ik dit beste invoeren ?

Heb hem toegevoegd bij de VBA lijst,
maar hoe krijg ik hem bij me cellen weer gegeven ?
 
Laatst bewerkt:
Plaats de code in het blad waar het betrekking op heeft. Dus in de VB-editor in bijvoorbeeld Blad1
 
waar moet die laagste waarde nou precies komen te staan? In welk blad en in welke cel?
 
Op blad 1(Cooking)

I6 staat de gegeven waarden.
K6 moet de laagst onthouden waarden worden.

Code:
Private Sub Worksheet_Calculate()
 If [I6] < [K6] Then [K6] = [I6]
End Sub

Heb het werkend
Nu alleen nog met de
Code:
VERT.ZOEKEN("Naam";AH!F2:J16089; 5;)
werkend te krijgen.
Maar ben ieder geval een goeie stap in de richting :D

Dit werkt tot nu toe alles perfect :D.

Alleen vroeg me af of dit ook per kolom mogelijk is ?
Of makkelijker is om cellen te selecteren ?

Anders moet ik 50x

Code:
Private Sub Worksheet_Calculate()
 If [I6] < [K6] Then [K6] = [I6]
End Sub

Code:
Private Sub Worksheet_Calculate()
 If [I7] < [K7] Then [K7] = [I7]
End Sub

Code:
Private Sub Worksheet_Calculate()
 If [I8] < [K8] Then [K8] = [I8]
End Sub

enzovoort doen.
 
Laatst bewerkt:
De naam Workseet_Calculate mag maar 1x achter hetzelfde blad voor komen:
Code:
Private Sub Worksheet_Calculate()
    For i = 1 To 50
        If Cells(i, 9) < Cells(i, 11) Then Cells(i, 11) = Cells(i, 9)
    Next i
End Sub
 
Hmmm, Als ik de script gebruikt krijg ik alleen maar foutmeldingen.

Kunt u mij misschien een beertje toelichten ?

For i = 1 To 50
Is denk kolom i tot rij 50 ?


Moet hier voor gebruikt worden.
Waarde staat in Kolom I en onthouden waarden komt in Kolom K


Knipsel.JPG
 
Plaats eens een voorbeeld document in plaats van plaatjes.
De i geeft het regelnummer aan.
9 en 11 zijn de kolomnummers. (I en K)
 
Laatst bewerkt:
Het zijn dus geen opvolgende rijen met getallen. Dit is dan de simpelste manier:
Code:
Private Sub Worksheet_Calculate()
    On Error Resume Next
    For i = 1 To 50
        If Cells(i, 9) < Cells(i, 11) Then Cells(i, 11) = Cells(i, 9)
    Next i
End Sub
 
Toppie :thumb:

Precies wat ik zocht werkt vlekken loos.
Bedankt allemaal.

Vroeg me trouwens af is het ook mogelijk om dit 2x te gebruiken op een tab?

Code:
    On Error Resume Next
        For v = 1 To 50
        If Cells(v, 22) < Cells(v, 23) Then Cells(v, 23) = Cells(v, 22)
    Next v

Had ik toegevoegd aan de lijst.
dus ipv I en K wordt het nu V en W.

Alleen krijg het niet werken.
waarschijnlijk doe ik iets niet goed.

Totale code nu

Code:
Private Sub Worksheet_Calculate()

    On Error Resume Next
    For i = 1 To 50
        If Cells(i, 9) < Cells(i, 11) Then Cells(i, 11) = Cells(i, 9)
    Next i
    
    On Error Resume Next
        For v = 1 To 50
        If Cells(v, 22) < Cells(v, 23) Then Cells(v, 23) = Cells(v, 22)
    Next v
    
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan