Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » ReMoS 00:20
 » RaPToRR 00:10
 » Conan Bar 23:54
 » Star Ride 23:42
 » piszczyk 23:37
 » PCCPU 23:29
 » metacom 23:07
 » rooter666 23:06
 » Matti 23:03
 » biEski 22:59
 » waski 22:59
 » alien1 22:51
 » abes99 22:49
 » Pan Tadeu 22:49
 » piotrszac 22:46
 » Flo 22:45
 » Kelso1 22:44
 » Druzil 22:44
 » rulezDC 22:39
 » Soulfly 22:39

 Dzisiaj przeczytano
 1019 postów,
 wczoraj 61370

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2026
A R C H I W A L N A   W I A D O M O Ś Ć
    

excel - potrzebna pomoc pilne ogromnie , DeK 21/11/04 11:42
Mam dwa makra do excela ..celem jest kasowanie dziesiętnych gdy uzytkownik do formularza wpisze 46,77 to ucina ,77 i zostaje 46 Uprzedzając niektóre odpowiedzi nei da się tego zrobić z pozycji formatowania komórki w excleu w grę wchodzi tylko makro.
A więc mam dwa makra. Jedno działa wysmienicie obcina dziesiętne i nie pozostawia zera gdy komórka jest pusta.
Ale nie działa z komórkami które są scalone z 2 lub wiecej kolumn.
Drugie makro działa ze scalonymi komórkami ale gdy nie ma danych w komórce to wyświetla się zero..
Moja gorąca prośba to szłozyc z tych 2 przykładów jeden działający poprawnie. Czyli kasujący dziesiętne, działający z komórkami scalonymi z kilku kolumn, i nie wyświetlający zera gdy w komórce nie została wpisana żadna liczba.


Makro 1.

Private Sub Worksheet_Change(ByVal Target As Range)

For i = 1 To Target.Areas.Count
With Target.Areas(i)
For j = Target.Areas(i).Row To Target.Areas(i).Row + Target.Areas(i).Rows.Count
For k = Target.Areas(i).Column To Target.Areas(i).Column + Target.Areas(i).Columns.Count

If k = 1 And j = 1 Then ' k to nr wiersza, j nr kolumny komorki ktora ma byc sprawdzana
If IsNumeric(Application.Cells(j, k)) Then
Application.Cells(j, k).Value = Int(Application.Cells(j, k))
End If
End If

Next k
Next j


End With
Next i
End Sub



oraz makro 2 (to nie dzialające z komórkami scalonymi ale nie wyświetlające zera gdy komórka jest pusta)


Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row = 5) And (Target.Column = 4) Then
If IsEmpty(Target) Then
Target.NumberFormat = ";;"
Else
Target = Fix(Target)
Target.NumberFormat = "0;-0;0"
End If
End If
End Sub

  1. podeślij mi ten dokument na maila... , john565 21/11/04 12:00
    to może uda mi sie coś wymyślić

    f*ck

  2. odp , Zajkos 22/11/04 10:04
    to ja napiasłęm makro1 i działa ono z komórkami scalonymi zarówno w poziomie jak i pionie, chyba że część scalonych komórek wychodzi poza zakres ograniczenia

    If k = 1 And j = 1 Then ' k to nr wiersza, j nr kolumny komorki ktora ma byc sprawdzana.

    Udoskonaliłem troche makro i teraz działa szybciej:

    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

    For i = 1 To Target.Areas.Count

    With Target.Areas(i)
    For j = Target.Areas(i).Row To Target.Areas(i).Row + Target.Areas(i).Rows.Count
    For k = Target.Areas(i).Column To Target.Areas(i).Column + Target.Areas(i).Columns.Count

    If k <= 50 And j < 50 Then ' gdzie ma zmieniac, k to nr wiersza, j nr kolumny komorki ktora ma byc sprawdzana
    If IsNumeric(Application.Cells(j, k)) And Application.Cells(j, k).Value <> Int(Application.Cells(j, k)) Then
    Application.Cells(j, k).Value = Int(Application.Cells(j, k))
    End If
    End If

    Next k
    Next j


    End With
    Next i

    End Sub


    Z tym że i tak jak zmienisz cały arkusz to bedzie sprawdzał bardzo długo.

    
All rights reserved ® Copyright and Design 2001-2026, TwojePC.PL