Toon posts:

[VB Script\Excel] Controleren van waarden met if

Pagina: 1
Acties:

Verwijderd

Topicstarter
' Waarde controleren
If Ccontrol < CminProc Then
' Controle op schijfruimte minder dan 200 MB
If Cschijf < CminMB Then
Sheets("WEEKRAPPORT").Select
Range("C42").Select
ActiveCell.FormulaR1C1 = "Let op er is minder dan 200 MB schijfruimte!!!"
Selection.Font.Bold = True
Else
' Controle op schijfruimte minder dan 10% maar meer dan 200 MB
Sheets("WEEKRAPPORT").Select
Range("C42").Select
ActiveCell.FormulaR1C1 = "Let op er is minder dan 10% schijfruimte!!!"
Selection.Font.Bold = True
End If
End If

Ik hoop dat het een beetje duidelijk is
In 'Ccontrol' staat een percentage vrijeschijfruimte. In 'CminProc' staat de waarde waaronder een melding meot worden gegeven. Als de schijfruimte onder het minimale niveau is meot hij ook kijken of hij onder de 200MB (dit doet hij in de 2de if) komt dit staat in de variabele 'CminMB' (deze heeft de waarde 0,2) Alleen de code werkt niet correct hij geeft namelijk wel weer als hij onder de 10% is maar dan niet wanneer hij onder de 200MB is. Ik snap het neit meer....

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Zou je wellicht in het vervolg je code tussen [norml]
code:
1
[/] kunnen plaatsen? Dit maakt het namelijk een stuk leesbaarder. Verder kan je ook nog even inspringen voor wat betreft je code, ook dit maakt het leesbaarder.

Dit voor zover de huishoudelijke mededelingen. Je moet toch maar eens gaan kijken naar de vergelijking die je in het IF statement doet, dus: Cschijf < CminMB. Kan je wellicht niet even een break zetten op: Sheets("WEEKRAPPORT").Select of debug eens door je code heen. Binnen het intermediate window kan je dan tijdens het debuggen uitvragen wat de waarde is van Cschijf en van CminMB. Wellicht geeft dat je dan meer duidelijke waarom hij altijd bij else uitkomt...

Verwijderd

Het is toch bijna Sinterklaas:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Const minschijfvrijPerc = 10 ' melding geven indien hieronder
Const minschijfvrijMB = 50 ' melding geven indien hieronder

Sub diskspaceWarning(schijfvrijMB As Double, schijftotaalMB As Double)
    Dim schijfvrijPerc
    
    schijfvrijPerc = schijfvrijMB / schijftotaalMB * 100
    Debug.Print schijfvrijPerc & "%"
    If schijfvrijPerc < minschijfvrijPerc Then
        If schijfvrijMB < minschijfvrijMB Then
            Debug.Print "let op, er is minder dan " & minschijfvrijMB & "MB vrij"
        Else
            Debug.Print "let op, er is minder dan " & minschijfvrijPerc & "% vrij"
        End If
    ElseIf schijfvrijMB < minschijfvrijMB Then
        Debug.Print "let op, er is minder dan " & minschijfvrijMB & "MB vrij"
    End If
End Sub

Sub test()
    diskspaceWarning 250, 1000 ' geen melding
    diskspaceWarning 99, 1000 ' onder de 10%
    diskspaceWarning 49, 1000 ' onder de 50MB
End Sub