Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Maximum criterium met 2 kolommen (VBA)  (gelezen 24917 keer)

0 leden en 1 gast bekijken dit topic.

Offline rdcoster

  • Ervaren lid
  • ***
  • Berichten: 274
  • Geslacht: Man
  • Oplossing.be
Maximum criterium met 2 kolommen (VBA)
« Gepost op: 29 december 2018, 14:33:00 »
Hallo,

In kolom A heb ik jaartallen 2018 en 2019.
Bij elk jaartal hoort in kolom B een getal.
Ik moet het maximum bepalen uit cellen in kolom B , afhankelijk van het jaartal opgegeven in cel D1, maar dan alleen over het jaartal opgegeven in D1.
Er kunnen in de B-kolom zelfde getallen zitten per jaartal.

(PS. nogal ingewikkeld om uit te leggen, hopelijk is de bijlage duidelijk genoeg)

Mvg
René
Windows 10
Excel 2013

Offline Ex-lid

  • Oplosser
  • ****
  • Berichten: 670
  • Geslacht: Man
  • dit lid is verbannen
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #1 Gepost op: 29 december 2018, 14:48:37 »
Zoiets?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D1")) Is Nothing Then
Select Case [D1].Value
Case "2018"
Set rng = Sheets(1).Range("B1:B10")
    mymax = Application.WorksheetFunction.Max(rng)
    MsgBox mymax
Case "2019"
Set rng = Sheets(1).Range("B11:B15")
    mymax = Application.WorksheetFunction.Max(rng)
    MsgBox mymax
Case Else
        MsgBox "Verkeerd jaartal"
End Select
End If
End Sub
Als je option explicit niet gebruikt hoef je de variabelen ook niet te declareren.

Offline rdcoster

  • Ervaren lid
  • ***
  • Berichten: 274
  • Geslacht: Man
  • Oplossing.be
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #2 Gepost op: 29 december 2018, 15:20:30 »
Fantastisch hoe jullie zo snel een kant en klare oplossing bieden !!
Dit werkt perfect.

Wel nog een bijkomend probleempje:
Nu werk je met vaste 'ranges' maar eigenlijk weet ik niet hoever elke range(2018) en range(2019) zal lopen.
Dit kan variëren.
Windows 10
Excel 2013

Offline emields

  • Ervaren lid
  • ***
  • Berichten: 257
  • Geslacht: Man
  • Oplossing.be
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #3 Gepost op: 29 december 2018, 15:24:26 »
of met een formule

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #4 Gepost op: 29 december 2018, 17:07:01 »
Hallo,

Er bestaat ook een manier (al weet ik niet vanaf welke Excel-versie) om het zonder matrixformule en zonder vba op te lossen :
=MAX.ALS.VOORWAARDEN(B:B;A:A;D1)

Groeten,
pitufo
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

Offline SoftAid

  • Administrator
  • Ambassadeur
  • *****
  • Berichten: 20.177
  • Geslacht: Man
  • Nobody is perfect, not even me...
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #5 Gepost op: 29 december 2018, 18:07:19 »
Er bestaat ook een manier (al weet ik niet vanaf welke Excel-versie)
Functie ALS.VOORWAARDEN()
Excel voor Office 365
Excel voor Office 365 voor Mac
Excel 2019
Excel 2016
Excel 2019 voor Mac
Excel 2016 voor Mac
Excel Online
Excel voor iPad
Excel voor iPhone
Excel voor Android-tablets
Excel voor Android-telefoons
Excel Mobile

Uw dienaar,

:) SoftAid :)             
Maximum grootte bijlagen vergroot naar 4 MB
Dubbelposten, het posten op verschillende forums van dezelfde vraag, dient op
voorhand gemeld te worden, met een link naar het topic op de andere site.
Overtreding van deze regel kan bestraft worden met verbanning !

Offline rdcoster

  • Ervaren lid
  • ***
  • Berichten: 274
  • Geslacht: Man
  • Oplossing.be
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #6 Gepost op: 30 december 2018, 17:26:33 »
Kan ik
Citaat
Private Sub Worksheet_Change(ByVal Target As Range)
ook voor meerdere cellen gebruiken ?

Iets in de zin van:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D1")) Is Nothing Then
'.... code1
End If
If Not Intersect(Target, Range("D2")) Is Nothing Then
'.... code2
End If

End Sub


Mvg
René
Windows 10
Excel 2013

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.280
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #7 Gepost op: 30 december 2018, 19:50:21 »
If Not Intersect(Target, Range("D1:D300")) Is Nothing Then

Als voorbeeld voor de 1e 300 regels in kolom D. Er mag maar 1 event procedure van 1 type zijn.
Overigens kan het wel wat je nu voorstelt, maar dat moet je alleen doen als elke cel iets anders moet doen.
______________________________

Groet, Leo

Offline alfa

  • Lid
  • *
  • Berichten: 83
  • Oplossing.be
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #8 Gepost op: 30 december 2018, 22:45:00 »
@rdcoster,
voor een vraag waarop een kort antwoord met een formule mogelijk is, ga je toch geen vba gebruiken?
Het is wel vreemd dat emields een bestand plaatst met een foutief antwoord (het maximum van 2018 is niet 500 maar 10). De formule voor een juist antwoord is =max(als(a1:a15=d1;b1:b15)) , maar die formule moet worden ingevoerd via Ctrl-Shift-Enter (dan plaatst Excel er accolades rond). Doe je dat niet dan kun je foutieve resultaten verwachten, zoals blijkt. En dan zijn in het voorbeeld de getallen per jaar nog van laag naar hoog gesorteerd, is dat niet het geval dan treden ook sneller fouten op bij invoer zonder Ctrl-Shift-Enter.
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline rdcoster

  • Ervaren lid
  • ***
  • Berichten: 274
  • Geslacht: Man
  • Oplossing.be
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #9 Gepost op: 31 december 2018, 05:50:08 »
Alfa,
Bedankt voor je antwoord.
Weeral iets bijgeleerd over invoer van 'matrixformules' door gebruik van accolades.

Citaat
voor een vraag waarop een kort antwoord met een formule mogelijk is, ga je toch geen vba gebruiken?
Ik wilde dit in een VBA-macro omdat ik het resultaat als variabele verder wil gebruiken in de code en niet dat het resultaat in een cel staat.

Bedankt !
(Ik sluit dit onderwerp af met 'Topic opgelost' )
Windows 10
Excel 2013

Offline pitufo

  • Ambassadeur
  • *****
  • Berichten: 1.343
  • Geslacht: Man
Re: Maximum criterium met 2 kolommen (VBA)
« Reactie #10 Gepost op: 31 december 2018, 10:06:47 »
@ alfa & rdecoster,

Kijk voor de aardigheid ook eens naar mijn reactie #4 en de aanvulling door SoftAid in reactie #5

Met vba :
variabele = WorksheetFunction.MaxIfs(Columns(2), Columns(1), [D1])
"De computer doet wel degelijk wat je hem vraagt,
 maar NIET wat je DENKT dat je hem vraagt"

 


www.combell.com