Makro obravnava vsako vrstico individualno

Pomoč pri delu z MS Excelom
Odgovori
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Makro obravnava vsako vrstico individualno

Odgovor Napisal/-a tjazma »

Pozdravljeni,
Posnel sem makro pri katerem, se v celico A1 vpiše datum (today) , ko je izpolnjen pogoj v celici C1 (true). To vse lepo dela samo problem nastane ko želim makro sprožiti tudi v drugi, tretji ... vrstici. Spremenijo se datumi tudi v drugih vrsticah kar pa ni zaželjeno. Rad bi dosegel, da se datumi v drugih vrsticah na spreminjajo . prilagam makro

Koda: Izberi vse

Sub VNESI_DATUMEND()
'
' VNESI_DATUMEND Makro
'
' Bližnjica na tipkovnici: Ctrl+a
'

If Range("K7").Value = True Then
 Range("i7").Value = Now
Else
 Range("i7").Value = ""
End If
If Range("K8").Value = True Then
 Range("i8").Value = Now
Else
 Range("i8").Value = ""
End If
If Range("K9").Value = True Then
 Range("i9").Value = Now
Else
 Range("i9").Value = ""
End If
End Sub
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Moram reči, da vas ne razumem, kaj želite doseči. Vaš makro preveri celico in če je v njej vrednost TRUE potem v drugo celico zapiše datum in čas, sicer pa njeno vrednost izbriše. Seveda pa vsaka izvedba makra popravi vse celice - torej tistim ki ustrezajo zapiše nov datum, tiste, ki ne ustrezajo pobriše...

Zdaj, edina vsaj malce logična stvar, ki bi se mi ob tem početju in vašem vprašanju utrnila, je da ne želite spremeniti že vpisanega datuma... E če tega ne želite storiti, potem morate zaukazati: če je v celici vrednost že zapisana, potem je ne piši več!

Pa č nekaj v stilu

Koda: Izberi vse

   ...

    If Range("K7").Value = True Then
        If (Range("i7").Value = "") Then Range("i7").Value = Now
    Else
        Range("i7").Value = ""
    End If
    
    If Range("K8").Value = True Then
        If (Range("i8").Value = "") Then Range("i8").Value = Now
    Else
        Range("i8").Value = ""
    End If
    
    If Range("K9").Value = True Then
        If (Range("i9").Value = "") Then Range("i9").Value = Now
    Else
        Range("i9").Value = ""
    End If

   ...
lp,
Matjaž Prtenjak
Administrator
tjazma
Prispevkov: 39
Pridružen: Pe Feb 08, 2008 1:37 pm

Odgovor Napisal/-a tjazma »

Pozdravljeni,
Res je nerazumlijvo ker je vzeto ven iz konteksta neke celote.
V stolpcu "j" imam za vsako vrstico obrazec - potrditveno polje, katero ima povezavo na sosednjo celico v "K" stolpcu in ko je polje potrjeno vrne vrednost "true" kar je pogoj da se vpiše datum v določeno celico.

Ampak da skrajšam, nikakor ne dvomim več v vaše telepatske sposobnosti nas amaterjev :-) in se vam zahvaljujem za rešitev ki je idealna za to kar rabim.
[/img]
Odgovori