Přidat otázku mezi oblíbené Zasílat nové odpovědi e-mailem Excel - Makro pro vložení aktuálního data při změně řádku

Dobrý den,

Řekněme, že mám makro pro vkládání aktuální data na konkrétní řádek při změny hodnoty

 Private Sub Worksheet_Change(ByVal Target As Range)
  Select Case Target.Row
    Case 1
      'Ignore first row
      Exit Sub
  End Select
  Select Case Target.Column
    Case 3
      'Ignore column C
      Exit Sub
  End Select
  Application.EnableEvents = False
  Range("C" & Target.Row) = Date
  Application.EnableEvents = True
End Sub 

Funguje správně, až na jeden problém, že je fixovaný na sloupec C. Pokud teda přidám sloupec, tak to bude stále vkládat do C, což je špatně.

[]

To by však šlo vyřešit tím, že by výběr sloupce nebyl statický, ale udělal bych to pomocí vyhledání "Date" v prvním řádku. A při každém přidání/odebrání sloupce by se to opětovně zavolalo.

Jak to, prosím Vás, upravím, aby to tak fungovalo?

Děkuji

PS. Samozřejmě je tu stále to, co má vlastně vyhledávat, ale to považuji za naprostý detail, kdy vyhledávané slovo snadno změním.

Předmět Autor Datum
robert13
MichalDM
MichalDM
robert13

Na ten svoj kód zabudni a miesto neho daj tento:

 Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo koniec
    Stlpec = WorksheetFunction.Match("Date", Rows("1:1"), 0)
    On Error GoTo 0
    If Target.Row <> 1 And Target.Column <> Stlpec Then
        Application.EnableEvents = False
        Cells(Target.Row, Stlpec) = Date
        Application.EnableEvents = True
    End If
    Exit Sub
koniec:
    MsgBox "Neexistuje stlpec so zahlavim ""Date""", vbExclamation, "Chyba"
End Sub 

Dobrý den,

Chtěl bych obnovit tenhle dotaz, poněvadž až teď jsem zjistil, že makro vykazuje jednu chybu. Pokud kliknu na buňku a dám jednoduše ENTER, čímž se nic nezmění, ale makro to přesto bere jako změnu a aktualizuje datum.

Psát tam, aby ignoroval klávesu ENTER je asi blbost, lepší by bylo, aby porovnal starou a novou hodnotu a nastavil datum pouze při neshodě.

Šlo by to upravit, prosím?

Děkuji

Nnnno tak... upresnime si...

Ak klikneš na bunku a dáš ENTER, určite sa dátum neprepíše.
Pravdepodobne myslíš dvojklikna bunku, čo je vstupom do jej editačného režimu. Takýto vstup samozrejme predpokladá, že budeš hodnotu opravovať...
Ak budeš skutočne opravovať, tak asi zmena dátumu na aktuálny je v poriadku. Veď potrebuješ vedieť, kedy došlo ku zmene údaja, nie?
Ak si sa pomýlil a chceš ponechať pôvodnú hodnotu, tak predsa nestláčaj ENTER ale ESCAPE.

Mimochodom, pravdepodobne si nezaregistroval, že som doriešil aj tvoj iný dotaz: skrývanie stĺpcov pri filtrovaní... Dal som si totiž tú prácu, aby som ti pomohol a zaoberal som sa tým ešte v ďalších riešeniach, ale už ťa to nezaujímalo. Takže sem ani nebudem dávať link na ten tvoj dotaz, tentokrát si daj ty tú prácu s jeho nájdením i nájdením príslušnej odpovede s riešením...

A vôbec... človek po tom ani nevie, či ťa vôbec ešte zaujíma riešenie i tohto dotazu a či sa tým má vôbec zaoberať...

Zpět do poradny Odpovědět na původní otázku Nahoru

Build a Mobile Site
View Site in Mobile | Classic
Share by: