Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta

[es] :: Office :: Excel :: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta

[ Pregleda: 971 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gogi100
Goran Ljubic

Član broj: 40722
Poruke: 1064
*.dynamic.isp.telekom.rs.



+3 Profil

icon formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta02.05.2022. u 15:26 - pre 23 meseci
imam sledeci kod
Code:

Dim z As Range
Dim inputstring As String
Dim brojdecimalnihmesta As Integer
Dim DecSep As String
Dim ThousendSep As String
Dim CurrentSelectionRng As String
Dim eIndex As Long
Dim eRowIndex As Long


CurrentSelectionRng = Selection.Address
On Error Resume Next

MsgBox "Pre nego sto unesete format kolone: broj, tekst, datum, procenat; izaberite jednu celiju u koloni, koja ce biti selektovana", vbOKOnly
inputstring = InputBox(Prompt:="Unesi format kolone('b' - broj, 't' - tekst, 'd' - datum, 'p' - procenat", Title:="Format kolone")


 If inputstring = "b" Then
     MsgBox "Format celije(a) ce biti broj", vbOKOnly
    brojdecimalnihmesta = InputBox(Prompt:="Unesi broj decimalnih mesta", Title:="Decimalna mesta")
    eIndex = Application.ActiveCell.Column
    eRowIndex = Application.ActiveSheet.Cells(Rows.count, eIndex).End(xlUp).Row
    Range(Cells(2, eIndex), Cells(eRowIndex, eIndex)).Select
    System = Application.UseSystemSeparators
     With Application
        .DecimalSeparator = ","
        .ThousandsSeparator = "."
        .UseSystemSeparators = False
    End With
      If System = True Then
            DecSep = Application.International(xlDecimalSeparator)
            ThousendSep = Application.International(xlThousandsSeparator) 'not used;for information only
      Else
            DecSep = Application.DecimalSeparator
            ThousendSep = Application.ThousandsSeparator 'not used;for information only
      End If
  
   
   For Each z In Selection
   
  If brojdecimalnihmesta = 0 Then
        z.Value = FormatNumber(z.Value, brojdecimalnihmesta, , , vbTrue)
    ElseIf brojdecimalnihmesta = 1 Then
        z.Value = FormatNumber(z.Value, brojdecimalnihmesta, , , vbTrue)
    ElseIf brojdecimalnihmesta = 2 Then
        z.Value = FormatNumber(z.Value, brojdecimalnihmesta, , , vbTrue)
    ElseIf brojdecimalnihmesta = 3 Then
        z.Value = FormatNumber(z.Value, brojdecimalnihmesta, , , vbTrue)
    ElseIf brojdecimalnihmesta = 4 Then
        z.Value = FormatNumber(z.Value, brojdecimalnihmesta, , , vbTrue)
    ElseIf brojdecimalnihmesta = 5 Then
        z.Value = FormatNumber(z.Value, brojdecimalnihmesta, , , vbTrue)
    End If
   
   Next
    With Selection
   
    .HorizontalAlignment = xlRight
   ' .NumberFormat = "###,###,###,###0.00"
    
   End With
   
   Exit Sub
 End If


kada primenim moj makro svaki broj na primer 34563,9843 se prikazuje u formatu 34.563,98 kada unesem broj decimalnih mesta 3 ili 4 ili 5. kada izaberem broj decimalnih mesta 1 prikaz u excel-u je 34.563,90. prikaz za separatorom i decimalama je meni uredu, ali zasto ne prikazuje decimalana mesta veca od 2
 
Odgovor na temu

gogi100
Goran Ljubic

Član broj: 40722
Poruke: 1064
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta02.05.2022. u 16:12 - pre 23 meseci
isti takav problem imam i sa procentima
 
Odgovor na temu

gogi100
Goran Ljubic

Član broj: 40722
Poruke: 1064
*.dynamic.isp.telekom.rs.



+3 Profil

icon Re: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta02.05.2022. u 17:53 - pre 23 meseci
Primetio sam kad unesem broj decimalnih mesta. Ovaj broj ustvari radi zaokruzivanje na taj broj decimalnih mesta, a a prikazuje uvek 2 decimalna mesta
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
*.dynamic.isp.telekom.rs.

Sajt: www.gowi.rs


+109 Profil

icon Re: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta04.05.2022. u 20:49 - pre 23 meseci
Funkcija FomatNumber koju si koristio u kodu pretvara broj ( iz ćelije) u tekst sa odgovarajućim brojem decimalnih mesta.
U slučaju da je broj decimalnih mesta manji od onoga u broju vrši se kao što ti kažeš zaokruživanje. U slučaju da je broj decimalnih mesta veći ili jednak onom u broju ne menja se broj.
E sad šta se dalje dešava.
U tu ćeliju unosi se tako formatiran tekst. Za ispis će se primentii aktivni format u ćeliji - General ako nije menjano. Tako će se tekst ispisati sa onolko decimalnih mesta koliko ima formatiran tekst.
Verovatno je kod tebe već formtirana ćelija da ima dva decimalna mesta, pa se to primenjuje. Dakle, kod koji si postavio ne menja format ćelije. Format ćelije možeš da promeniš sa linijom koja je zakomentarisana
Code:
  Selection.NumberFormat = "#,###0.00"


gde treba uneti broj 0 iza zareza po potrebi npr pomoću string funkcije

Code:
Selection..NumberFormat = "#,###." & String(brojdecimalnihmesta, "0")


Što se tiče samog ispisa ovo ti je sve što ti treba. Ako ti treba i zaokruživanje možeš koristiti Round funkciju
Code:
z.Value  = Round(z.Value, brojdecimalnihmesta) 






Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prikačeni fajlovi
 
Odgovor na temu

gogi100
Goran Ljubic

Član broj: 40722
Poruke: 1064
*.static.isp.telekom.rs.



+3 Profil

icon Re: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta09.05.2022. u 06:40 - pre 23 meseci
Resio problem, po vasem uputstvu
 
Odgovor na temu

gogi100
Goran Ljubic

Član broj: 40722
Poruke: 1064
*.static.isp.telekom.rs.



+3 Profil

icon Re: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta09.05.2022. u 11:07 - pre 23 meseci
Pokusao sam makro da primenim na drugom racunaru i sad stalno kad se uradi formatiranje prikazuje u formatiranim celijama poruku 'this cell is formatted as text....' ja zelim da to bude broj. Na mom racunaru to prikazuje kao broj
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
89.216.49.*

Sajt: www.gowi.rs


+109 Profil

icon Re: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta10.05.2022. u 07:43 - pre 23 meseci
Ako na jednom računaru radi a na drugom ne proveri postavke za decimalni separator na nivou operativnog sistema i excela
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

gogi100
Goran Ljubic

Član broj: 40722
Poruke: 1064
*.static.isp.telekom.rs.



+3 Profil

icon Re: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta10.05.2022. u 07:53 - pre 23 meseci
Ubacio sam u kod samo

Code:

z = z*1
z = z.Value


i na spornom kompu proradilo
 
Odgovor na temu

[es] :: Office :: Excel :: formatnimber funkcija ne prikazuje decimalne brojeve koji imaju vise od 3 decimalna mesta

[ Pregleda: 971 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.