IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
MadBaz
Člen
Avatar
MadBaz:23.8.2017 13:37

Dobrý den, mám takový problém. Mám velkou tabulku v Excelu, která se importuje do DB pomoci skriptu. Importuje se řádek po řádku, nehledě na to, že 90% řádku nebylo upraveno - je zbytečné je importovat. Napadlo mě, že by se dalo importovat jen změněné řádky, tím by se import mnohem zrychlil. Našel sem na webu jak nastavit pomoci makra, aby se při změně buněk A1 až X1 na prvním řádku v buňce Y1 propsalo, že řádek byl změněn, teď bych to potřeboval rozšířit na cely sešit. To znamená, že při úpravě buněk A2 až X2 se informace o změně propsala do buňky Y2, pří úpravě buněk A3 až X3 se změna propsala do Y3 atd. Nevíte někdo, jak to můžu udělat?
Přikladam kod, ktery teď mám... Děkuji za pomoc

Private Sub Worksheet_Chan­ge(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Range("A1:X1")
If Not Application.In­tersect(KeyCe­lls, Range(Target.Ad­dress)) _
Is Nothing Then
Range("Y1") = "Řadek byl změněn"
End If

Set KeyCells = Range("A2:X2")
If Not Application.In­tersect(KeyCe­lls, Range(Target.Ad­dress)) _
Is Nothing Then
Range("Y2") = "Řadek byl změněn"
End If

Set KeyCells = Range("A3:X3")
If Not Application.In­tersect(KeyCe­lls, Range(Target.Ad­dress)) _
Is Nothing Then
Range("Y3") = "Řadek byl změněn"
End If
End Sub

 
Odpovědět
23.8.2017 13:37
Avatar
Tomáš Vitek:23.8.2017 21:09

Dobrý den,
Visual Basicu v MS Excelu jsem se nikdy nijak zvlášť nevěnoval, ale co tak použít klasický for cyklus?
Tedy:

For i = 1 To pocetRadkuVTabulce
        Set KeyCells = Range("A" & i & ":X" & i)
        If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
                Range("Y" & i) = "Řadek byl změněn"
        End If
Next
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
23.8.2017 21:09
Avatar
MadBaz
Člen
Avatar
MadBaz:24.8.2017 8:29

Diky za pomoc. Vše perfektně funguje...

 
Nahoru Odpovědět
24.8.2017 8:29
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.