Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: Powiadamianie o zawartości komórki
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005
Powiadamianie o zawartości komórki

W komórkach w  kolumnie C mam formułe  =JEŻELI(A1<$B$1;($B$1-A1);""Chciałbym, aby gdy pojawi się wartość w komórce z kolumny C uruchomiony został Magbox z informacją.

Za pomysły z góry dziękuję

01-05-2005 16:15
Pokaż profil toja  Wyślij email do toja   
Jarek Grzybowski




Typ: neutral
Postów: 11
Zarejestrowany: Apr 2005
Propozycja

Taki kod umieścić w oknie Code dla arkusza, w którym ma być powiadomienie o zmianie wartości komórki w kolumnie "C":

Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Column = 3 Then
            MsgBox "Wprowadzono wartość: " & .Value & " w komórce o adresie: " & .Address, vbInformation + vbOKOnly + vbApplicationModal, "Informacja o zmienionej wartości"
        End If
    End With
End Sub

Jeżeli ktoś chce aby takie powiadomienie o zmienionej wartości pokazywało się dla każdej komórki arkusza (tj. niezależnie od kolumny) powinien usunąć dwie następujące linijki kodu:
If .Column = 3 Then
End If

Powodzenia


_____________________________________________
Pozdrawiam
Jarek

03-05-2005 17:46
Pokaż profil Jarek Grzybowski  Wyślij email do Jarek Grzybowski   
Jarek Grzybowski




Typ: neutral
Postów: 11
Zarejestrowany: Apr 2005
Propozycja poprawka

Instrukcje pomiędzy "If .Column = 3 Then" oraz "End If" powinny być w jednej linijce kodu (i tak jest), ale po wklejeniu kodu do postu wyszło mi inaczej.
Przepraszam


_____________________________________________
Pozdrawiam
Jarek

03-05-2005 17:50
Pokaż profil Jarek Grzybowski  Wyślij email do Jarek Grzybowski   
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005

Jarku, wszystko jest OK, ale kod ten spelnia swoje zadanie jak wpisze się wartość do komórki w kolumnie C, natomiast jak wartość ta się pojawi w momencie zadzialania formuły to MsgBox jakoś nie chce się ukazać

04-05-2005 03:42
Pokaż profil toja  Wyślij email do toja   
Jarek Grzybowski




Typ: neutral
Postów: 11
Zarejestrowany: Apr 2005
Kolejne podejście

Słusznie (niestety)
Oto kolejna moja propozycja:

Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Column = 1 Then
            MsgBox "Wprowadzono wartość: " & .Value & " w komórce o adresie: " & .Address & ". Komórka " & .Offset(0, 2).Address & _
            " przyjęła wartość: " & .Offset(0, 2).Value, _
            vbInformation + vbOKOnly + vbApplicationModal, "Informacja o zmienionej wartości"
        ElseIf .Column = 2 Then
            MsgBox "Wprowadzono wartość: " & .Value & " w komórce o adresie: " & .Address & ". Komórka " & .Offset(0, 1).Address & _
            " przyjęła wartość: " & .Offset(0, 1).Value, _
            vbInformation + vbOKOnly + vbApplicationModal, "Informacja o zmienionej wartości"
        End If
    End With
End Sub

Ten kod umieśić w miejscu poprzedniego. Jeżeli następi zmiana komórek z kolumny A lub B to makro odczyta jak poprzednio wartość i adres zmienionej komórki oraz poda adres komórki i wartość w kolumnie C w tym samym wierszu (odkreślenia na końcach linii pozwalają na przejście do nowej lini kodu w trakcie polecenia, które powinno być w jednej linii).

Powodzenia


_____________________________________________
Pozdrawiam
Jarek

04-05-2005 19:48
Pokaż profil Jarek Grzybowski  Wyślij email do Jarek Grzybowski   
Jarek Grzybowski




Typ: neutral
Postów: 11
Zarejestrowany: Apr 2005
Znowu kod w poście nie zmieścił mi się

Znowu kod w poście nie zmieścił mi się, dość długie wyszły te MsgBox-y. Teraz powinien wyglądać dużo lepiej i powinien nadawać się do skopiowania bez późniejszych poprawek położenia kodu w liniach:

Private Sub Worksheet_Change(ByVal Target As Range)
    With Target
        If .Column = 1 Then
            MsgBox "Wprowadzono wartość: " & .Value & " w komórce o adresie: " & .Address & ". Komórka " _
            & .Offset(0, 2).Address & " przyjęła wartość: " & .Offset(0, 2).Value, _
            vbInformation + vbOKOnly + vbApplicationModal, "Informacja o zmienionej wartości"
        ElseIf .Column = 2 Then
            MsgBox "Wprowadzono wartość: " & .Value & " w komórce o adresie: " & .Address & ". Komórka " _
            & .Offset(0, 1).Address & " przyjęła wartość: " & .Offset(0, 1).Value, _
            vbInformation + vbOKOnly + vbApplicationModal, "Informacja o zmienionej wartości"
        End If
    End With
End Sub

Przepraszam


_____________________________________________
Pozdrawiam
Jarek

04-05-2005 19:52
Pokaż profil Jarek Grzybowski  Wyślij email do Jarek Grzybowski   
Jarek Grzybowski




Typ: neutral
Postów: 11
Zarejestrowany: Apr 2005
Korekta

Okazało się w korespondencji mailowej, że komórki w kolumnach A i B nie są miejscem wprowadzania wartości przez użytkownika, lecz również zawierają formułu. Użytkownik korzysta z kolumn G i H. Zatem poprawiłem moją ostatnią propozycję. Ponad to dodałem analizę tekstu w komórkach kolumny C. Jeżeli użytkownik skasował albo wpisał zero w kolumnach G i H i to spowodowało, że zero mają również komórki w C, to wówczas MsgBox nie pojawi się:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ccc As String
    With Target
        If .Column = 7 Then
            ccc = .Offset(0, -4).Text
            If ccc = "" Or ccc = "0" Then Exit Sub
            MsgBox "Wprowadzono wartość: " & .Value & " w komórce o adresie: " & .Address & ". Komórka " _
            & .Offset(0, -4).Address & " przyjęła wartość: " & .Offset(0, -4).Value, _
            vbInformation + vbOKOnly + vbApplicationModal, "Informacja o zmienionej wartości"
        ElseIf .Column = 8 Then
            ccc = .Offset(0, -5).Text
            If ccc = "" Or ccc = "0" Then Exit Sub
            MsgBox "Wprowadzono wartość: " & .Value & " w komórce o adresie: " & .Address & ". Komórka " _
            & .Offset(0, -5).Address & " przyjęła wartość: " & .Offset(0, -5).Value, _
            vbInformation + vbOKOnly + vbApplicationModal, "Informacja o zmienionej wartości"
        End If
    End With
End Sub

Powodzenia


_____________________________________________
Pozdrawiam
Jarek

06-05-2005 17:07
Pokaż profil Jarek Grzybowski  Wyślij email do Jarek Grzybowski   
toja




Typ: neutral
Postów: 31
Zarejestrowany: Apr 2005

Dziękuję, bardzo mi pomogłeś
Makro dziala bez uwag

-----------------------------------
Pozdrawiam Marian

14-05-2005 22:41
Pokaż profil toja  Wyślij email do toja   
Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1