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

format van een cel via inputbox

Status
Niet open voor verdere reacties.

stefano

Gebruiker
Lid geworden
22 mei 2004
Berichten
864
Ik gebruik onderstaande code om een waarde in te geven

Code:
Sub Ovaal1_Klikken()
    Dim Test01 As Double
    Dim Correcttest01 As Boolean
   
    While Not Correcttest01
        If Sheets("data").Range("C8") = True Then
            Test01 = InputBox("Geef " & Sheets("data").Range("C11") & " in tussen " & Sheets("data").Range("C12") & "-" & Sheets("data").Range("D12"), "Info voor certificaat", "Analyse")
                If Test01 < Sheets("data").Range("C12") Or Test01 > Sheets("data").Range("D12") Then
                    MsgBox "De ingegeven waarde is niet correct!", vbCritical, "Fout!"
                Else
                    Correcttest01 = True
 [COLOR="#FF0000"]                   Sheets("certificaat").Range("C35").Value = Test01[/COLOR]
                End If
        Else
                Correcttest01 = True
        End If
    Wend

End Sub

Bij het rode gedeelte ( denk ik ) zou ik graag hebben dat de waarde afgerond wordt naar het aantal decimalen dat ik opgeef in cel c9 ('0,0). De afronding kan variëren waardoor ik dit niet kan opvangen met celopmaak. Met formules doe ik dit via

=tekst(c35;data!c9) maar hoe krijg ik dit voor elkaar in vba? Zie voorbeeld in bijlage.

Bekijk bijlage helpmij.xlsm
 
Zoiets?
Code:
Sheets("certificaat").Range("C35").NumberFormat = "0.0"
 
Ik heb het even uitgetets door de code aan te vullen, zie hieronder. Ik blijf een cijfer verkrijgen zonder cijfers na de komma.

Code:
Sub Ovaal1_Klikken()
    Dim Test01 As Double
    Dim Correcttest01 As Boolean
   
    While Not Correcttest01
        If Sheets("data").Range("C8") = True Then
            Test01 = InputBox("Geef " & Sheets("data").Range("C11") & " in tussen " & Sheets("data").Range("C12") & "-" & Sheets("data").Range("D12"), "Info voor certificaat", "Analyse")
                If Test01 < Sheets("data").Range("C12") Or Test01 > Sheets("data").Range("D12") Then
                    MsgBox "De ingegeven waarde is niet correct!", vbCritical, "Fout!"
                Else
                    Correcttest01 = True
 [COLOR="#FF0000"]                   Sheets("certificaat").Range("C35").NumberFormat = "0.0"
                    Sheets("certificaat").Range("C35").Value = Test01[/COLOR]
                End If
        Else
                Correcttest01 = True
        End If
    Wend

End Sub
 
Code:
Sub Ovaal1_Klikken()
    Dim Test01 As Double
    Dim Correcttest01 As Boolean
   
    While Not Correcttest01
        If Sheets("data").Range("C8") = True Then
            Test01 = InputBox("Geef " & Sheets("data").Range("C11") & " in tussen " & Sheets("data").Range("C12") & "-" & Sheets("data").Range("D12"), "Info voor certificaat", "Analyse")
                If Test01 < Sheets("data").Range("C12") Or Test01 > Sheets("data").Range("D12") Then
                    MsgBox "De ingegeven waarde is niet correct!", vbCritical, "Fout!"
                Else
                    Correcttest01 = True
                  [COLOR="#FF0000"]  Sheets("certificaat").Range("C35").Value = Test01[/COLOR]
                   [COLOR="#008000"] 'Sheets("certificaat").Range("C35").NumberFormat = Sheets("data").Range("C9").Text
                    '(gebruik je bovenstaande verander dan cel C35 van 0,0 naar 0.0)[/COLOR]
                    [COLOR="#FF0000"]Sheets("certificaat").Range("C35").NumberFormat = "0.0"[/COLOR]
                End If
        Else
                Correcttest01 = True
'                GoTo Einde
        End If
    Wend

End Sub
 
Als je echt een afgerond getal in de cel wilt:

Code:
Sheets("certificaat").Range("C35").Value = Format(Test01, Worksheets("Data").Range("C9").Value

Merk wel op, dat dit je een waarde in de cel geeft die er wel uitziet als een getal, maar tekst is (maar dat doet je TEKST functie ook). Om het een getal te laten zou je de AFRONDEN functie moeten gebruiken (WorksheetFunction.ROUND in VBA)
 
Ik zou liever in c9 het aantal decimalen vermelden:

Code:
Sub Ovaal1_Klikken()
  Do
    If [data!C8] = True Then
      [c35].NumberFormat = "0." & String([data!C9], "0")
      c00 = InputBox("Geef " & [data!C11] & " in tussen " & [data!C12] & "-" & [data!D12])
      If (c00 - [data!C12]) \ ([data!D12] - [data!C12]) = 0 Then [c35] = c00
    End If
  Loop Until [c35] = --c00
End Sub
 
De vraag is wel of de waarde in cel C35 een afgeronde waarde moet zijn of alleen afgerond moet worden weergegeven.
In het voorbeeld van snb staat de niet afgeronde waarde in cel C35, maar wordt deze afgerond weergegeven. In mijn voorbeeld staat de afgeronde waarde in de cel. Het is maar wat je in je model wilt!
 
Ik test het allemaal uit, dank alvast voor de reacties !
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan