Private Sub Worksheet_Change(ByVal Target As Range)
Dim celica As Range
Set celica = Intersect(Target, Range("E:E"))
If celica Is Nothing Then Exit Sub
If (celica.Row < 5) Then Exit Sub
If celica <> "" Then celica.Offset(0, 6) = Now
End Sub
Poskusil sem tega zapisati v modul pa ne deluje na nobenem listi, ko pa je zapisan na list pa normalno deluje.
Ta makro ne deluje če ga zapišete v modul, saj tam seveda ne bo deloval.
To je makro oz. odziv na dogodek in deluje samo če ga zapišete v kodo lista. Ko list kopirate se zraven kopira tudi vsa koda, ki je zadaj pripeta na list.
Ostalo pa ne razumem, kaj počenjate oz. kaj želite početi.
V zvezku imam več listov na katere beležim prihode in odhode določenega orodja.
Ker se na listu, ki ga želim poslati po mailu drugemu uporabniku, nahajajo funkcije kot so Vlookup in macro za zapis datuma, uporabniku ne prikaže vrednosti, ki so prikazane z funkcijo, saj ne more funkcija dostopati do tega mojega zvezka.
Da bi pošiljal še zraven podatke za prikaz pa je datoteka prevelika.
Za to sedaj delam to na sledenj način:
List, ki ga želim poslati najprej kopiram v nov list in vsak stolpec kjer je funkcija kopiram in prepišem z vrednostjo.
Težava nastopi tukaj, ker so določene vrstice skrite jih je potrebno prej razkriti stolpce prepisat in jih nato pravilno skriti po določenem zaporedju.
Ker pa je tudi macro vezan na ta list javi napako zaradi vnosa več podatkov in želi spremeniti čas (česar pa ne želim).
Jaz pa bi želel, da bi lahko ta list poslal po mailu takšen kot je (brez spremembe podatkov), ker danes ta način porabi veliko časa preden izvede vse ukaze. Zato sem prosil za pomoč. če obstaja kakšna hitrejša možnost kopiranja lista na nov list samo z vrednostmi.
Upam, da sem vam dovolj natančno razložil kaj želim početi.
Ampak za vaše nasvete pa kapo dol.
Brez vašega foruma bi bilo naše delo še vedno bolj naporno. Pohvalno, samo tako naprej.
Upam še samo, da dobim kje vašo knjigo.
Torej vi želite v določenih situacijah pač izključiti izvajanje makra, ki je pisan zadaj na listu. To dosežete preprosto tako, da v makro vnesete pač nek pogoj in če je izpolnjen ta pogoj, potem makro pač prekinete.
Primer: Če je v celici AC1 zapisana vrednost "1" potem makra ne izvajaj.
In potem vse kar morate narediti, je da v celico AC1 vpišete 1 in makro se od tega trenutka dalje ne bo izvajal. Ko spet želite, da se makro izvaja, pa samo pobrišete vrednost celice AC1 in spet bo vse OK.
spet ste me izgubili... karkoli želite doseči, takšnega "ukaza" ni. Excel ne more imeti "Ukazov" za vsako vašo željo.
Če želite arhivirati vse spremembe neke celice morate pač zapisati dogodek Worksheet_Change za konkreten list in se v kodi vprašati ali se je spremenila vrednot celice, ki jo nadzirate. Če se je spremenila, pač njeno vrednost prenesete kamor želite...