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

Excel Automatische popup wanneer bepaalde cel de waarde 1 heeft

Status
Niet open voor verdere reacties.

Skytiger

Gebruiker
Lid geworden
7 apr 2010
Berichten
26
Allen,

Ik heb een sheet waarin ik het volgende wil laten popuppen.

Zodra cel F10 de waarde 1 heeft (of kleiner dan 2) dan moet ik een popup krijgen.
In die popup moet dan een waarde komen die vba moet zoeken in bepaald bereik.
Hij moet gaan zoeken in bereik $E$13:$E$312 naar een lege cel.
Zodra hij die gevonden heeft moet hij in dezelfde rij maar dan in kolom B de waarde weergeven in de popup.
Dus eigenlijk $B$13:$B$312.

Wie-o-wie kan mij hiermee helpen dmv het voorzien van een vba-code/macro?

Bij voorbaat dank.

Groet
Skytiger
 
de waarde in de inputbox moet worden gezocht of moet er een lege cel worden gezocht?

in dit voorbeeld ben ik uitgegaan van de lege cel:
 

Bijlagen

  • voorbeeld Skytiger.xlsm
    15,5 KB · Weergaven: 232
Waar zou dit goed voor zijn ?
 
Dank.
Het is niet helemaal wat ik zoek.

Dat hij popup bij een waarde lager dan 2 klopt.
Maar nu moet hij de waarde weer gegeven van cel in kolom B13:B312 wanneer de cel op dezelfde rij maar dan in kolom E13:E312 leeg is.

Zie in mij voorbeeld.

Dan zou de popup dus de waarde 22 moeten weergeven.

De reden is als volgt:

Ik ben met een winnaarsheet bezig.
Wanneer er nog 1 deelnemer over is moet hij dus de naam van de deelnemer weergeven in een popup.
Dus in mijn geval bijvoorbeeld:

"We hebben een winnaar.
Gefeliciteerd (waarde cel, in voorbeeld) 22!"

Bekijk bijlage voorbeeld Skytiger.xlsm
 
Laatst bewerkt:
zo dan?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$F$10" And Target.Value < 2 Then
        If Not Range("E13:E312").Find("", , , xlWhole) Is Nothing Then
            MsgBox "Hoera, we hebben een winnaar!! Het is " & Range("E13:E312").Find("", , , xlWhole).Offset(, -3).Value, , "Winnaar is bekend"
        End If
    End If
    
End Sub
 
zo dan?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$F$10" And Target.Value < 2 Then
        If Not Range("E13:E312").Find("", , , xlWhole) Is Nothing Then
            MsgBox "Hoera, we hebben een winnaar!! Het is " & Range("E13:E312").Find("", , , xlWhole).Offset(, -3).Value, , "Winnaar is bekend"
        End If
    End If
    
End Sub
Bijna...

In de sheet die jij hebt klopt dat, en werkt ie...
Maar nu in mijn sheet.

Nu gaan we ervan uit dat in kolom B waarden van E13:E312 staan.
Soms, in mijn geval heb ik slechts 72 deelnemers en dus slechts 72 waarden.
Of elk random getal natuurlijk, want soms heb ik 100 deelnemers, soms 160...

Er zijn dus meerdere lege waarden in E13:E312 en dus ook in B13:B312.

En in cel F10 staat de volgende formule, die telt het aantal deelnemers wat nog over is:
=SOM(F8-(AANTALARG(E13:E312)))

in F8 die telt het totaal aantal deelnemers:
=AANTALARG(B13:B312)

Zodra, de teller in F10 op 1 staat is er dus een winnaar bekend, en die wil ik in een popup weergeven.
Zie onderstaande bijlage:

Bekijk bijlage voorbeeld 2 Skytiger.xlsm

Sorry dat ik je zoveel lastig val, maar ik probeer met wat hulp een mooie sheet te maken.
 
Laatst bewerkt:
dan zo, maar plaats voortaan gelijk zelf een bestand:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Cells(10, 6).Value < 2 Then
        If Not Range("E13:E312").Find("", , , xlWhole) Is Nothing Then
            MsgBox "Hoera, we hebben een winnaar!! Het is " & Range("E13:E312").Find("", , , xlWhole).Offset(, -3).Value, , "Winnaar is bekend"
        End If
    End If
    
End Sub
 
dan zo, maar plaats voortaan gelijk zelf een bestand:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Cells(10, 6).Value < 2 Then
        If Not Range("E13:E312").Find("", , , xlWhole) Is Nothing Then
            MsgBox "Hoera, we hebben een winnaar!! Het is " & Range("E13:E312").Find("", , , xlWhole).Offset(, -3).Value, , "Winnaar is bekend"
        End If
    End If
    
End Sub

SjonR,

Hartstikke bedankt!:thumb:
Ik wil best het bestand hier uploaden, maar die is mega en er staat privacygevoelige informatie in.
Zo is het gelukt, waarvoor mijn dank.
 
Kan toch gewoon met een formule?

Code:
=IF(F10=1;MATCH(TRUE;INDEX(E13:E312="";0);0)&" heeft gewonnen";"andere tekst")
 
Vandaag mijn sheet willen gebruiken, maar zodra de beveiliging erop staat werkt de macro niet meer.
Hoe kan ik ervoor zorgen dat de macro dan toch werkt, dus op het moment dat hij op 1 staat alsnog de popup verschijnt.
 
In mijn tabblad HP gebruikt mijn sheet de volgende macro dankzij jullie:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Cells(10, 6).Value = 1 Then
        If Not Range("E13:E312").Find("", , , xlWhole) Is Nothing Then
            MsgBox "Hoera, we hebben een winnaar!!!    Het is   " & Range("E13:E312").Find("", , , xlWhole).Offset(, -3).Value, , "Winnaar is bekend"
        End If
    End If

End Sub

Maar...
Zodra de beveiling er op gaat doet de macro het niet.

Nu ben ik aan het stoeien geweest en heb deze code geprobeerd in ThisWorkbook
Code:
Private Sub Workbook_Open()
    Sheets("HP").Protect Password:="12345", UserInterfaceOnly:=True
End Sub
Die beveiliging zet hij erop maar de macro werkt niet meer.
Hoe kan ik ervoor zorgen dat hij werkt zonder dat mensen de formules in de sheet kunnen aanpassen/knoeien?
 
Werkt hier prima.
1 x find gebruiken is voldoende en sneller.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim r As Range
  If Cells(10, 6).Value = 1 Then
    Set r = Range("E13:E312").Find("")
      If Not r Is Nothing Then MsgBox "Hoera, we hebben een winnaar!!!    Het is   " & r.Offset(, -3).Value, , "Winnaar is bekend"
  End If
End Sub

Het bestandje even opslaan en opnieuw openen en dan wat wijzigen in H5.
 

Bijlagen

  • voorbeeld 2 Skytiger.xlsb
    16,1 KB · Weergaven: 101
Hoi VenA,

in jouw bestandje werkt het inderdaad al krijg ik wanneer ik E13 en E14 leeg laat, en dan E14 een waarde in vul, de tekst "hoera we hebben een winnaar het is"
zonder de waarde van de in B13 opgegeven waarde.

Elke andere laatst overgeblevene geeft hij perfect weer.

Dan het volgende.
Zodra ik jouw code in mijn masterbestand kopieer dan gebeurt er niets.
Zodra ik de beveiliging er handmatig afhaal dan werkt hij wel.

Dit is toch vreemd, waar kan dat aan liggen?
 
Alstu
Bekijk bijlage 324683

Beveiliging eraf, werkt ie.
Beveiliging erop, niets...

Kan iemand hier nog eens naar kijken?
Ik wil het implementeren in mijn masterbestand welke ik volgende week donderdag nodig heb.
Ik begrijp het gewoonweg niet.

Beveiliging eraf werkt ie prima.
Zodra de beveiliging erop gaat werkt die niet meer...
 
De oplossing staart je in het gezicht....
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan