Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

VBA (Macro) greška 1004

[es] :: Office :: Excel :: VBA (Macro) greška 1004

[ Pregleda: 2326 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

pcpopovic
PC_Popović
Srbija

Član broj: 226882
Poruke: 206
*.dynamic.isp.telekom.rs.



+9 Profil

icon VBA (Macro) greška 100414.03.2016. u 13:57 - pre 98 meseci
Koristim Makro (VBA kod) za datume:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim cl As Range
Application.ScreenUpdating = False
Set Rng = ThisWorkbook.Worksheets("Promet").Range("B4:B203")
For Each cl In Rng
If cl.Text <> "" And cl.Formula <> cl.Text Then
cl.Formula = cl.Text
End If
Next cl
Application.ScreenUpdating = True
End Sub


U delu (liniji):

If cl.Text <> "" And cl.Formula <> cl.Text Then ’ Obojeno je žutom bojom

mi javlja grešku (1004).

Formula (funkcija) na koju se odnosi ovaj kod je =IF(C4<>"";TODAY();"")
Šta se dešava?

Da li je ovo moguće? Primetio sam da se ovo javlja kad zaključam radni list.
 
Odgovor na temu

pcpopovic
PC_Popović
Srbija

Član broj: 226882
Poruke: 206
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: VBA (Macro) greška 100414.03.2016. u 14:11 - pre 98 meseci
Da. Definitivno se javlja kada je radni list na koga se odnosi ovaj Macro zaključan (zaštićen) i kada hoče da se zapamti ("Save"), nešto (neka promena) što je u vezi tog Macro-a.
Kada List nije zaklučan ova greška se ne javlja.
Prikačeni fajlovi
 
Odgovor na temu

pcpopovic
PC_Popović
Srbija

Član broj: 226882
Poruke: 206
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: VBA (Macro) greška 100416.03.2016. u 06:53 - pre 98 meseci
Ako nema pomoći... Da li može pomoć za ovo:

Private Sub CommandButton1_Click()
’ Kada pritnem dugme da mi se sve ćelije na Sheet-u "Promet" u opsegu ćelija (Range) B2:B10,
’ koje imaju broj veći od 0 i
’ koje imaju funkciju (formulu) - pretvore u statičnu vrednost (Value)
End Sub


I da li da Makro napišem u određenom "Sheet"-u ili u "ThisWorkbook"-u?

Dugme znam napraviti i znam mu dodeliti Makro.
 
Odgovor na temu

Ivek33

Član broj: 66174
Poruke: 2898



+66 Profil

icon Re: VBA (Macro) greška 100416.03.2016. u 08:23 - pre 98 meseci
Citat:
pcpopovic
’ koje imaju broj veći od 0 i
’ koje imaju funkciju (formulu) - pretvore u statičnu vrednost (Value)
Ne vidim razloga da konvertiraš samo određene ćelije >0
No probaj ovaj VBA macro u Sheet module
Code:
Private Sub Worksheet_Calculate()
    Dim A As Range, r As Range
    Set A = Range("A1:A10")
    For Each r In A
        If r.HasFormula And r.Value > 0 Then
            r.Value = r.Value
        End If
    Next r
End Sub

Ako hoćeš da se formule konvertiraju na tvoj zahtjev tada izbriši prefix Private i postavi Sub Worksheet_Calculate pa ga pokreni preko buttona

 
Odgovor na temu

Jpeca
Predrag Jovanović
poslovni analitičar
Gowi
Pančevo

Moderator
Član broj: 25683
Poruke: 2268
212.200.121.*

Sajt: www.gowi.rs


+109 Profil

icon Re: VBA (Macro) greška 100416.03.2016. u 09:03 - pre 98 meseci
Prvo pitanje - već je bio odgovor na forumu http://www.elitesecurity.org/t334370-0#2033786. Na žalost ja ne mogu da pristupim linku koji se tu navodi.

Uglavnom ako je problem sa izmenom na protektovanom listu, rešenje je da se u makrou izvši otključavanje lista pre koda i zaključavanje (opet) na kraju
Code:
' Otključavanje lista 
ThisWorkbook.Worksheets("Promet").Unprotect Password:="..."

'Tvoj makro 

' Ponovno zaključavanje
ThisWorkbook.Worksheets("Promet").Protect Password:="..."


Nije to loše Rembrante, samo što ne bi dodao još malo boje?
 
Odgovor na temu

pcpopovic
PC_Popović
Srbija

Član broj: 226882
Poruke: 206
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: VBA (Macro) greška 100416.03.2016. u 16:37 - pre 98 meseci
@Ivek33
To je to.

Code:
Private Sub Worksheet_Calculate()
Dim A As Range, r As Range
Set A = Range("A1:A10")
For Each r In A
If r.HasFormula And r.Value > 0 Then
r.Value = r.Value
End If
Next r
End Sub

Samo jedna dopuna mog pitanja. Pošto imam određeni uslov, ato je: u kom trenutku, da se formula pretvori u "Value". Gde i šta napisati da se procedura izvrši tek kada ćelija (recimo u koloni "H" i - naravno, u istom redu) ne bude prazna ili bude veća ili manja od nule?


[Ovu poruku je menjao pcpopovic dana 16.03.2016. u 17:48 GMT+1]
 
Odgovor na temu

pcpopovic
PC_Popović
Srbija

Član broj: 226882
Poruke: 206
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: VBA (Macro) greška 100416.03.2016. u 16:44 - pre 98 meseci
Citat:
Jpeca:
Prvo pitanje - već je bio odgovor na forumu http://www.elitesecurity.org/t334370-0#2033786. Na žalost ja ne mogu da pristupim linku koji se tu navodi.

Uglavnom ako je problem sa izmenom na protektovanom listu, rešenje je da se u makrou izvši otključavanje lista pre koda i zaključavanje (opet) na kraju
Code:
' Otključavanje lista 
ThisWorkbook.Worksheets("Promet").Unprotect Password:="..."

'Tvoj makro 

' Ponovno zaključavanje
ThisWorkbook.Worksheets("Promet").Protect Password:="..."



Ne uspevam. Kod mi ima grešku kada napišem ili mi VBA deli kod na dva dela. Može li kompletan zapis. Evo Ti šaljem moj kod:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim cl As Range
Application.ScreenUpdating = False
Set Rng = ThisWorkbook.Worksheets("Promet").Range("B4:B203")
For Each cl In Rng
If cl.Text <> "" And cl.Formula <> cl.Text Then
cl.Formula = cl.Text
End If
Next cl
Application.ScreenUpdating = True
End Sub

Kako ovde ubaciti "Unprotect" i "Protect"? Hvala i pozdrav.
 
Odgovor na temu

pcpopovic
PC_Popović
Srbija

Član broj: 226882
Poruke: 206
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: VBA (Macro) greška 100416.03.2016. u 19:11 - pre 98 meseci
@Jpeca
Uspeo sam. Nema više greške "1004".

@Ivek33
Ovo sam namestio da radi sa "Dugmetom". Samo je ostalo ono pitanje (od malopre). Kako to namestiti (automatizovati) da radi bez kontrole "Dugmeta" (u pozadini), ali uz poseban uslov ispunjenosti određene ćelije?

Pozdrav i Hvala!
 
Odgovor na temu

pcpopovic
PC_Popović
Srbija

Član broj: 226882
Poruke: 206
*.dynamic.isp.telekom.rs.



+9 Profil

icon Re: VBA (Macro) greška 100418.03.2016. u 16:08 - pre 98 meseci
Kako da sledeći primer koda:

Private Sub Worksheet_Calculate()
Dim A As Range, r As Range
Set A = Range("A1:A10")
For Each r In A
If r.HasFormula And r.Value > 0 Then
r.Value = r.Value
End If
Next r
End Sub


napišem tako da mi se funkcija u ćeliji A1 pretvori u podatak (value) - ne u, bilo kom, momentu kad postane "<> 0", nego kad (recimo) ćelija C1, koja je formatirana kao broj, bude - "ne prazna ("<> "")" ili "<> 0"? Pozdrav.
 
Odgovor na temu

[es] :: Office :: Excel :: VBA (Macro) greška 1004

[ Pregleda: 2326 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.