Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Jak to naprawić ?
Dwanicki
RySz




Typ: neutral
Postów: 3
Zarejestrowany: Apr 2003
Jak to naprawić ?

Sub dniwolne()

  'pobranie danych z arkusza: miesiąc
  mies = Range("A20".Value
 
  'rok
  rok = Range("A22".Value
 
  'obliczenie daty pierwszego dnia miesiąca
  pierwszy = DateSerial(rok, mies, 1)
 
  'obliczenie daty ostatniego dnia miesiąca
  ostatni = DateSerial(rok, mies + 1, 0)
 
  'obliczenie ilości dni w miesiącu
  iledni = ostatni - pierwszy + 1
 
  'przywraca formatowanie domyślne komókom tabeli
  Range("b6:af15".Interior.ColorIndex = 0
  Range("b6:af15".Font.ColorIndex = 0
 
  'zaciemnianie sobót i niedziel
  For a = 1 To iledni
    dzień = DateSerial(rok, mies, a)
    If WeekDay(dzień) = 1 Or _
      WeekDay(dzień) = "" Then
        For b = 6 To 15
          Cells(b, a + 1).Select
          zakoloruj
        Next b
    End If
  Next a
 
  'zaciemnianie gdy miesiąc ma mniej niż 31 dni
  If iledni < 31 Then
    For a = iledni + 1 To 31
        For b = 6 To 15
          Cells(b, a + 1).Select
          zakoloruj
        Next b
    Next a
  End If
 
  'zaciemnianie dodatkowych dni wolnych
W tej części działania pętli For jest coś sknocone, a ja nie jestem w stanie dojść co .
Prosze o pomoc
Pozdrawiam
Dwanicki
 
For a = 24 To 28
    x = Cells(a, 1)
    If x > 0 Then
        For b = 6 To 15
          Cells(b, x + 1).Select
          zakoloruj
        Next b
    End If
  Next
End Sub

Sub zakoloruj()

'ustala kolor szary dla wnętrza i czcionki zaznaczonej komórki
    With Selection
        .Interior.ColorIndex = 31
        .Font.ColorIndex = 40
    End With
End Sub

02-02-2004 20:31
Pokaż profil Dwanicki  Wyślij email do Dwanicki   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003
nic nie jest "sknocone"

Moim zdaniem nic nie jest sknocone.
W komórkach A24:A28 oznaczane są dodatkowe dni wolne od pracy, np.: 3, 6, 10
Jeśli w komórce A20 wpiszesz luty, tzn.: 2, a w komórce A22 rok 2004, to zobaczysz, że dni wolne od pracy to wszystkie niedziele i oprócz tego dni które wypisałeś, czyli: 3, 6, 10

For a = 24 To 28
    x = Cells(a, 1)  'odczytaj dodatkowy dzień wolny
    If x > 0 Then
        For b = 6 To 15
          Cells(b, x + 1).Select
          zakoloruj 'pokoloruj dodatkowy dzień wolny
        Next b
    End If
  Next
End Sub


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

03-02-2004 21:00
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Dwanicki
RySz




Typ: neutral
Postów: 3
Zarejestrowany: Apr 2003
Re.Jak......

Witam !
dziękuję za odpowiedź, to był mój błąd miałem kolumnę więcej w dodatku ukrytą i to był powód przerywania kodu .
Pozdrawiam
Ryszard

03-02-2004 21:34
Pokaż profil Dwanicki  Wyślij email do Dwanicki   
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1