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

MsgBox 2 kolommen appart aantal weergeven

Status
Niet open voor verdere reacties.

Justfabulous

Gebruiker
Lid geworden
30 okt 2010
Berichten
100
Hoi,

Is het ook mogelijk om van 2 kolommen appart het totaal weer te geven in 1 MsgBox en wanneer het getal 0 is er geen aantal verschijnt, maar alleen een melding?

Het gaat om kolom B, optellen van aantal ingevulde regels en kolom i, optellen van voorwaardelijke opmaak.

Groeten
 
Laatst bewerkt:
Je omschijving is een beetje cryptisch:
je hebt het over kolom B3, maar B3 is niet meer dan 1 cel in kolom 3.
Idem voor I3, daar heb je het bovendien over optellen van opmaak, terwijl niet blijkt wat voor opmaak er opgeteld moet worden. Of wil je gewoon de waarden van B3 en I3 in 1 messagebox? Zoals je al wel gezien zult hebben op dit forum, is een voorbeeldbestand meestal gewenst.
 
Laatst bewerkt:
Hoi, inderdaad moet dit zijn de hele kolom dus B en i. De voorwaardelijke opmaak is het 1 kleur (rood) optellen en dan het totaal weergeven in 1 MsgBox, dus de waarde van kolom b en i.

Ik gebruik excel 2010.


Groeten
 
Laatst bewerkt:
Of bedoel je 2 regels in 1 MsgBox?
Msgbox "Regel 1" & vbCrLf & "Regel 2"
 
Ja, 2 regels. Dus regel 1 die het aantal aangeeft van kolom B en regel 2 het aantal van de voorwaardelijke opmaak kolom i.

:)
 
In mijn voorbeeld zie je hoe je 2 regels in een Msgbox kunt zetten.
"Regel 1" en "Regel 2" kun je uiteraard vervangen door de variabelen waarin de uitkomst van je berekeningen staan.
 
Laatst bewerkt:
Ja ok, maar hoe krijg ik de 2 totalen van de kolommen er in? En als er niets in kolom staat mag er geen getal 0 komen te staan, alleen een melding bijv. tekst leeg.
 
Ze die opmerkingen van zapatr.
 
hier een eerste opzet die als ik het goed heb begrepen doet wat jij wilt.
Alleen geeft de msgbox wel een 0 weer als er niks in de kolom staat in kolom B of kolom I
nog een vraagje kom je over de 65000 rijen die geteld moeten worden?
 

Bijlagen

  • telling.xlsm
    17,4 KB · Weergaven: 43
na verder proberen heb ik de tekst "leeg" toch in beeld gekregen als er niks in de kolom staat

Code:
  Sub telling()
     Dim myrng As Range
     Dim mysum As Double
     Dim ICol As Integer
     Dim TCell As Range
     
     Set myrng = ActiveSheet.Range("B1:B" & ActiveSheet.Range("B65536").End(xlUp).Row)
     mysum = Application.WorksheetFunction.Sum(myrng)
     
   
For Each TCell In ActiveSheet.Range("I1:I" & ActiveSheet.Range("I65536").End(xlUp).Row)
If TCell.Interior.ColorIndex = 3 Then
ICol = ICol + TCell.Value
End If
Next TCell

getal = mysum
kleur = ICol

If getal = 0 Then getal = "leeg"
If kleur = 0 Then kleur = "leeg"
  MsgBox "aantal in kolom B =" & " " & (getal) & vbCrLf & "aantal in kolom I =" & " " & (kleur)

 End Sub
 
@ Pasan
Als ik het goed begrepen heb wordt de rode kleur geplaatst met voorwaardelijke opmaak. In dat geval ga je er niet meekomen met Interior.Color.
Dan zal je voor elke cel in VBA de voorwaardelijke opmaak moeten testen en zien welke kleur eruit komt. Als het over vele rijen gaat zoals jij vraagt zal dit een schier onmogelijke opdracht worden en zal het bestand ter plaatse blijven trappelen. Je zou dan als alternatief de formule die de rode kleur ophoest kunnen evalueren in VBA en dan de optelling maken, maar dan ook weeral met zij het iets minder dezelfde beperking als voorgaande.
Ook is het mij nog altijd niet duidelijk of de som moet gemaakt worden in kolom B ofwel het aantal ingevulde regels moet geteld worden.
TS heeft nog heel wat te verduidelijken voor er hier een zinnig antwoord kan gegeven worden. Voorbeeldbestand !!!!!!!!!!!!
 
@Warmebakkertje
het klopt ik heb aan de voorwaardelijke opmaak niet gedacht ik dacht een kleur is een kleur (leerzaam blijft het elke dag weer):D
 
Hoi, bedankt. Alleen is het niet de bedoel dat in kolom B de getallen bij elkaar worden opgeteld en ook niet in kolom i. Alleen het aantal ingevulde regels tellen.

Hierbij het voorbeeld bestandje. Kolom B werkt, alleen komt er nog wel een 0 in de MsgBox.
De 2e regel voor kolom i, dus het optellen van voorwaardelijke opmaak kleur rood lukt ook niet. :rolleyes:
 

Bijlagen

  • Voorbeeld.xls
    36 KB · Weergaven: 51
Laatst bewerkt:
Wat komt dat filter er nu plotseling bij doen ? Daar heb je geen woord over gerept in je 1ste vraag.
Heb je mijn commentaar op de macro van Pasan gelezen ? Waar is dan de formule van de voorwaardelijke opmaak ?
Ondanks je voorbeeld sta ik nog geen meter verder.:confused:
 
Klopt. De filter had ik niet vermeld. In bijgevoegd bestand werken de 2 regels wel. Alleen als ik nu filter op kolom B telt hij de gekleurde rode cellen van kolom i van het hele werkblad wat niet de bedoeling is. Alleen de rode cellen tellen die zichtbaar zijn als men op kolom b filterd. Is dit ook te filteren in VBA?
 

Bijlagen

  • Voorbeeld.xls
    37,5 KB · Weergaven: 33
Code:
Sub tellentesta()
Dim rng As Range
Dim r As Range, c As Long

ActiveSheet.Range("$B$3:$J$5000").AutoFilter Field:=1, _
            Criteria1:="test a"

Set rng = ActiveSheet.AutoFilter.Range
    
For Each r In rng.Columns(8).SpecialCells(xlCellTypeVisible)
    If r.Interior.ColorIndex = 3 Then c = c + 1
Next
    
MsgBox rng.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1 _
    & "  aantal" & vbCrLf & c & "  aantal", vbInformation, "MsgBox"
End Sub
 
Bedankt :thumb: Het werkt in excel 2003, maar niet in excel2010 klopt dat? Waarschijnlijk voorwaardelijk opmaak 2010 anders?
 
Laatst bewerkt:
Dit werkt enkel als de cellen handmatig gekleurd zijn, NIET met VW.
 
OK, is er een andere manier via voorwaardelijke opmaak zoals pictorgramset symbool ofzo?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan