Makro: namesto konstante je lahko variabla ?

Pomoč pri delu z MS Excelom
Odgovori
bilioldi
Prispevkov: 10
Pridružen: Ne Apr 10, 2016 11:08 am

Makro: namesto konstante je lahko variabla ?

Odgovor Napisal/-a bilioldi »

Pozdrav

Z urejanjem makrov nimam dosti izkušenj, pa me zanima če je sploh MOŽNO rešiti naslednjo zadevo.
Makro sem posnel in ga povezal na en gumb. Na koncu makra imam eno vrstico s konstanto za nastavitev v katerem polju se naj kazalec nastavi.
Podatki so tedenski in zdaj vsak teden pred vpisom podatkov v makru popravim konstanto x+7 (pač tedenski podatki zato +7.
To načeloma ni nek problem, ampak če se da vrednost konstante nekako spremeniti, imam lahko avtomatski vpis podatkov (tedenskih) v tabelo.

Če bi namesto vsebine "V564" imel variablo(izračunano), bi lahko še dodal makro za special paste: Values & Number Formatting (A) in bi imel podatke za prave dneve v tabeli, potem bi se v makru vrnil na list, kjer sem podatke vnašal. Za naslednji teden bi po istem postopku imel podatke za naslednjih 7 dni. Podatki so dnevni, en record v tabeli en dan.
Variablo lahko izračunam, ker vem za kateri ISO KT so podatki.

Range("V564").Select

Macro:
Sub KopirajSume()
'
' KopirajSume Macro
' Kopira tedenske podatke ZA VSAK TEDEN VREDNOST V ZADNJI VRSTICI POVEČAJ ZA 7(PAČ 7 DNI)
'

'
Range("B60:J60").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("DnevneSume").Select
Range("V564").Select
End Sub

Vnaprej se zahvaljujem za kak konstruktiven odgovor.

LP bilioldi
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Makro: namesto konstante je lahko variabla ?

Odgovor Napisal/-a admin »

Pozdravljeni,

Moram priznati, da vprašanja ne razumem čisto natančno, vendar je odgovor v vsakem primeru pozitiven. Če znate izračunati vrstico, potem v makru pač ne potrebujete konstante, temveč lahko vrstico pač izračunate.

Najprej uporabite drugačen dostop do celic. Celico lahko opišete kot presečišče vrstice in kolone in zato je V564 pravzaprev presečišče 564-te vrstice in 22-te kolone (V je 22-ta kolona), zato je v VBA sledeč zapis enakovreden:

Koda: Izberi vse

  Range("V564").Select

  Cells(564, 22).select
Glede na dejstvo, da pravite, da znate izračunati pravilno vrstico, je potem makro pač sledeč:

Koda: Izberi vse

  ' ...
  ActiveWindow.ScrollWorkbookTabs Sheets:=1
  Sheets("DnevneSume").Select

  dim vrstica as long
  vrstica = (vaš izračun za vrstico)

  Cells(vrstica, 22).Select
lp,
Matjaž Prtenjak
Administrator
bilioldi
Prispevkov: 10
Pridružen: Ne Apr 10, 2016 11:08 am

Re: Makro: namesto konstante je lahko variabla ?

Odgovor Napisal/-a bilioldi »

Pozdrav

Super hvala za hiter odgovor, še bolj pa za kodo.
Bom takoj brobal :D .
Izračun vrstice pa bo na osnovi datuma dd.mm.llll (pač prvi ponedeljek v tednu), ne pa na ISO KT(prvi dan-razlog,ko je prehod leta, so lahko težave).

LP bilioldi
Odgovori