VBA liczby ujemne

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Witam potrzebuje pomocy mam potrzebę zrobienia VBA w excelu takiego zadania
-pola A1:K20 jako walutowe 2 miejsca po przecinku
-ujemne liczby cyfry jako brązkowy kolor
-przycisk wlutowy na pasku szybkiego dostępu

Na tą chwile mam coś takiego jak niżej

Kopiuj
Sub ujemne()
  Dim kolumna As Long, wiersz As Long

  For wiersz = 1 To 10

    For kolumna = 1 To 10

      If Cells(wiersz, kolumna).Value < 0 Then
        Cells(wiersz, kolumna).Interior.ColorIndex = 6
      Else
        Cells(wiersz, kolumna).Interior.ColorIndex = xlNone
      End If

    Next kolumna

Next wiersz
End Sub

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

mam jeszcze taką wersję tylko brakuje mi zeby liczby ujemne wyszykiwał

Kopiuj
Sub Walutowe()
'
' Walutowe Makro
'
' Klawisz skrótu: Ctrl+Shift+K
Range("A1:K20").NumberFormat = "#,##0.00 $"
   
Range("A1:K20").Interior.color = rgbBrown
    


    
 
End Sub
bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

W kodzie makro ujemne popraw zakres pętli i przenieś ten kod do makro Walutowe.
P.S. cyfra to coś zupełnie innego niż liczba.

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

A w tym przypadku co robie ze

Kopiuj
Sub Walutowe()
'
' Walutowe Makro
'
' Klawisz skrótu: Ctrl+Shift+K
Range("A1:K20").NumberFormat = "#,##0.00 $"
   
Range("A1:K20").Value < 0 Then.Interior.color = rgbBrown
    
End Sub

ok

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Napisałem żebyś przeniósł kod z makro ujemne do makro Walutowe. Zrób to.

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0
Kopiuj
Sub Walutowe()
'
' Walutowe Makro
'
' Klawisz skrótu: Ctrl+Shift+K
Range("A1:K20").NumberFormat = "#,##0.00 $"
    For kolumna = 1 To 10

      If Range("A1:K20").Value < 0 Then
        Range("A1:K20").Interior.color = rgbBrown
      Else
        Range("A1:K20").Interior.color = rgbBrown
      End If

    Next kolumna

  Next wiersz 
 
End Sub

Kombinuje ale nie zabardzo mi to wychodzi :)

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

Sub Walutowe()
'
' Walutowe Makro
'
' Klawisz skrótu: Ctrl+Shift+K
Range("A1:K20").NumberFormat = "#,##0.00 $"
Dim kolumna As Long, wiersz As Long

For wiersz = 1 To 10

For kolumna = 1 To 10

  If Cells(wiersz, kolumna).Value < 0 Then
    Cells(wiersz, kolumna).Interior.ColorIndex = 6
  Else
    Cells(wiersz, kolumna).Interior.ColorIndex = xlNone
  End If

Next kolumna

Next wiersz

End Sub

w tym przypadku to niewiem gdzie zmienic kolor na brązowy i format walutowy czy odpowiednio zadziała

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

W kodzie makro ujemne popraw zakres pętli i przenieś ten kod do makro Walutowe.

w tym przypadku to niewiem gdzie zmienic kolor na brązowy
w tych komórkach,w których jest liczba ujemna.

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0
Kopiuj
Sub Walutowe()
'
' Walutowe Makro
'
' Klawisz skrótu: Ctrl+Shift+K
Range("A1:K20").NumberFormat = "#,##0.00 $"
   Dim kolumna As Long, wiersz As Long

  For wiersz = 1 To 10

    For kolumna = 1 To 11

      If Cells(wiersz, kolumna).Value < 0 Then
        Cells(wiersz, kolumna).Interior.color = rgbBrown
      Else
        Cells(wiersz, kolumna).Interior.ColorIndex = xlNone
      End If

    Next kolumna

  Next wiersz
    
 
End Sub
R3
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 419
0

Dwie propozycje do wyboru:

Kopiuj
Range("A1:K20").NumberFormat = "#0.00 zł;[BROWN]-#0.00 zł"
Range("A1:K20").NumberFormat = "[BROWN][<0]-#0.00 zł;#0.00 zł"
JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

jak widać jestem troche zielony w tym czyli w zamiast
Range("A1:K20").NumberFormat = "#,##0.00 $"
skopiować
Range("A1:K20").NumberFormat = "[BROWN][<0]-#0.00 zł;#0.00 zł"

bo wyżuca mi błąd czy usunąć pętle ?

JK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 18
0

wszytko było by oki tylko poza wyznaczoną komórką Range("A1:K20") dalej mi zaznacza tylko odwrotnie kolory czyli brązowy liczby na +

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
0

Nadal masz zły zakres pętli.
Zajrzałem do zadania, Ty masz zarejestrować makro, a nie napisać makro. Podczas rejestracji użyj formatowania i formatowania warunkowego.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.