Excel - úprava kopírujícího makra

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

bloom
nováček
Příspěvky: 11
Registrován: březen 14
Pohlaví: Muž
Stav:
Offline

Excel - úprava kopírujícího makra

Příspěvekod bloom » 25 bře 2014 14:59

Ahoj, potřeboval bych poradit s makrem, které kopíruje data po změně hodnot na jiný list. To se mi podařilo sestavit, ale potřeboval bych tam ještě doladit pár věcí:
1) Chtěl bych, aby se makro spustilo automaticky ne hned po změně hodnoty v dané buňce, ale aby se spustilo až po opuštění řádku, ve kterém se změněná buňka nachází.
2) V daném souboru je umístěno makro, které po spuštění konkrétního tlačítka přidá do tabulky jeden prázdný řádek. Když se přidá nový řádek, tak se kopíruje jako změněný na nový. Rád bych, aby se přidáním řádku kopírování nespouštělo.

Dosavadní kód přikládám níže:

Kód: Vybrat vše

Private Sub Worksheet_Change(ByVal Target As Range)
       
    ChngRow = Target.Row

SrcRange = "A" & ChngRow & ":K" & ChngRow
Range(SrcRange).Copy
With Sheets("History").Range("A" & Rows.Count).End(xlUp).Offset(1)
    .PasteSpecial Paste:=xlPasteColumnWidths
    .PasteSpecial Paste:=xlPasteValues
End With
    Application.CutCopyMode = False
   
   Worksheets("History").Range("L" & Rows.Count).End(xlUp).Offset(1).Value = Now
Sheets("History").Range("M" & Rows.Count).End(xlUp).Offset(1).Value = Environ("username")

End Sub

Mnohokrát děkuji za jakoukoliv pomoc. bloom

Reklama
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel - úprava kopírujícího makra

Příspěvekod cmuch » 26 bře 2014 05:40

Ad 1)
Vlož do listu z kterého se bude kopírovat.

Kód: Vybrat vše

Dim ChngRow As Integer
Dim ChngCell As Boolean

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim SrcRange As Range
Dim NewRow As Integer

'byla zmena a je vybran jiny radek od editovaneho?
If ChngCell = True And Not ActiveCell.Row = ChngRow Then

Set SrcRange = Range("A" & ChngRow & ":K" & ChngRow)

With Sheets("History")
NewRow = .Cells(Rows.Count, "A").End(xlUp).Row + 1
.Range("A" & NewRow & ":K" & NewRow).Value = SrcRange.Value
.Range("L" & NewRow).Value = Now
.Range("M" & NewRow).Value = Environ("username")
End With
End If

ChngCell = False

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

ChngRow = Target.Row
ChngCell = True
End Sub


Ad 2)
Na začátek makra dej Application.EnableEvents = False a na konec =True


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4828
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Uprava vzorce
    od junis » 27 črc 2024 15:43 » v Kancelářské balíky
    6
    5256
    od junis Zobrazit poslední příspěvek
    02 srp 2024 18:02
  • Úprava pc pro Kingdome Come Deliverance 2
    od barryk10cz » 07 led 2025 17:00 » v Rady s výběrem hw a sestavením PC
    13
    3728
    od Hangli Zobrazit poslední příspěvek
    09 led 2025 22:42
  • Raspberry - M2 disk - uprava a zaloha oddilu Příloha(y)
    od L.L » 18 srp 2024 10:32 » v Problémy s hardwarem
    3
    3715
    od L.L Zobrazit poslední příspěvek
    19 srp 2024 14:39
  • bitmapová grafika - úprava fotografií, retuše, filtry.
    od zuzana3 » 10 kvě 2025 11:32 » v Design a grafické editory
    2
    5123
    od zuzana3 Zobrazit poslední příspěvek
    10 kvě 2025 17:31

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti