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: 1544
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-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    406
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43
  • PrestaShop 1.7.7.4 - úprava blogu
    od Bublajs28 » 10 kvě 2023 10:59 » v Programování a tvorba webu
    2
    1886
    od lamin_cz Zobrazit poslední příspěvek
    13 kvě 2023 18:18
  • Wodpress úprava šablony
    od teichmann.ondrej » 26 zář 2023 15:45 » v Programování a tvorba webu
    6
    2297
    od teichmann.ondrej Zobrazit poslední příspěvek
    27 zář 2023 12:21
  • WIN7 nefunguje uprava jasu
    od Bary-Jan » 08 říj 2023 14:02 » v Windows 11, 10, 8...
    16
    6000
    od Bary-Jan Zobrazit poslední příspěvek
    08 lis 2023 09:53
  • Excel a OneDrive
    od sginfo » 11 zář 2023 15:28 » v Kancelářské balíky
    16
    6311
    od mirekol Zobrazit poslední příspěvek
    20 říj 2023 08: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 2 hosti