ďťż

95759_1

Lemur zaprasza

Strona: [  >  ]  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



 
  














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



 
  














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



 
  














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



 
  














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



 
  














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



 
  














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



 
  














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



 
  













Wszystkich odpowiedzi: 7 :: Maxymalnie na stronę: 20










Strona: [  >  ]  z  1     
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza