Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku

[es] :: Office :: Excel :: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku

[ Pregleda: 2629 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku06.11.2014. u 17:50 - pre 115 meseci
Nasao sam neki nacin koji funkcionise, sa nekom intersect i target funkcijom, ali to mi funkcionise samo ako rucno unesem bas u tu celiju rezultat.

Meni treba sledece:

Imam kolonu A i B.

Kolona A je prazna, kolona B je neka formula koja vlookup-om po kriterijumu iz kolone A trazi neki rezultat sa nekog drugog sheet-a.
Kada unesem u neku celiju u koloni A neku vrednost, a rezultat u koloni B bude 0, tada treba da dobijem poruku u msgbox "Šifra ne postoji, molim proverite ponovo".

Ako mora neka petlja koja bi mozda usporila unos, nije mi bitno da bude cela kolona. Moze recimo od B2 do B100.

Guglam vec sat vremena, ne nalazim nikakvo resenje
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku07.11.2014. u 06:44 - pre 115 meseci
Resih nekako sa ovim
Code:

Private Sub Worksheet_Change()
Dim celija As Integer
Dim i As Integer
 i = 2
 celija = Cells(i, 3)
Do Until Cells(i, 1).Value = ""
   If (celija = 0) Then
           MsgBox "Šifra ne postoji u bazi. Proverite još jednom!"
  Else
  End If
      
    i = i + 1
    Loop
End Sub


Verujem da postoji neko pismenije rešenje, ali i ovo za sada funkcioniše



edit:
Sad me zeza nešto, ne znam šta treba da stoji gore u zagradicama :)

Dobijam poruku
Citat:
Compile error:
Procedure declaration does not match description of event or procedure having the same name


editedit
Ovo mi konacno radi super
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celija As String
Dim i As Integer
i = 2
 
Do Until Cells(i, 1).Value = ""
   celija = Cells(i, 8).Value
   If (celija = "0") Then
MsgBox "Šifra ne postoji u bazi. Proverite još jednom!"
Else
End If
      
i = i + 1
Loop
End Sub


Al se ispricah lepo sam sa sobom :D:D

[Ovu poruku je menjao CoyoteKG dana 07.11.2014. u 08:59 GMT+1]
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku07.11.2014. u 08:18 - pre 115 meseci
Ala si zakomplikovao.

Procedura Worksheet_Change već dobija range koji je promenjen. Ne moraš da kontrolišeš celu kolonu, nego samo promenjenu vrednost

Code:

Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 2 Then
        If Target.Value = 0 Then MsgBox "Ne postoji šifra koju ste uneli!"
    End If
End Sub
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku07.11.2014. u 09:36 - pre 115 meseci
To mi deluje kao sjajno resenje, ali mi ne funkcionise

Sa Target.column, navodim kolonu u kojoj se desila promena?

U tvom slucaju bila bi kolona B?

A u mom slucaju bih morao da promenim code u
Code:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column = 8 Then
        If Target.Value = 0 Then MsgBox "Ne postoji šifra koju ste uneli!"
    End If
End Sub


Ne dobijam nista.

Evo da bude jasnije.

Kada unosim sifre u kolonu A, pomocu vlookup funkcije mi sa nekog drugog sheet-a unosi rezultate u kolonu H.
Ako ja rezultat 0, onda treba da dobijem poruku.



U pocetku kad sam guglao, prvo sto sam dobijao jeste ta target funkcija.
Ali to se svodilo, ako rucno bas u toj koloni promenim celiju na 0, onda dobijem msgbox.
Problem je sto nulu ne unosim rucno, nego nju dobijam formulom u totalno drugoj koloni
Prikačeni fajlovi
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku07.11.2014. u 10:20 - pre 115 meseci
Target nije funkcija nego argument procedure Worksheet_Change tipa Range.

Sada je jasnije, ovo radi:

Code:

Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
     If Cells(Target.Row, 8).Value = 0 Then MsgBox "Ne postoji šifra koju ste uneli!"
End If

End Sub


Dakle, samo kada se promeni vrednost u koloni A (Target.Column=1), ispitati da li se ćelija u istom redu (Target.Row), u koloni H (8) promenila na 0.
 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
212.200.121.*

Sajt: www.gowi.rs


+109 Profil

icon Re: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku07.11.2014. u 10:25 - pre 115 meseci
Target je adresa ćelije koja se menja, dakle u tvom slučaju kolona 1
Da proveriš vrednost u osmoj koloni koristiš

Target.Offset (ColumnOffset:=7)

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
' Poruka ako je nakon unosa u prvoj koloni vrednost u osmoj koloni 0
'
    If Target.Column = 1 Then
        If Target.Offset(ColumnOffset:=7).Value = 0 Then MsgBox "Ne postoji šifra koju ste uneli!"
    End If
End Sub


Inače za proveru šifara već postiji Data Validation opcija u Excelu. Postaviš validaciju u prvoj koloni na List, =sifre (imenovan opseg sa listom šifara) i poruku koju hoćeš
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

djoka_l
Beograd

Član broj: 56075
Poruke: 3453

Jabber: djoka_l


+1462 Profil

icon Re: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku07.11.2014. u 10:32 - pre 115 meseci
Jpeca je bio samo malo sporiji

Ono što još možeš da proveriš je da li je Target.Count > 1, tj. ako promeniš više od jedne ćelije (recimo obrišeš vrednosti cele kolone) da se ne validira dalje vrednost u H koloni...
 
Odgovor na temu

anon70939

Član broj: 70939
Poruke: 2823



+6883 Profil

icon Re: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku07.11.2014. u 12:25 - pre 115 meseci
Sjajno resenje! :)

Sad mi je mnogo smesno ono sto sam ja napravio sa svojim nikakvim znanjem.
 
Odgovor na temu

[es] :: Office :: Excel :: Makro - ako je vrednost neke celije u koloni 0, ispisati msgbox poruku

[ Pregleda: 2629 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.