Wypowiedzi
-
Zrobiłe tak:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static w As Long
For w = 42 To 305
If w > 0 Then
With Rows(w)
.Borders(xlEdgeBottom).LineStyle = xlNone
End With
End If
With Rows(w)
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = 1 'inna by coś widać było.
'.Color = RGB(217, 217, 217)
End With
End With
Next
End Sub
Ale generuje mi obramowanie od razu na całym zakresie i nie usuwa go po zaznaczeniu na inny wiersz. -
Cześć wszystkim, mam mały problem z dodaniem zakresu wierszy do makra.
To makro dodaje mi obramowanie do zaznaczonego wiersza, ale ja chciałbym by działało ono tylko w obrębie tabeli. Od wiersza 42 do 305
If w > 0 Then
With Rows(w)
.Borders(xlEdgeBottom).LineStyle = xlNone
End With
End If
With Target(1).EntireRow
w = .Row
With .Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.Color = RGB(217, 217, 217)
End With
End With
Pomożecie? ;) -
Witam Panowie i Panie,
dzisiaj mam problem z czymś ambitniejszym .
Mam taki plik:
https://www.dropbox.com/s/97v7h0f4d307jqe/timer2.xlsm?dl=0
Zrobiłem w nim licznik czasu, ale nie działa tak jak powinien.
W pliku opisałem schemat działania i jak chciałbym by działał.
Po skrócie, chciałbym mieć licznik czasu który liczy czas pojedynczego zadania i sumuję wszystkie zadania rozpoczęte dla danego klienta.
Pomożecie? ;)Ten post został edytowany przez Autora dnia 15.03.17 o godzinie 12:23 -
Bartłomiej D.:
a tak?=SUMA(LICZ.WARUNKI(N10:N18;{"W przygotowaniu";"Wysłana"};I10:I18;"<>"))
na podstawie: https://exceljet.net/formula/countifs-with-multiple-cri...
Działa pięknie! dzięki Bartek. -
Chce zliczać wiersze które:
- maja w nazwie "x" lub "y" (zakres 1) - ważne jest tutaj to lub
- komórki nie są puste (zakres 2) -
Cześć wszystkim, znowu mam mały problem,
Mam taką formule:
=LICZ.WARUNKI(N10:N18;"W przygotowaniu";I10:I18;"<>")
Chce do pierwszego kryterium dodać lub, tak by reagowała na jedną wartość i drugą.
Coś takiego: (ale to oczywiście nie działa..)
=LICZ.WARUNKI((LUB(N10:N18;"W przygotowaniu");(N10:N18;"Wysłana"));I10:I18;"<>")
Próbowałem z "&" po tej formule, powtarzając to samo, tylko z inna wartością, ale wtedy zamiast 1 wyświetla się wartość 10.
Macie rade? :) -
Panowie, nie myślałem, że to będzie problem, ale jednak się pojawił..
Mianowicie, chce wkleić kilka kodów VBA pod sobą w arkuszu, odnoszących się do innych statusów, wklejających datę w różnych komórkach.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 14 And Target.Row >= 10 And Target.Row <= 100 Then
If Target.Value = "Odrzucona" Then
Target.Offset(0, -11).Value = Now
Else
If Target.Value = "" Then
Target.Offset(0, -11).Value = ""
End If
End If
End If
End Sub
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 14 And Target.Row >= 10 And Target.Row <= 100 Then
If Target.Value = "Zaakceptowana" Then
Target.Offset(0, -12).Value = Now
Else
If Target.Value = "" Then
Target.Offset(0, -12).Value = ""
End If
End If
End If
End Sub
Jeden kod działa, ale jak wkleję dwa, to wyskakuje błąd:
"Błąd kompilacji:
Wykryto niejednoznaczną nazwę: Worksheet_Change
(Sheet3 14:0)"
Co zrobić by móc wklejać kilka kodów VBA pod sobą bez błędu? ;) -
Andy L.:
Zmodyfikowałem VBA i działa
Jeśli wpisujesz listę bezpośrednio do DV to się nie uda aktualizacja daty
Utwórz listę w jakiejś kolumnie w DV wybierz List a jako zakres zaznacz tę listę + jedna (pusta) komórka więcej. Żeby zaktualizować datę trzeba najpierw wybrać puste miejsce na liście a następnie wybrać to co chcesz wybrać
else
szukaj rozwiązań w VBA
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 4 And Target.Row >= 13 And Target.Row <= 100 Then
If Target.Value = "Zakończono" Then
Target.Offset(0, -2).Value = Now
End If
End If
End Sub
Dzięki panowie! jesteście niezastąpieni! ;) -
Andy L.:
Może nie opisałem tego jasno, chodzi tu o datowanie statusów, musze mieć wszystkie daty zlecenia Oferta/W produkcji/FV/Zakończono i każdy status musi mieć datę kiedy to się stało. Ten kod działa prawidłowo, ale nie zwraca nowej daty po zmianie statusu i powrocie do tego samego jeszcze raz.
Trochę to bez sensu jak dla mnie ale...
=IF(D21="","",IF(B21="",NOW(),B21))
Obojętnie co wybierzesz pokaże się data. Zniknie dopiero jak usuniesz wybór.
Niekiedy zdarza się tak, że zlecenie ma status "zakończono" ale klient nagle sie budzi, że chce poprawki i zlecenie musi miec zmieniony status na "w produkcji" dlatego ważne jest, by daty były zawsze aktualne - czyli ostatnia zmiana statusu.
Dodałbyś jeszcze taką modyfikację? by zmieniało datę za każdym razem po zmianie na "zakończono" bez potrzeby kasowania listy? -
Andy L.:
Masz rację, byka zrobiłem, poprawiłem i działa, tylko tak samo jak w przypadku VBA wyzej, data znika po zmianie statusu na inną nazwę
Porównaj to co wpisałes w swoim poście i polskiej formule z tym:
AND(B13="",D13="Zakonczone")
ORAZ(B10="";B10="Zakończone")
=JEŻELI(R10="";"";JEŻELI(ORAZ(B10="";R10="Zakończone");TERAZ();JEŻELI(R10<>"Zakończone";"";B10))) -
Andy L.:
Nazwa i nr komórek nie ma tu znaczenia (chyba, ze ważne sa polskie znaki przy formule, ale nie sądzę) , przy opisywaniu problemu podałem przykładowe, najważniejsze, że odnoszą się do poprawnych komórek. R=lista B=komórka z datą
Oczywiście, że nie skoro warunek w formule różni się od twojej definicji w DV.
Zakończone nie równa się Zakonczone
Formuła ma być w B13 i w dół
DV ma być w D13 i w dół
Najpierw usuń tekst z DV po wybraniu czegokolwiek, data powinna "sie naprawić" :) -
Sławomir B.:
Działa prawie super, tylko data znika po zmianie na inny status/nazwę.
Michał P.:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 4 and target.row >=13 and target.row <=100 [/quote]> Then[quote] if target.value ="Zakonczone" then
Target.Offset(0, -2).Value = Now
else
Target.Offset(0, -2).Value = ""
end if
End If
End Sub
Można sprawić by zostawała do kolejnej zmiany? -
Andy L.:
Ta funkcja nie działa, formuła wchodzi prawidłowo, bez błędu, ale po zmianie na "zakończone" lub cokolwiek innego cały czas jest data "00.01.1900" nie pomaga zmiana formatowania :(
A to aż vba do tego potrzeba?
=IF(D13="","",IF(AND(B13="",D13="Zakonczone"),NOW(),IF(D13<>"Zakonczone","",B13)))
Jedyne co trzeba to włączyć: Option => Formulas => Enable iterative calculation
wklejam ze średnikami bo przecinków mi nie czyta, ale to chyba nie ma znaczenia.. ?
=JEŻELI(R10="";"";JEŻELI(ORAZ(B10="";B10="Zakończone");TERAZ();B10)) -
To jest kod jaki mam, a opisałem w jaki sposób chciałbym go zmodyfikować.
Pani Marzanno chodzi o to by po wybraniu z listy słowa np "zakończone" załóżmy, że to jest komórka D13, w komórce B13 (czyli ten sam nr wiersza, tylko inna kolumna), pojawiała sie data. Będę to stosował do statusów zadań, i muszę wiedzieć kiedy zadanie zostało zakończone, kiedy edytowane etc.. -
Witam,
mam kod który pokazuje mi datę modyfikacji komórki w kolumnie obok:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 3 Then
Target.Offset(0, -1).Value = Now
End If
End Sub
Potrzebuje zmodyfikować ten kod by w zakresie wierszy powiedzmy od B13:B100 wprowadzał datę zmiany w momencie wybrania z innego zakresu wierszy/listy wartości np "Zakończone" .
Czyli wybieram z wiersza np D:13 z listy "zakończone" i w wierszu B13 pojawia mi się dzisiejszą data z godziną.
Pomożecie? ;)