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

Posle izmene celije kreira se novi sheet i belezi izmenu.?

[es] :: Office :: Excel :: Posle izmene celije kreira se novi sheet i belezi izmenu.?

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vladakru

Član broj: 11515
Poruke: 1218
77.46.185.*



+4 Profil

icon Posle izmene celije kreira se novi sheet i belezi izmenu.?09.02.2009. u 12:58 - pre 185 meseci
Koj makro moze da se upotrebi tako da, kada se napravi izmena u odredjenoj celiji, da se tada automatski kreira novi sheet (ako vec nije kreiran) koji se zove =TODAY() (datum kada je napravljena izmena celije) i da se u odredjenoj celiji kreiranog sheet-a upisuje ta izmena iz prvobitne celije, a ako se vrsi nekoliko izmena iste celije u toku dana da se tada svaka sledeca izmena upisuje u kolonama tog reda gde je celija, da nebi kreirao nekoliko sheet-a za isti datum.?

npr. u sheet1 sabiranjem A1 sa A2 dolazi do promene u A3, tada se otvara novi sheet =TODAY() koji upisuje tu promenu iz sheet1 A3 u sheet =TODAY() A3

znam da je mozda malo zamrseno ali sam pokusao da objasnim naj bolje sto mogu... hvala unapred.
by Vladakru
 
Odgovor na temu

vladakru

Član broj: 11515
Poruke: 1218
77.46.185.*



+4 Profil

icon Re: Posle izmene celije kreira se novi sheet i belezi izmenu.?10.02.2009. u 13:08 - pre 185 meseci
evo pokusao sam ovako, delimicno mi zavrsava posao ali....

Code:

      If Target.Address = "$B$2" Then
    'Pravi novi sheet Izmene
     Sheets.Add.Name = "Izmene"
    'Pravi izmene u "Izmene"
     Sheets("Izmene").Range("B2") = Sheets("Izmene").Range("B2") + Range("B2")
     Sheets("Izmene").Range("D2") = Sheets("Izmene").Range("B2") - Sheets("Izmene").Range("C2")
      End If
      If Target.Address = "$C$2" Then
     Sheets("Izmene").Range("C2") = Sheets("Izmene").Range("C2") + Range("C2")
     Sheets("Izmene").Range("D2") = Sheets("Izmene").Range("B2") - Sheets("Izmene").Range("C2")
      End If


kako sada da se promeni ovo Sheets.Add.Name = "Izmene" da mi umesto "Izmene" upise trenutan datum (danas danasnji, sutra sutrasnji... itd) i da ako vec postoji isti datum ne izbacuje gresku vec da koristi taj sheet? Posto sada ovakav kOd prijavljuje gresku posle svake izmene odredjene celije jer sheet pod imenom "Izmene" vec postoji.
by Vladakru
 
Odgovor na temu

bato1986
da

Član broj: 96367
Poruke: 108
*.bratunac.zona.ba.



Profil

icon Re: Posle izmene celije kreira se novi sheet i belezi izmenu.?13.02.2009. u 01:53 - pre 185 meseci
Tvoj problem je sto se u naziv sheet-a ne mogu unjeti sljedeci znakovi (/ \ / : *).Ako ti je datum u ovom formatu "13/2/2008" sheet ga nece moci upotrjebit kao svoje ime jer nije dozvoljen separator "/" ...

Naravno ovo se moze izmjenit u (Control Panel> Regional and Language Options> Customize>Date) i promjenis Date separator umjesto "/" na ("-" ili ".").

Nakon svega ovoga opet nisi u potpunosti rijesio svoj problem jer ti sheet nece dozvolit da pravis isto ime.
Ali evo jednostavnog rjesenja:

Code:


Sub kod()
Dim datum As String
     datum = Application.WorksheetFunction.Text(Now, "dd-mm-yy hh-mm-ss")
     Sheets.Add.Name = datum
End Sub



Jedina greska je ako budes pokusao da za jednu sekundu napravis dva Sheet,ali onda upotrijebi stotinke :)


Ako ne počneš, nećeš ni završitit!!!
 
Odgovor na temu

vladakru

Član broj: 11515
Poruke: 1218
79.101.134.*



+4 Profil

icon Re: Posle izmene celije kreira se novi sheet i belezi izmenu.?13.02.2009. u 09:37 - pre 185 meseci
evo dodao sam ovaj deo kOd-a i otvaraju se novi sheet-ovi bez problema a kako sada da upotrebim taj sheet radi bezenja izmene u njemu?
mada bi bilo lakse da se za jedan datum otvori jedan sheet a u njemu da se promene evidentiraju po vremenu???

Code:

If Target.Address = "$B$2" Then
    'Pravi novi sheet datum
     Dim datum As String
     datum = Application.WorksheetFunction.Text(Now, "dd-mm-yy hh-mm-ss")
     Sheets.Add.Name = datum
'Poslednja izmena
korisnik = ActiveWorkbook.UserStatus
Cells(6, 7).Value = Now & " " & korisnik(1, 1)

    'Pravi izmene u "Izmene"
     Sheets("Izmene").Range("B2") = Sheets("Izmene").Range("B2") + Range("B2")
     Sheets("Izmene").Range("D2") = Sheets("Izmene").Range("B2") - Sheets("Izmene").Range("C2")
     End If
     If Target.Address = "$C$2" Then
korisnik = ActiveWorkbook.UserStatus
Cells(6, 7).Value = Now & " " & korisnik(1, 1)
     Sheets("Izmene").Range("C2") = Sheets("Izmene").Range("C2") + Range("C2")
     Sheets("Izmene").Range("D2") = Sheets("Izmene").Range("B2") - Sheets("Izmene").Range("C2")
     End If


kako da upotrebim ovo Sheets("ime sheet-a"),Range............. kada ne znam koje ce ime da bude o odredjenom trenutku pravljena sheet-a?
by Vladakru
 
Odgovor na temu

bato1986
da

Član broj: 96367
Poruke: 108
*.bratunac.zona.ba.



Profil

icon Re: Posle izmene celije kreira se novi sheet i belezi izmenu.?13.02.2009. u 17:58 - pre 185 meseci
Nisam te dobro razumio,sta ti uopste zelis.Pa napravis brojac za svaki novi sheet.Svaki sheet ima svoje ime(labelu) i naravno redni broj.Tako da mozes pozivat sheet i sa imenom i sa rednim brojem.
Npr: sheets("sheet1").range("A8") mozes pozvat i kao sheets(1).range("A8")

Evo uradio sam neki slican zadatak o onome sto ti zelis.Znaci kad se doda novi sheet on dobije labelu od trenutnog datuma i vremena a u njegovu "A1" celiju upisuje njegov redni broj.Kasnije moze da napravis petlju da ciklus prodje kroz sve sitove i da provjerava njihovu celiju "A1" i kad nadje odredjeni broj da promjeni nesto.Sve ce ti ovo biti jasnije kad pogledas zadatak.


Ako ne počneš, nećeš ni završitit!!!
Prikačeni fajlovi
 
Odgovor na temu

vladakru

Član broj: 11515
Poruke: 1218
79.101.134.*



+4 Profil

icon Re: Posle izmene celije kreira se novi sheet i belezi izmenu.?14.02.2009. u 09:25 - pre 185 meseci
pogledacu ovaj primer da vidim mogu li da iskoristim kOd.
inace ja hocu ovako: koristim jedan glavni sheet, u njemu se odredjene celije menjaju i hocu da te promene uzrokuju sledece. promenim npr A1 otavara se novi sheet sa datumom a u tom novom sheet-u "datum" kolona npr A na vrhu upisuje vreme izmene. kada se unese sledeca izmena proverava se da li sheet datum vec postoji i ako postoji upisuje vreme na vrhu sledece slobodne kolone, znaci B i tako redom.... a ako ne postoji sheet sa tim datumom onda se otvara novi...

i kako da kada se novootvoreni sheet ne stavlja u prvi plan, vec samo da se otvori a da mi i dalje glavni sheet bude aktivan? cak bi bilo dobro kada bi novootvoreni sheet bio sakriven.
by Vladakru
 
Odgovor na temu

timmy
Jovan Timotijevic

Moderator
Član broj: 37087
Poruke: 634

Sajt: www.e-tim.net


+89 Profil

icon Re: Posle izmene celije kreira se novi sheet i belezi izmenu.?14.02.2009. u 11:44 - pre 185 meseci
Evo i mog doprionosa ;) Sledeci kod ce za svaku izmenu na listu dodati (ako ne postoji) list sa aktuelnim datumom
gde ce u kolonama A B i C redom upisivati koja je celija promenja i koja su stara i nova vrednost.

Code:

Public lOld As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyRange As Range
Dim InRange As Range
Dim tDatum As String
Dim wSheet As Worksheet
Dim tSheet As String
Dim l As Long

    On Error Resume Next
    tSheet = ActiveSheet.Name
    Set MyRange = Range("$A$1:$A$10")
    Set InRange = Application.Intersect(MyRange, Target)
    If Not InRange Is Nothing Then
        tDatum = Format(Date, "dd.mm.yyyy.")
        Set wSheet = Sheets(tDatum)
        'Application.ScreenUpdating = False
        If wSheet Is Nothing Then
            ' Sheet sa danasnjim datumom ne postoji
            Sheets.Add.Name = tDatum
            Sheets(tDatum).Range("A1") = "Cell"
            Sheets(tDatum).Range("B1") = "Old Value"
            Sheets(tDatum).Range("C1") = "New Value"
            Sheets(tDatum).Range("A2") = Target.Address
            Sheets(tDatum).Range("B2") = lOld
            Sheets(tDatum).Range("C2") = Target.Value
        Else
            wSheet.Activate
            ' Sheet da danasnjim datumom postoji
            l = Application.CountA(wSheet.Range("$A:$A"))
            wSheet.Range("A1").Offset(l, 0).Value = Target.Address
            wSheet.Range("A1").Offset(l, 1).Value = lOld
            wSheet.Range("A1").Offset(l, 2).Value = Target.Value
        End If
        Sheets(tSheet).Activate
        'Application.ScreenUpdating = True
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    lOld = Target.Value
End Sub


Pozdrav
 
Odgovor na temu

[es] :: Office :: Excel :: Posle izmene celije kreira se novi sheet i belezi izmenu.?

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

Postavi temu Odgovori

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