vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest sobota, 20 kwietnia 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Pętla odnośnie wartości w komórce


otwartyotwarty rozpoczął: dolik22 postów: 13



napisał: admin
postów: 613


umieszczony:
10 kwietnia 2019
12:03

edytowany:
11 kwietnia 2019
09:03

  
Cytat:
Wartość zero pojawia się na podstawie prostego działania. Zliczam liczbe przecinkow, które oddzielają nazwy danych osób (z dwóch komorek) i na tej podstawie w komórce H pojawia się roznica tych dwóch liczb.


Uzyj procedury zdarzeniowej.
Ponizszy kod wklej do modulu skoroszytu:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column <> 8 Then Exit Sub
If Target.Row < 2 Then Exit Sub

Dim i As Long
Dim iRow As Long

iRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row

For i = 2 To iRow

      If ActiveSheet.Range("D" & i).Value <> "" Then
          If ActiveSheet.Range("H" & i).Value = 0 Then
              ActiveSheet.Range("B" & i & ":G" & i).Interior.ColorIndex = 10
            Else
              ActiveSheet.Range("B" & i & ":G" & i).Interior.ColorIndex = xlNone
          End If
      End If
Next i

End Sub



Kod dziala, jesli z reki zmienisz zawartosc jakiejs komorki z kolumny H ( kolumna 8).
Jesli potrzebujesz, by stalo sie to z powdou zmiany komorek innych kolumn - dopasuj odpowiednio ten kod.

pozdrawiam
admin
napisał: dolik22
postów: 8


umieszczony:
10 kwietnia 2019
09:24

  
Wartość zero pojawia się na podstawie prostego działania. Zliczam liczbe przecinkow, które oddzielają nazwy danych osób (z dwóch komorek) i na tej podstawie w komórce H pojawia się roznica tych dwóch liczb.
napisał: Trebor
postów: 1209


umieszczony:
9 kwietnia 2019
16:10

  
Co powoduje (jakie zdarzenie), że w kolumnie H pojawia się wartość 0?
napisał: dolik22
postów: 8


umieszczony:
9 kwietnia 2019
08:55

  
Dobra fakt teraz wszystko działa tak jak powinno, ale w takim razie mam jeszcze jedno pytanie. Czy dodanie takiej opcji, żeby makro odpalało się na bieżąco w arkuszu (po pojawieniu się tej wartości 0, nastąpi automatyczna zmiana koloru) tak jak ma to miejsce przy formatowaniu warunkowym (zamiast odpalania makra za każdym razem ręcznie), będzie wymagało dużej rozbudowy kodu, bo jeśli tak to nie chciałbym już wam zawracać głowy :)
Oczywiście jeszcze raz dzięki za pomoc :)
napisał: admin
postów: 613


umieszczony:
8 kwietnia 2019
20:20

  
U mnie działa;)
Jak uruchamiasz to makro?

Cytat:
Sprawdzałem tą propozycje odnośnie zmiany komórki z B na D i nawet teraz jeszcze sprawdziłem twój kod w którym chodziło o to samo, ale w dalszym ciągu nie zmienia mi koloru komórek :/
napisał: dolik22
postów: 8


umieszczony:
8 kwietnia 2019
11:47

  
Sprawdzałem tą propozycje odnośnie zmiany komórki z B na D i nawet teraz jeszcze sprawdziłem twój kod w którym chodziło o to samo, ale w dalszym ciągu nie zmienia mi koloru komórek :/
napisał: admin
postów: 613


umieszczony:
8 kwietnia 2019
09:53

  
Cytat:
Dodaje wycinek mojego excela, może to pomoże jakoś lepiej zrozumieć o co mi chodzi :)


To moze tak:
Sub Kolor()

Dim i As Long
Dim iRow As Long

iRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row

For i = 2 To iRow

     If ActiveSheet.Range("D" & i).Value <> "" Then
         If ActiveSheet.Range("H" & i).Value = 0 Then
             ActiveSheet.Range("B" & i & ":G" & i).Interior.ColorIndex = 10
         End If
     End If
Next i

End Sub




pozdrawiam
admin
napisał: dolik22
postów: 8


umieszczony:
8 kwietnia 2019
09:30

  
nazwa pliku rozmiar
test.xlsx 8.83 kB

Dodaje wycinek mojego excela, może to pomoże jakoś lepiej zrozumieć o co mi chodzi :)
napisał: Trebor
postów: 1209


umieszczony:
5 kwietnia 2019
17:42

  
Kod sprawdza czy dane znajdują się w kolumnie 2 czyli B. Może to jest problem?
iRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row

napisał: admin
postów: 613


umieszczony:
5 kwietnia 2019
17:34

  
Cześć,

zamieść swój plik na forum. Zobaczę.

pozdrawiam
admin

Cytat:
Dzięki wielkie za pomoc i nie bardzo wiem czy coś źle zrobiłem czy jednak jest jakiś błąd w kodzie, bo po dodaniu makra do mojego excela nic się nie zmienilo tzn. pomimo wartości 0 w komorkach H kolor pozostałych nie ulega zmianie.
napisał: dolik22
postów: 8


umieszczony:
5 kwietnia 2019
09:16

  
Dzięki wielkie za pomoc i nie bardzo wiem czy coś źle zrobiłem czy jednak jest jakiś błąd w kodzie, bo po dodaniu makra do mojego excela nic się nie zmienilo tzn. pomimo wartości 0 w komorkach H kolor pozostałych nie ulega zmianie.
napisał: admin
postów: 613


umieszczony:
4 kwietnia 2019
21:35

  
Hej,

do tego nie potrzeba makra. Wystarczy formatowanie warunkowe.
Ale jeśli musi być VBA...

Sub Kolor()

Dim i As Long
Dim iRow As Long

iRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 2).End(xlUp).Row

For i = 2 To iRow

    If ActiveSheet.Range("D" & i).Value <> "" Then
        If ActiveSheet.Range("H" & i).Value = 0 Then
            ActiveSheet.Range("B" & i & ":G" & i).Interior.ColorIndex = 10
        End If
    End If
Next i

End Sub




Cytat:
Cześc, potrzebuje napisać jakąś stosunkowo prostą pętle, której zadanie jest następujące:

W swoim arkuszu w każdym wierszu od H2 do H2xxx mam wartości liczbowe i chciałbym żeby w przypadku gdy wartość w tej komórce wyniesie 0 to komórki od B do G w tym samym rzędzie zostały pokolorowane na dany kolor.

Opcjonalnie dodać jeszcze jakby warunek sprawdzający, że jeśli komórki dla kolumny D są puste to pętla nie będzie uruchamiana.

Jeśli ktoś miałby chwilę i pomysł jak takie coś zrobić, będę bardzo wdzięczny :)
napisał: dolik22
postów: 8


umieszczony:
3 kwietnia 2019
16:20

  
Cześc, potrzebuje napisać jakąś stosunkowo prostą pętle, której zadanie jest następujące:

W swoim arkuszu w każdym wierszu od H2 do H2xxx mam wartości liczbowe i chciałbym żeby w przypadku gdy wartość w tej komórce wyniesie 0 to komórki od B do G w tym samym rzędzie zostały pokolorowane na dany kolor.

Opcjonalnie dodać jeszcze jakby warunek sprawdzający, że jeśli komórki dla kolumny D są puste to pętla nie będzie uruchamiana.

Jeśli ktoś miałby chwilę i pomysł jak takie coś zrobić, będę bardzo wdzięczny :)


<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z