radioblaster
28.04.10,20:38
zdravim,

potreboval by som pomoct s jednym makrom, ktore by robilo jednu vec. A to ze ked do stlpca "B" napisem cislo do stlpca "A" sa napise staticky datum v ktorom boli tieto cisla zapisane a ked cislo zo stlpca 2 vymazem vymaze sa aj datum. Skusal som to pomocou funkcie NOW() ale ta mi vzdy vrati aktualny datum.

skusal som aj toto, ale nefunguje to uplne tak ako by som si predstavoval

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
With Cell
If .Column = Range("G:G").Column Then
Cells(.Row, "F").Value = Int(Now)
End If
End With
Next Cell
End Sub

Vdaka
vbnk
28.04.10,18:58
Private Sub Workbook_Open()
Dim stamp As String
stamp = Now()
If Range("a1") = "" Then Range("a1") = stamp Else Exit Sub

End Sub
marjankaj
29.04.10,07:07
zdravim,

potreboval by som pomoct s jednym makrom, ktore by robilo jednu vec. A to ze ked do stlpca "B" napisem cislo do stlpca "A" sa napise staticky datum v ktorom boli tieto cisla zapisane a ked cislo zo stlpca 2 vymazem vymaze sa aj datum. Skusal som to pomocou funkcie NOW() ale ta mi vzdy vrati aktualny datum.

skusal som aj toto, ale nefunguje to uplne tak ako by som si predstavoval


Vdaka

Aké číslo to zapíšeš do stĺpca "A"? (napríklad môže byť aj 3,1415295)
A čo znamená "statický dátum"? Niečo zo statiky ovládam, ale dátum?:eek:
PaloPa
29.04.10,07:21
zdravim,

potreboval by som pomoct s jednym makrom, ktore by robilo jednu vec. A to ze ked do stlpca "B" napisem cislo do stlpca "A" sa napise staticky datum v ktorom boli tieto cisla zapisane a ked cislo zo stlpca 2 vymazem vymaze sa aj datum. Skusal som to pomocou funkcie NOW() ale ta mi vzdy vrati aktualny datum.

skusal som aj toto, ale nefunguje to uplne tak ako by som si predstavoval


Vdaka

Ak nie je stĺpec A formátovaný ako "General" alebo "Datum", môžeš použiť fn. Format, napr. takto:



Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
With Cell
If .Column = Columns("B").Column Then
Cell.Offset(, -1).Value = IIf(Cell.Text = "", "", Format(Now, "yyyy.mm.dd"))
End If
End With
Next Cell
End Sub

Palo

TIP:
Možno trochu iný pohľad na vec. XL si dokáže každú zmenu v bunkách kontrolovať i sám, stačí zapnúť zdieľanie zošita:

Nástroje / Zdieľať zošit ...

A každá zmena sa dá vygenerovať do prehľadného listu História
Nástroje / Sledovať zmeny / Zvýrazniť zmeny ...

Viď obrázok.

Pozor, v zdielanom zošite nie sú povolené niektoré funkčnosti.

P.
marjankaj
29.04.10,07:44
Ak nie je stĺpec A formátovaný ako "General" alebo "Datum", môžeš použiť fn. Format, napr. takto:



Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
With Cell
If .Column = Columns("B").Column Then
Cell.Offset(, -1).Value = IIf(Cell.Text = "", "", Format(Now, "yyyy.mm.dd"))
End If
End With
Next Cell
End Sub

Palo

Pali aj tebe tam dáva stále aktuálny dátum. Alebo som nepochopil zadanie?

Stačila by aj funkcia do bunky A1 =IF(B1="";"";today()). Ak tam má byť nejaký iný dátum, tak to musí zadávateľ určiť bližšie.
Chobot
29.04.10,07:50
zdravim,

potreboval by som pomoct s jednym makrom, ktore by robilo jednu vec. A to ze ked do stlpca "B" napisem cislo do stlpca "A" sa napise staticky datum v ktorom boli tieto cisla zapisane a ked cislo zo stlpca 2 vymazem vymaze sa aj datum. Skusal som to pomocou funkcie NOW() ale ta mi vzdy vrati aktualny datum.

skusal som aj toto, ale nefunguje to uplne tak ako by som si predstavoval


Vdaka

Možno riešime niečo, čo sa dá vyriešiť aj inou cestou. Prosím ťa, upresni, na aké účely má byť v tom druhom stĺpci ten dátum zadania čisla. Je to pre evidenciu, čo sa v tabuľke kedy menilo? Alebo to má aj nejaký iný význam.

Lebo Excel podporuje jednu vec, a to je sledovanie zmien v dokumente. Robí sa to nasledovne:

- vytvoríš dokument
- v menu Posúdiť (Excel 2007) vyberieš možnosť Zdieľať zošit
- v novom dialógovom okne zaškrtneš okienko "Povoliť zmeny viacerým používateľom súčasne
- na druhej záložke Spresniť zadáš Sledovať zmeny a do počtu dní dáš napr. 360

Potom všetky zmeny, ktoré v dokumente spraví ktokoľvek, budú evidované. Stačí, keď znovu v menu Posúdiť klikneš na Sledovanie zmien a klikneš na Zvýrazniť zmeny > Všetko > Všetci a dáš to na nový hárok. Potom v novom hárku uvidíš každú zmenu, ešte aj meno toho, kto tú zmenu urobil.

Možno ti toto nahradí to, čo chceš dosiahnuť. Ak nie, tak treba hľadať iné možnosti.

Pozri si priložený dokument, skús tam urobiť nejaké zmeny a potom si daj zobraziť tie zmeny podľa hore popísaného návodu. (dokument si musíš uložiť u teba na disk)
PaloPa
29.04.10,07:53
Pali aj tebe tam dáva stále aktuálny dátum. Alebo som nepochopil zadanie?

Podľa mňa je logické, že tam dá aktuálny dátum a čas v okamihu, keď bola bunka zmenená, t.j. fn NOW.

Lepšie by to bolo vidieť, ak by tam bola i info o čase:
Format(Now, "yyyy.mm.dd HH:MM:SS")

P.
marjankaj
29.04.10,08:22
Podľa mňa je logické, že tam dá aktuálny dátum a čas v okamihu, keď bola bunka zmenená, t.j. fn NOW.

Lepšie by to bolo vidieť, ak by tam bola i info o čase:
Format(Now, "yyyy.mm.dd HH:MM:SS")

P.


No podľa toho, čo hovoríš ty aj chobot to dáva zmysel. Len to praktické využitie. Že by SIS? :eek:
radioblaster
29.04.10,09:20
Zdravim,

staticky datum je taky ktory sa mi po otvoreni zositu neprepocita na aktualny ale po otvoreni zostane jeho hodnota nezmena napr 1-1-2010

Zdielat zosit tuto funkciu mam sedu zrejme z dovodu ze v zosite su pouzite tabulky

ten "staticky datum" je tam z dovodu aby som vedel kedy sa zacalo s balenim vyrobkov.

mozno vam viac pomoze prilozeny subor
PaloPa
29.04.10,09:29
Stačila by aj funkcia do bunky A1 =IF(B1="";"";today()). Ak tam má byť nejaký iný dátum, tak to musí zadávateľ určiť bližšie.

Vzorcom to memôžeš riešiť, to by tam bol vždy práve aktuálny dátum pre všetky vyplnené bunky v B. V stlpci A musí byť hodnota.
V tom prípade iba makrom, alebo manuálne (akt.dátum skratka - CTRL + ;)

p.
marjankaj
29.04.10,09:39
Zdravim,

staticky datum je taky ktory sa mi po otvoreni zositu neprepocita na aktualny ale po otvoreni zostane jeho hodnota nezmena napr 1-1-2010

Zdielat zosit tuto funkciu mam sedu zrejme z dovodu ze v zosite su pouzite tabulky

ten "staticky datum" je tam z dovodu aby som vedel kedy sa zacalo s balenim vyrobkov.

mozno vam viac pomoze prilozeny subor

Už iba taká poznámočka. S balením výrobkov sa začne, až keď ty to naťukáš do tej bunky?:rolleyes: Veď tam ten dátum môžeš uviesť aj priamo.
A makro ti už vyriešili.
radioblaster
29.04.10,13:31
v rychlosti som si riesenie ani nevsimol..

Vdaka!