» »

makro v excelu

makro v excelu

karafeka ::

Pozdravljeni

V excelu imam takšno tabelo


  • Naziv Znesek

    aaaa 111
    bbbb 0
    cccc 0





Rad bi, da mi makro skopira tiste vrstice, ki imajo znesek večji kot nič. Skopirajo pa se naj na konec tabele na drugem listu.

Torej, dva problema:
1. Kako izbrati samo tiste vrstice v tabeli, pri katerih je stolpec Znesek pozitiven?
2. Kako se naj te vrstice skopirajo NA KONEC druge tabele?

smetko ::

Poizkusi z sledečim makrojem:
Opombe: Na določen list se lahko sklicuješ z imenom (pri meni v prvi zanki "List2") ali pa z zaporedno števiko lista(pri meni v vseh ostalih sklicih).
Prva prazna celica v prvi koloni pomeni konec podatkov.
procedura na koncu prepiše tudi vrstico, v kateri v prvi vrstici ni podatka, vendar upam da to ni moteče, če pa je se doda še en if.

Sub kopiraj()
Dim VhVrstica, IzhVrstica, KonecPrepisovanja, NaselZaPrepis
VhVrstica = 1
IzhVrstica = 1
Do Until IsEmpty(Worksheets("List2").Cells(IzhVrstica, 1).Value) 'povečujem IzhVrstica dokler ne najdem praznega podatka
IzhVrstica = IzhVrstica + 1
Loop
KonecPrepisovanja = False
Do Until KonecPrepisovanja ' Delam dokler imam kaj za prepisat
NaselZaPrepis = False
Do Until NaselZaPrepis
If IsEmpty(Worksheets(1).Cells(VhVrstica, 1).Value) Then
KonecPrepisovanja = True
NaselZaPrepis = True
ElseIf Worksheets(1).Cells(VhVrstica, 2).Value = 0 Then
VhVrstica = VhVrstica + 1
Else
NaselZaPrepis = True
End If
Loop
Worksheets(2).Cells(IzhVrstica, 1).Value = Worksheets(1).Cells(VhVrstica, 1).Value
Worksheets(2).Cells(IzhVrstica, 2).Value = Worksheets(1).Cells(VhVrstica, 2).Value
IzhVrstica = IzhVrstica + 1
VhVrstica = VhVrstica + 1
Loop
End Sub
No comment

thor24 ::

Da ne odpiram nove teme, ker jih je že milijon :)

Ko odprem datoteko (excel 2003) mi napiše varnostno opozorilo da vsebuje makre (potem izberem omogoči makre).

Ko pa grem pod orodja/makro/makri (alt+F8) pa ni napisanega nobenega makra!

Kako naj torej zbišem makre da mi ne bo vsakič ko odprem datoteko začelo težit z obvestilom.

Ko sem potreboval eno "daljšo" formulo mi ni šlo :D, pa sem odprl posnemi makro (zaradi TOTALNEGA nepoznavanja makrov sem si takoj premislil), tako da je makro vrjetno od tam ostal al kako? Sem zaprl makro oz. nisem nobene kode pisal al kar je pač treba!

Potem mi je ratalo z array formulo rešiti problem, ampak zdaj ne vem kje naj bi bil ta makro!

Ali se array formule štejejo kot makro?
Kako naj zbrišem makro oz. vsaj preprečim da mi ob vsakem odpiranju ne bo varnostno obvestilo težilo?

V urejevalniku VB mi pokaže tole (kjer bi morala biti koda), list oz. celice niso skrite ali zaklenjene:

"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub
"

lp

Duhec ::

Orodja/Možnosti/zavihek "Varnost"/spodaj klik na "Varnostna nastavitev za makre"/ in izberi ustrezno stopnjo varnosti.
Po vsej verjetnosti imaš nastavljeno na "Srednjo" in te vedno sprašuje ali boš omogočil ali ne. Prestavi recimo na "Visoka" in načeloma ne bo več spraševal.

thor24 ::

Sem dal na "visoka", pa mi da na začetku drugo obvestilo: "Makri so onemogočeni ker je je raven varnosti visoka, makrom pa ni elektronsko predpisano potrdilo zaupanja..."

Tako da bi še vedno rad izbrisal makre oz. kako drugače rešil problem! :D

Hvala vseeno za predlog!

prtenjam ::

Če nič drugega vam probleme povzroča VSAJ ta koda, ki ste jo zapisali. Problem rešite na ta način:

  1. Odprete urejevalnik za VBA (ALT+F11) ali (Orodja /Makro /Urejevalnik za...)

  2. Odpre se novo okno, ki je namenjeno urejanju VBA kode

  3. Na levi strani imate okno 'Project' in tam je seznam vseh odprtih projektov - torej datotek

  4. Poiščite tisto, ki vam dela probleme in jo dvokliknite s čimer se razpre, da lahko vidite iz česa je sestavljena.

  5. Sestavljajo jo lahko: Microsoft Excel Objects, Forms, Modules in Calss Modules

  6. V kolikor immate karkoli razne Microsoft Excel Modules - VSE pobrišite - to naredite tako da element razprete in vse podelemente pobrišete - File / Remove

  7. Sedaj vam je ostala samo opcija Microsoft Excel Objects, pod katero je označen delovni zvezek in VSI listi v njem

  8. Dvokliknite vsakega med njimi in na levi strani v velikem oknu se bo prikazala koda, ki je tam zapisana... POBRIŠITE VSE. Desno okno za vnos kode mora biti prazno na VSEH listih in na delovnem zbvezku.

  9. Shranite



To je zelo podroben postopek, sicer je stvar zelo preprosta in hitra
Matjaž Prtenjak
https://mnet.si

thor24 ::

Problem rešen! :D

Hvala za pomoč!

Sem pa "odkril" tudi vaš forum, kjer bom zagotovo našel še kak odgovor na moje težave z MS Office.

Še enkrat hvala za tole!

lp


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Excel: tiskanje po vrsticah

Oddelek: Pomoč in nasveti
7957 (870) luksorzi
»

kako v excelu avtomatsko obarvati celice

Oddelek: Programska oprema
103993 (3766) smetko
»

[EXCEL] Pogojno kopiranje na drug list

Oddelek: Programiranje
61702 (1624) StratOS
»

[excel] makro | excel -pomoc

Oddelek: Programiranje
111884 (1668) smetko
»

[Excel] problem z makrojem, visual basic (strani: 1 2 )

Oddelek: Programiranje
585420 (4883) steev

Več podobnih tem