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

Pokretanje Macroa upisom teksta u ćeliju

[es] :: Office :: Excel :: Pokretanje Macroa upisom teksta u ćeliju

[ Pregleda: 846 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

shebez
Asistent
Beograd

Član broj: 340359
Poruke: 12
*.dynamic.sbb.rs.



Profil

icon Pokretanje Macroa upisom teksta u ćeliju28.07.2021. u 00:32 - pre 33 meseci
Pozdrav,
Pokušavam da napravim listu fakturisanih usluga.
Jedan red - jedna usluga, prve kolone sadrže podatke o usluzi i jedna kolona je da li je fakturisano. (po defaultu "NE")
Kada promenim u "DA" kako da napravim da mi u sledeće dve kolone automatski dodeli broj fakture i datum fakturisanja odnosno današnji dan?

Ja sam mislio da napravim neki macro ali ne znam kako da ga pokrenem promenom teksta u ćeliji...

tnx
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Pokretanje Macroa upisom teksta u ćeliju28.07.2021. u 07:47 - pre 33 meseci
Pogledaj neki od linkova ovdje
 
Odgovor na temu

shebez
Asistent
Beograd

Član broj: 340359
Poruke: 12
89.216.107.*



Profil

icon Re: Pokretanje Macroa upisom teksta u ćeliju30.07.2021. u 08:45 - pre 33 meseci
Nisam baš uspeo da se snadjem :)
Mislio sam da je jednostavnije, ja kad napravim macro vežem ga uvek za istu ćeliju.
Ako je neko voljan da pogleda. Suština je da kad promenim status iz fakturisan "NE" u "DA" da mi dodeli broj fakture i ispiše današnji dan.

Tnx. Poz.
http://www.elitesecurity.org/poruka/fajluzporuku/4006501
Prikačeni fajlovi
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Pokretanje Macroa upisom teksta u ćeliju30.07.2021. u 11:42 - pre 33 meseci
Na internetu postoji dosta primjera za automatsko unošenje datuma, a vjerujem i na ES-u ih ima.
Evo nekih VBA varijanti. (Da se odmah razumijemo, nisam VBA programer ali sam nešto isprobavao pa tako da sve ovo uznmeš sa rezervom.)

OPCIJA 1

U 'C2' ćeliju postavi formulu pa kopiraj dolje do zadnjeg reda (ova formula kao rezultat daje redni broj fakture). Ako želiš ovo sačuvati trajno tada u nekom momentu sa Copy/Paste -> Paste Special -> Values konvertiraš sve u tekstualni oblik bez formule.
Code:
=IF(B2="DA";"2021/"&ROW(A1);"")

U VBE u Code window na Sheet1 kopiraj ovu VBA macro naredbu
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column <> 2 Then Exit Sub 'spriječava vba error ako se radnja ne odnosi na B stupac
        If Target.Column = 2 And Not IsNumeric(Target) Then 'odnosi sena text u B stupcu
            Range(Target.Address).Offset(0, 2) = Now() 'unosi datum i vrijeme u 2 stupca desno od B stupca nakon promjene podatka u B stupcu
        ElseIf Target.Column = 2 And Target = "" Then 'ako je ćelija u B stupcu prazna
            Range(Target.Address).Offset(0, 2) = "" 'ne vrši se unos ako je u B stupcu prazna ćelija
    End If
            '!!!!!!!!!!ovaj dio VBA treba doraditi da ne baguje ako vršiš kopiranje Validation List u B stupcu po sistemu drad-and-drop!!!!!!!
            If Target.Column = 2 And Target = "Ne" Then 'ako ćelija u B stupcu sadrži riječ Ne
                Range(Target.Address).Offset(0, 2) = "" 'ne vrši se unos ako je u B stupcu riječ Ne
            ElseIf Target.Column = 2 And Target = "Ne" Then 'ako ćelija u B stupcu sadrži riječ Ne
                 Range(Target.Address).Offset(0, 2) = Range(Target.Address).Offset(0, 2).ClearContents 'briše sadržaj ćelije u D stupcu u istom redu
            End If
End Sub

Ovaj VBA macro podržava Validation List i promjenu u B stupcu kao i brisanje sadržaja u istom stupcu (npr ako si pogriješio)
Funkcionira na način da u 'B' stupcu promjenom iz 'NE' u 'DA' automatski se unosi novi broj fakture i današnji datum u 'D' stupcu.
Ako ponovno promijeniš u Ne tada briše datum u D stupcu
Ako obrišeš ćeliju u kojoj se nalazi DA ili NE tada isto briše datum u D stupcu
Cijeli stupac 'C' formatiraj kao 'Date'

OPCIJA 2

U 'A' stupcu unosiš ime i prezime. Izborom DA u B stupcu preko formule prikazuje se broj fakture
Prvi korak je upis imena i prezimena. Automatski se unosi datum u 'D' stupcu.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count <> 1 Then Exit Sub 
    If Target.Column <> 1 Then Exit Sub
    Target.Offset(0, 3) = Date ' & " " & Time 'ako želiš dodati i vrijeme ukloni prvi apostrof
End Sub

Drugi korak je izbor 'DA' iz Validation List u 'B' stupcu
S obzirom na formulu automatski će se prikazati broj fakture uvećan za 1 u odnosu na broj iznad.

OPCIJA 3

Ako želiš u jednom potezu prikazati broj fakture i datum, tada probaj ovaj VBA macro
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("$B$2:$B$100")) Is Nothing Then
        Target.Offset(0, 2).FormulaR1C1 = Now() 
    End If
End Sub

Ovaj VBA macro podržava Validation List, dakle promjenom u 'B'stupcu bilo da mijenjaš 'NE u DA' ili 'DA da NE' u oba slučaja će se prikazati današnji datum ali ne i broj fakture (ovo može može biti problematično?).

Naravno, VBA programer može isprogramirati da se također automatski pomoću macroa doda i broj fakture (ali za to moraš od nekog drugog tražiti pomoć jer ja nemam toliko vremena istraživati).

I na kraju spremi Workbook u formatu *.xlsm (*.xls)
Sve u svemu ovo su neki primjeri koje bi ti možda morao doraditi s obzirom na tvoju workbook i organizaciju podataka.
LP Ivan
Prikačeni fajlovi
 
Odgovor na temu

shebez
Asistent
Beograd

Član broj: 340359
Poruke: 12
*.dynamic.sbb.rs.



Profil

icon Re: Pokretanje Macroa upisom teksta u ćeliju30.07.2021. u 15:16 - pre 33 meseci
Kralju!!!

TNX
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: Pokretanje Macroa upisom teksta u ćeliju30.07.2021. u 15:21 - pre 33 meseci
Ako želiš konvertirati brojeve fakture i datume u tekstualnu/brojevnu vrijednost tj. Izbjeći formule prilikom svakog unosa evo još jedna varijanta.
(Kao što sam rekao VBA treba doraditi)
LP
Prikačeni fajlovi
 
Odgovor na temu

shebez
Asistent
Beograd

Član broj: 340359
Poruke: 12
*.dynamic.sbb.rs.



Profil

icon Re: Pokretanje Macroa upisom teksta u ćeliju28.01.2022. u 23:09 - pre 27 meseci
Pozdrav,
Trebam da unapredim tabelu, Imam dva pitanja:
1. Za automatski upis datuma prilikom promene koristio sam sledeci kod

Citat:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub 'spriječava vba error ako se radnja ne odnosi na B stupac
If Target.Column = 2 And Not IsNumeric(Target) Then 'odnosi sena text u B stupcu
Range(Target.Address).Offset(0, 2) = Now() 'unosi datum i vrijeme u 2 stupca desno od B stupca nakon promjene podatka u B stupcu
ElseIf Target.Column = 2 And Target = "" Then 'ako je ćelija u B stupcu prazna
Range(Target.Address).Offset(0, 2) = "" 'ne vrši se unos ako je u B stupcu prazna ćelija
End If
'!!!!!!!!!!ovaj dio VBA treba doraditi da ne baguje ako vršiš kopiranje Validation List u B stupcu po sistemu drad-and-drop!!!!!!!
If Target.Column = 2 And Target = "Ne" Then 'ako ćelija u B stupcu sadrži riječ Ne
Range(Target.Address).Offset(0, 2) = "" 'ne vrši se unos ako je u B stupcu riječ Ne
ElseIf Target.Column = 2 And Target = "Ne" Then 'ako ćelija u B stupcu sadrži riječ Ne
Range(Target.Address).Offset(0, 2) = Range(Target.Address).Offset(0, 2).ClearContents 'briše sadržaj ćelije u D stupcu u istom redu
End If
End Sub


Ovaj kod posmatra svaku promenu u koloni 2, kako da ogranicim da ne posmatra celu kolonu? Da za prvih nekoliko redova ne povlaci code (B1, B2, B3 u pitanju je zaglavlje).
Pokusao sam da umesto Column upotrebim Range ali mi nesto nije poslo za rukom. Ima li neko resenje?

2. Mozda drugo pitanje iskljuci prvo :)
U tabeli koju sam postavio na Microsoft teams ne rade macroi, ima li neko resenje da gore navedena komanda se postavi bez macroa sa upisom obicne formule.
Ja sam pokusao sa =IF(B4="Da";NOW();"") Stavio sam funkciu IF sa funkciom NOW i sve funkcionise dok se tabela ne zatvori, ali kada se tabela ponovo pokrene prikazana vrednost nije ona kada je menjana celija B3 vec trenutak ponovnog otvaranja fajla.

Ako neko ima resenje kako ovo da uradim bez coda samo sa funkciom extra, ili bar da popravim postojeci kod da ne posmatra celu kolonu vec samo zadati opseg celija unutar jedne kolone.

Tnx.
 
Odgovor na temu

[es] :: Office :: Excel :: Pokretanje Macroa upisom teksta u ćeliju

[ Pregleda: 846 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

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