< návrat zpět

MS Excel


Téma: EXCEL VLOŽIT DNEŠNÍ DA rss

Zaslal/a 26.10.2011 10:27

Ahoj lidičky, mohl by někdo poradit začátečníkovi, jak stvořit v excelu toto:
mám v buňce A1 číslo, zvětšuje se postupně o 1 (vkládáno ručně) a já bych potřeboval, aby se když to přepíšu na 2 v buňce C1 napsal dnešní datum. Předem děkuji za pomoc

Zaslat odpověď >

#006258
avatar
zkus tam napsat tohle - nezkoušel jsem, ale mělo by to fakat = =KDYŽ(B1=2;DNES();"")citovat
#006259
avatar
funguje to, ale já potřebuju aby se to datum změnilo na dnešní kdykoli přepíšu číslo v buňce A1 - ono postupně bude nabývat hodnot 1,2,3,4, ...citovat
#006261
avatar
Do listu, ktorého sa to týka, vlož kód:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" And IsNumeric(Range("A1")) Then _
If Range("A1") = WorksheetFunction.Round(Range("A1"), 0) And Range("A1") > 0 Then _
Range("C1") = Format(WorksheetFunction.RoundDown(Now, 0), "DD.MM.YY")
End Sub
citovat
#006295
avatar
se mnou to bude těžší, tak prosím o shovívavost - jak vložím kód? Mám Excel 2003citovat
#006296
avatar
Otvor si súbor, do ktorého potrebuješ dostať ten kód. Otvor si editor VBA (Alt+F11). V okne projektov (Ctrl+R) si v "pavúkovi" nájdi súbor, do ktorého chceš dostať kód. Klikni dvojklikom na list, ktorého sa to týka. Zobrazí sa Ti prázdne okno. Doňho nakopíruj ten kód, ktorý som uvádzal. Ulož (Ctrl+S). Malo by to fungovať...citovat
#006297
avatar
DĚKUJU, fachčí to. Ještě 1 dotaz - jak to změnit, aby to fungovalo pro A1 - A999 ?citovat
#006298
avatar
Tipujem, že asi chceš, aby sa Ti dopísalo dátum do toho riadku, v ktorom zapisuješ hodnotu v stĺpci A, nie vždy do riadku jedna. V takom prípade je kód tuná:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Oblast As Range, Isect As Range
Set Oblast = Range("A1:A999")
Set Isect = Application.Intersect(Target, Oblast)
If Isect Is Nothing Then
ElseIf IsNumeric(Target) Then _
If Target = WorksheetFunction.Round(Target, 0) And Target > 0 Then _
Cells(Target.Row, 3) = Format(WorksheetFunction.RoundDown(Now, 0), "DD.MM.YY")
End If
End Sub

Pokiaľ by si predsa len chcel, aby sa vždy aktualizoval dátum iba v jednej bunke, tak stačí časť kódu
Cells(Target.Row, 3) = Format(WorksheetFunction.RoundDown(Now, 0), "DD.MM.YY")
nahradiť týmto:
Cells(1, 3) = Format(WorksheetFunction.RoundDown(Now, 0), "DD.MM.YY")
Po tom, čo kód nakopíruješ do projektu, zmaž z neho prázdne riadky (aspoň v oblastiach IF - END IF), neviem prísť na to, ako zabrániť tomu, aby sa na týchto stránkach do kódu nepridávali a robia v tom paseku, pokiaľ prázdne riadky neodmažeš, tak môže dochádzať k chybám v behu makra.citovat
#006309
avatar
Mně se to nakopirovalo rovnou s tím, že prázdné řádky tam nejsou a funguje to super. Něco jsem se na tvém příkladu naučil, ale stejně bych tě ještě poprosil o pomoc s finální verzí.
- v buňkách s datumem by se mělo objevit dnešní datum, ale pak by se mělo změnit až při dalším zápisu, tzn. změním např. 4 na 5 a v buňce datum se objeví aktuální datum, které tam zůstane dokud nezměním 5 na 6
- sloupečky číslo jsou N - datum P, R - T, V - X, Z - AB, AD - AF, AH - AJ, AK - AM, AN - AP - vic už jich nebude
- v B2 mám aktuální datum a když je datum v buňce např.P1899 větší než 183(půl roku), tak se ta buňka podbarví zeleně
Je to reálný, aby to tak fungovalo?citovat
#006313
avatar
Ak potrebuješ testovať zmenu buniek v nespojitej oblasti a na jej základe meniť dátum v bunke B2, tak v časti kódu
Set Oblast = Range("A1:A999")
dopň metódu Intersect (z ďalšieho riadku) metódou Union, t.j. otestuj, či prienik Target a zjednotenie oblasti buniek, oblasť ktorých chceš takto otestovať, dáva neprázdnu množinu. Zmenu vzhľadu buniek na základe zmeny nadobúdanej hodnoty rieš prostredníctvom podmieneného formátovania.
Takže odpoveď na Tvoje otázky znie: Áno, oboje je možné a pomerne jednoduché. Je ale treba presne definovať, čo potrebuješ, Tvoj popis je pomerne vágny a ja môžem len hádať, čo presne vlastne chceš. Naštuduj si metódu Union v kontextovej nápovede k VBA, malo by Ti to dať presnú odpoveď na Tvoju otázku ohľadom problému vo VBA, riešenie tej druhej otázky ohľadom podmieneného formátovania je už naozaj veľmi jednoduché.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse