Forum » Programska oprema » makro v excelu
makro v excelu
karafeka ::
Pozdravljeni
V excelu imam takšno tabelo
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?
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
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
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.
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!
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:
To je zelo podroben postopek, sicer je stvar zelo preprosta in hitra
- Odprete urejevalnik za VBA (ALT+F11) ali (Orodja /Makro /Urejevalnik za...)
- Odpre se novo okno, ki je namenjeno urejanju VBA kode
- Na levi strani imate okno 'Project' in tam je seznam vseh odprtih projektov - torej datotek
- Poiščite tisto, ki vam dela probleme in jo dvokliknite s čimer se razpre, da lahko vidite iz česa je sestavljena.
- Sestavljajo jo lahko: Microsoft Excel Objects, Forms, Modules in Calss Modules
- V kolikor immate karkoli razne Microsoft Excel Modules - VSE pobrišite - to naredite tako da element razprete in vse podelemente pobrišete - File / Remove
- Sedaj vam je ostala samo opcija Microsoft Excel Objects, pod katero je označen delovni zvezek in VSI listi v njem
- 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.
- Shranite
To je zelo podroben postopek, sicer je stvar zelo preprosta in hitra
Matjaž Prtenjak
https://mnet.si
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
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Excel: tiskanje po vrsticahOddelek: Pomoč in nasveti | 1093 (1006) | luksorzi |
» | kako v excelu avtomatsko obarvati celiceOddelek: Programska oprema | 4152 (3925) | smetko |
» | [EXCEL] Pogojno kopiranje na drug listOddelek: Programiranje | 1769 (1691) | StratOS |
» | [excel] makro | excel -pomocOddelek: Programiranje | 1952 (1736) | smetko |
» | [Excel] problem z makrojem, visual basic (strani: 1 2 )Oddelek: Programiranje | 5638 (5101) | steev |