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

Gekleurde cellen wel of niet mee optellen

Status
Niet open voor verdere reacties.
Zo beter?
Code:
If MsgBox("Wilt u de gele cellen(overlopende posten eindejaar) mee tellen en die aan het begin eruit laten?", vbYesNo + vbQuestion, "Overlopende posten") = vbYes Then
     Worksheets("jan").Cells(7, 16).Resize(, 90).ClearContents
     Worksheets("jan").Cells(7, 16).Resize(, 90) = "=if(sominckleur(jan!R[1]C:R[238]C,R2C1,2)=0,"""",sominckleur(jan!R[1]C:R[238]C,R2C1,2))"
     Worksheets("ovl").Cells(7, 16).Resize(, 90).ClearContents
     Worksheets("ovl").Cells(7, 16).Resize(, 90) = "=if(sominckleur(ovl!R[1]C:R[238]C,R2C1,2)=0,"""",sominckleur(ovl!R[1]C:R[238]C,R2C1,2))"
     Worksheets("jan").Cells(1, 1) = "Jaarrapport met verwerkte overlopende posten "
  Else
     Worksheets("jan").Cells(7, 16).Resize(, 90).ClearContents
     Worksheets("jan").Cells(7, 16).Resize(, 90) = "=if(sominckleur(jan!R[1]C:R[238]C,R2C1,1)=0,"""",sominckleur(jan!R[1]C:R[238]C,R2C1,1))"
     Worksheets("ovl").Cells(7, 16).Resize(, 90) = "    ="
     Worksheets("jan").Cells(1, 1) = "Liquiditeits overzicht zonder overlopende posten"
End If

En dan mogen jan! en ovl! er wel weer voor weg.
 
Laatst bewerkt:
Harry e.a.,

Met deze wijziging krijg ik de verkeerde optellingen, terwijl nog steeds de optellingen van blad ovl! ook komen te staan op blad jan!.

De bedoeling is dat bij een ja antwoord op blad jan de gele cellen niet worden meegeteld, en op blad ovl alleen de gele cellen worden op geteld.
Bij een nee antwoord moet op blad jan alles worden opgeteld, en blad ovl wordt niets opgeteld.

Heb echt het idee dat op het blad waar de opdrachtknop geplaatst is de werking juist is, en op het andere blad komen de optellingen van het blad waar de knop staat.

Iemand een idee?

Siebe

Bestand zie vorige post
 
Harry,

Volgens mij kijk ik wel goed, mijn analyse:

Volgens jouw code :

Code:
If MsgBox("Wilt u de gele cellen(overlopende posten eindejaar) mee tellen en die aan het begin eruit laten?", vbYesNo + vbQuestion, "Overlopende posten") = vbYes Then
     Worksheets("jan").Cells(7, 16).Resize(, 90).ClearContents
     Worksheets("jan").Cells(7, 16).Resize(, 90) = "=if(sominckleur(jan!R[1]C:R[238]C,R2C1[COLOR="#FF0000"],2[/COLOR])=0,"""",sominckleur(jan!R[1]C:R[238]C,R2C1,[COLOR="#FF0000"]2[/COLOR]))"
     Worksheets("ovl").Cells(7, 16).Resize(, 90).ClearContents
     Worksheets("ovl").Cells(7, 16).Resize(, 90) = "=if(sominckleur(ovl!R[1]C:R[238]C,R2C1,2)=0,"""",sominckleur(ovl!R[1]C:R[238]C,R2C1,2))"
     Worksheets("jan").Cells(1, 1) = "Jaarrapport met verwerkte overlopende posten "
  Else
     Worksheets("jan").Cells(7, 16).Resize(, 90).ClearContents
     Worksheets("jan").Cells(7, 16).Resize(, 90) = "=if(sominckleur(jan!R[1]C:R[238]C,R2C1,[COLOR="#FF0000"]1[/COLOR])=0,"""",sominckleur(jan!R[1]C:R[238]C,R2C1,[COLOR="#FF0000"]1[/COLOR]))"
     Worksheets("ovl").Cells(7, 16).Resize(, 90) = "    ="
     Worksheets("jan").Cells(1, 1) = "Liquiditeits overzicht zonder overlopende posten"
End If

Volgens code ed moore

Code:
Voorbeeld aanroep in B12 met meetellen gekleurde cellen:
=SOMINCKLEUR(B4:B11;B6;0)

Voorbeeld aanroep in B12 met gekleurde cellen NIET meetellen:
=SOMINCKLEUR(B4:B11;B6;1)

Voorbeeld aanroep in B12 met alleen gekleurde cellen tellen:
=SOMINCKLEUR(B4:B11;B6;2)

Zoals ik het lees wordt in jouw code bij een ja antwoord in sheet jan alleen de gele geteld, terwijl juist de gele niet mee geteld moeten worden bij ja.
Bij een nee antwoord worden in jouw code in sheet jan de gele niet meegeteld, terwijl dat wel moet.
De code van sheet ovl klopt wel lijkt mij, nl bij ja alleen de gele optellen, en bij nee niets optellen.

In de bijlage heb ik de getallen wat vereenvoudigd, zodat de optellingen beter te controleren zijn, en in mijn excel gebeurt er het volgende(Heb de 'oude' code even gebruikt.)

De knop staat in sheet ovl.
Als ik ja aanklik geeft de op telling op sheet ovl alleen de optelling van de gele cellen, waarde 4, dit is correct. Als ik dan kijk op sheet jan, die de gele cellen niet mee moet tellen, staat daar waarde 2, het moet 5 zijn. De 2 is nl de waarde van sheet ovl. Dit is het probleem, de waarde van de verkeerde sheet wordt weer gegeven. Als ik dan op de cel met de 2 dubbelklik en weer enter, staat de 5 er wel.

Bij de keuze nee wordt in sheet ovl het = teken weergegeven, correct. In sheet jan, waar alle cellen moeten worden opgeteld, staat de optelling van sheet ovl nl waarde 6.

Is dit wellicht een instelling van excel of toch iets in de code?

Siebe

Bekijk bijlage Gele cellen meetellen 4 .xlsb
 
Zie mijn testbestand Siebe.
 

Bijlagen

  • Gele cellen meetellen 4.xlsb
    68 KB · Weergaven: 30
Harry,

Dank voor je vasthoudendheid, dit is wat ik bedoelde.

Kun je evt uitleggen wat je hebtgedaan? Ik ben niet zo'n kenner en wellicht leer ik er wat van. Zag dat je een string in de formule hebt gemaakt die de sheet aangeeft, maar wat is een string precies?

Siebe
 
Per ongeluk had ik de verkeerde code geplaatst.
Zodoende dacht ik dat mijn testbestand goed moest zijn, en daaruit de code kwam.

Een string is een tekenreeks.
Zet de cursor op "string" in de code en druk F1.
Zo kan je met de F1 toets een hoop informatie opvragen.
 
Kleine vraag nog, kun je de bestands naam nog bij plaatsen in de string, met meerdere bestanden met jan en ovl sheetnamen is er nog verwarring.

Siebe
 
Is toch niet nodig?
Je drukt immers op het knopje, en dat knopje geldt voor dat specifieke werkboek.
 
Harry,

Dat zou je idd niet zeggen, maar als ik meedere bestanden open heb met deze sheet namen, wordt de optelling door elkaar gehaald, vandaar het idee om de bestandsnaam in de code te verwerken.
Kun je hier een voorbeeld voor geven, of een andere oplossing?

Siebe
 
Dan probeer het zo maar eens weer.
Code:
sominckleur = sominckleur + ThisWorkbook.Sheets(sh).Cells(i, Bereik.Column)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan