Negeren van cel met formule

Status
Niet open voor verdere reacties.

masala09

Gebruiker
Lid geworden
6 aug 2012
Berichten
886
Code:
'Lb_Totaal2_Show
    Select Case Cells(Rows.Count, 9).End(xlUp).Offset(-1).Value
       [COLOR="#FF0000"]Case Is = vbNullString
            Lb_Totaal2_Show = " € 0,00"[/COLOR]       
       Case Is > vbNullString
            Lb_Totaal2_Show = Format(Cells(Rows.Count, 9).End(xlUp).Offset(-1).End(xlUp).Value, " € 0.00")
    End Select

Bovenstaand een code. Op zicht werkt deze code wel en doet dus perfect wat deze moet doen. Echter het rode gedeelte werkt niet hoe ik wil.
Logisch want in de cel waar het bij select case omgaat, staat een formule: Som(I24:I26). Naarmate de lijst langer wordt door invoegen van rijen veranderd deze formule automatisch mee. 1 Rij in deze range erbij maakt dan: Som(I24:I27) enzovoort. vbNullString gaat hier dus niet op. Wel moet de formule in de cel blijven staan. Ik vraag niet direct om DE oplossing, omdat ik zelf ook wil leren en proberen, maar wel een voorzetje.

Het meest idiote is dat ik tijdens het hier intypen van het probleem een ingeving krijg door een aanvulling met daarin IF en .Value = "Som(I24:I26). Alleen zal dit ook niet geheel opgaan, want op het moment dat er een rij bijkomt dan krijg ik in mijn beleving weer hetzelfde probleem.
 
Laatst bewerkt:
Oplossing als hieronder. Zo simpel, maar ik vind het wel de moeite waard om het hier te vermelden voor personen die hier voor nu of voor in de toekomst mee zitten.

IF heb ik dan niet gebruikt. Ik heb de zaken op een andere manier ingevoerd daar mijn eerdere gedachten een voor mij onnodig lange code geeft. Ook zie je extra regels staan die apart waren opgenomen in de betreffende sub. Achteraf bleek dat zij beide naar de zelfde select case verwijzen. Zodoende heb ik beide samengevoegd om de code van de sub nog verder in te korten.

En ja ik weet het. De code kan misschien zelfs nog korter, maar dat doet er nu niet toe. Wellicht dat iemand dat hier wel wilt plaatsen. Zodoende leer ik er zelf ook weer iets van en wellicht dat deze code niet werkt onder alle versies excel en of VBA.

Code:
Select Case Cells(Rows.Count, 9).End(xlUp).Offset(-1)
        Case Is = Formula = "Som(I24:I26)"
            Lb_Totaal1_Show = " € 0,00"
            Lb_Totaal2_Show = " € 0,00"
        Case Is <> Formula = "Som(I24:I26)"
            Lb_Totaal1_Show = Format(Cells(Rows.Count, 9).End(xlUp).Offset(-1).Value, " € 0.00")
            Lb_Totaal2_Show = Format(Cells(Rows.Count, 9).End(xlUp).Offset(-1).End(xlUp).Value, " € 0.00")
    End Select
 
Ik ben bang dat je een oplossing hebt geprogrammeerd voor een denkfout.
Wat kan hiervan de zin zijn ?
 
Beste SNB. Wat had het dan beter kunnen zijn. Hoe had ik het dan beter kunnen doen. In het werkblad staat in die cel een formule. Wat is dan de denkfout geweest als deze de denkfout oplost.

2 Verschillende waardes moeten getoond worden in het userform. De waarde van het laatst ingevoerd artikel en de totaal waarde van de voorgaande sessie. Deze code is onderdeel van UserForm_Initialize.

Ik hoor en leer graag.

Groet Maarten
 
Laatst bewerkt:
Toon je userform.
Toon je werkblad.
Beschrijf welk resultaat je zoekt.
 
Beste SNB.

Ik heb de code waarvan je schreef dat er wellicht sprake is van een denkfout, bekeken. Ik heb het nu anders gedaan. Deze werkt ook. Of ik het baseer op een denkfout weet ik niet, maar ik zag wel dat het anders en makkelijker kon. Ik heb gebruik gemaakt van de Dim Lastrow. Via het laatste rijnummer heb ik de cellen nu laten invullen. Maakte meteen mijn code ook korter, al haal je dat niet in onderstaande terug.

Code:
Select Case Lastrow
        Case Is = 23
            Lb_Totaal1_Show = " € 0,00"
            Lb_Totaal2_Show = " € 0,00"
        Case Is > 23
            Lb_Totaal1_Show = Format(Cells(Rows.Count, 9).End(xlUp).Offset(-1).Value, " € 0.00")
            Lb_Totaal2_Show = Format(Cells(Rows.Count, 9).End(xlUp).Offset(-1).End(xlUp).Value, " € 0.00")
            Call LaatsteRijShow
    End Select

-------------Rest van de code-------------
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan