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

messagebox wanneer cel een kleur krijgt

Status
Niet open voor verdere reacties.

nothere

Gebruiker
Lid geworden
12 mrt 2006
Berichten
45
Via voorwaardelijke opmaak laat ik enkele cellen rood inkleuren.
Mijn vraag is nl Is het mogelijk om een messagebox te laten verschijnen als een cel een kleurtje krijgt?

Mijn dank is groot.
 
Demeter bedankt

Ben een klein stukje verder gekomen.
in ieder geval bedankt voor de link ,daar zit altijd wel wat nuttigs bij.
 
Als je naar de inhoud van de cel kijkt en daar je msgbox aan koppelt lijkt mij makkelijker dan kijken naar de kleur van de voorwaardelijke opmaak?

Of wordt dit lastig ivm in te voeren data?


Groet,
Ferenc
 
Laatst bewerkt:
antwoord

ik heb nl een soort indicator gemaakt.
bv 10 cellen is 10 kratten in een schuur(plat op de grond)
dus bij 1 krat kleurt een cel rood.
de bedoeling is dat bij de elfde cel een bericht tevoorschijn komt ""schuur vol"""

nothere
 
mmmmmmmmm

Bedoel je zoiets?

Anders moet je een testfile als attachment toevoegen met de layout hoe je he wil hebben dan kunnen we hier de code er bij maken?

Groet,
Ferenc
 

Bijlagen

Dat krijg je als je een keer eerder wilt zijn met posten. lol.

Groet,
Ferenc

denk dat die cursus nu ook nog even moet wachten ivm achter blijven kwaliteit spelling.
 
Laatst bewerkt:
Zie voorbeeld in bijlage aangaande het kratten-probleem.

Is dit wat je wilt?

Nog wel even vermelden dat het toepassen van een kleurtje geen Event doet afgaan in VBA. Dat wilt zeggen dat als je een cel een (geel) kleurtje geeft en je wilt tellen hoeveel cellen dat (geel) kleurtje hebben - dat er niets wijzigt. 4 blijft bv. 4 ook na 1 keer meer een kleurtje toegepast te hebben. Als je F9 drukt (herberekenen) dan gaat het wel 5 worden. Andere mogelijkheid is om een cel met een kleurtje te kopiëren naar de cel zonder kleurtje. Dan herberekent Excel en gaat het goed.

Wigi
 

Bijlagen

als je nu je if statement voor je msgbox in een eigen if end if zet?

Code:
Sub KASINDELING()
    Dim x      As Long
    Dim Rng    As Range
    
    x = Cells(Rows.Count, "B").End(xlUp).Row
    Range("E4:IV20").Interior.ColorIndex = xlNone
    For Each Rng In Range("B6:B20" & x)
    If Rng <> "" And Rng > 0 Then
        Range(Rng.Offset(1, 3), Rng.Offset(1, 2 + Rng.Value)).Interior.ColorIndex = 3
    End If
    Next
    
    If Range("gx7").Interior.ColorIndex = 3 Then
    UserForm1.Show
    End If
    Range("A1").Select
End Sub


groet,
Ferenc


ps.
in het bestandje heb ik ook je code op blad 1 gezet. zodra je iets in B6 tm B17 invult vult excel alles in.
 

Bijlagen

Laatst bewerkt:
ps.
in het bestandje heb ik ook je code op blad 1 gezet. zodra je iets in B6 tm B17 invuld vuld excel alles in.

Ferenc, ik wil echt niet vitten of muggeziften, maar dit is toch wel erg, niet? Kan je daar eens op letten? Of ben ik de enige die zich daaraan stoort?
 
als je nu je if statement voor je msgbox in een eigen if end if zet?

Code:
Sub KASINDELING()
    Dim x      As Long
    Dim Rng    As Range
    
    x = Cells(Rows.Count, "B").End(xlUp).Row
    Range("E4:IV20").Interior.ColorIndex = xlNone
    For Each Rng In Range("B6:B20" & x)
    If Rng <> "" And Rng > 0 Then
        Range(Rng.Offset(1, 3), Rng.Offset(1, 2 + Rng.Value)).Interior.ColorIndex = 3
    End If
    Next
    
    If Range("gx7").Interior.ColorIndex = 3 Then
    UserForm1.Show
    End If
    Range("A1").Select
End Sub
ps.
in het bestandje heb ik ook je code op blad 1 gezet. zodra je iets in B6 tm B17 invuld vuld excel alles in.

Ik interpreteer het probleem anders: nl. de msgbox moet voor elke waarde in de B kolom afgaan indien nodig (GX is rood voor die rij). Zoals ik het probleem begrijp, doet dit wat je wilt:

Code:
Sub KASINDELING()
    Dim x      As Long
    Dim Rng    As Range
    
    x = Cells(Rows.Count, "B").End(xlUp).Row
    Range("E4:IV100").Interior.ColorIndex = xlNone
    For Each Rng In Range("B3:B" & x)
        If Rng <> "" And Rng > 0 Then
            Range(Rng.Offset(1, 3), Rng.Offset(1, 2 + Rng.Value)).Interior.ColorIndex = 3
            If Range("GX" & Rng.Row + 1).Interior.ColorIndex = 3 Then UserForm1.Show
        End If
    Next Rng
    Range("A1").Select
End Sub

De regel

Code:
If Range("GX" & Rng.Row + 1).Interior.ColorIndex = 3

kan eigenlijk veel simpeler door te kijken of Rng.Value groter is dan het getal overeenkomend met kolom GX.

Is het dit inderdaad?

Wigi
 
perfect

Demeter en Wigi allebei duizend maal bedankt

Het werkt perfect.

en...ik heb weer heel wat opgestoken.
 
@Wigi,

Had ook het idee dat hij het zo wilde maar hier blijft mijn kennis toch achter.
Als je me meer tijd zou hebben gegunt was het uiteindelijk wel gelukt, maar dan wel met een aantal regels meer dan jouw code :).

Bedankt, mijn kennis gaat hier met rasse schreden vooruit :thumb:

groet,
Ferenc


ps,
zal wat beter op mijn spelling letten.
 
Laatst bewerkt:
Nothere,

Heb nog even zitten spelen met je code, Userform vervangen door msgbox.

Code:
If Range("GX" & Rng.Row + 1).Interior.ColorIndex = 3 Then [COLOR="Red"]MsgBox "Let op!!! Schuur " & Range("IU" & Rng.Row + 1) & " is vol."[/COLOR]

Nu zie je ook welke schuur vol is in je pop-up.


Succes,
Ferenc
 
sprakeloos.

Bedankt dat je er extra aandacht aan hebt geschonken,
voor mij zijn dit waardevolle lessen.
erg bedankt
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan