Pozdravljeni!
V excelovem listu imam dve tabeli eno pod drugo. Tabelama se poljubno dodajajo vrstice tako, da se ohranjajo vnesene formule v ze obstojecih vrsticah.
Ker uporabniki tega zvezka niso vesci vstavljanja vrstic, bi jim zelel rec poenostaviti s pritiskom na gumb.
Posnel sem makro za vstavljanje vrstic v zgornji tabeli in isto tudi v spodnji tabeli. Problem nastane v spodnji tabeli, ce je "prevec" vstavljenih vrstic v zgornji tabeli, saj se makro sklicuje na dolocene vrstice, ki so fiksne.
V kolikor ima kdo idejo, kako rec poenostaviti, sem zelo hvalezen za trud in cas.
Lep dan!
Iskalec
Vstavljanje vrstic v istem listu v dveh tabelah
Re: Vstavljanje vrstic v istem listu v dveh tabelah
Posneti makri se vedno sklicujejo fiksno na določeno celico /vrstico /kolono. V vašem primeru to pomeni, da če ste vi posneli dodajanje 30-te vrstice bo makro vedno posnel 30-to vrstico. Rešitvi vašega problema sta dve:
Makre z relativnimi sklici lahko posnamete tako, da:
- Ročno popravite VBA kodo, tako da izračunate katera vrstica se mora dodati
- Makro posnamete z relativnimi sklici in v tem primeru se bo izvajal relativno na izbrano celico.
Makre z relativnimi sklici lahko posnamete tako, da:
- (Excel 2003) v orodni vrstici, ki se vam odpre ob snemanju makro kliknete na sličico tabele in s tem preklapljate med relativnim in absolutnim sklicevanjem
- (Excel 2007 in 2010) imata ustrezno opcijo že na traku
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Vstavljanje vrstic v istem listu v dveh tabelah
Pozdravljeni!
Hvala, druga razlicica je dobra resitev !
Kljub temu sem poskusal resiti tudi po prvem predlogu. V dodatnem stolpcu zgornje tabele sem v vsako vrstico dodal št. 1 ter jih seštel npr. vsota je 18.
V drugi tabeli bi zelel vstaviti vrstico po prvotnem stanju npr. v vrstici 30.
V celico npr. a1 vnesem razliko med skupno vsoto zgornje tabele in 18. V celico b1 pa vnesem seštevek 30 + a1. Tako dobim v b1 vsakic številko prave vrstice v spodnji tabeli, kjer bi zelel vstavljati vrstico. Vendar pa ne znam v kodo vnesti vrstico z vrednostjo b1, ce je to sploh mogoce.
Spodaj sicer podajam delujoci posneti makro, kot ste predlagali.
Hvala za morebitno resitev!
Iskalec
Hvala, druga razlicica je dobra resitev !
Kljub temu sem poskusal resiti tudi po prvem predlogu. V dodatnem stolpcu zgornje tabele sem v vsako vrstico dodal št. 1 ter jih seštel npr. vsota je 18.
V drugi tabeli bi zelel vstaviti vrstico po prvotnem stanju npr. v vrstici 30.
V celico npr. a1 vnesem razliko med skupno vsoto zgornje tabele in 18. V celico b1 pa vnesem seštevek 30 + a1. Tako dobim v b1 vsakic številko prave vrstice v spodnji tabeli, kjer bi zelel vstavljati vrstico. Vendar pa ne znam v kodo vnesti vrstico z vrednostjo b1, ce je to sploh mogoce.
Spodaj sicer podajam delujoci posneti makro, kot ste predlagali.
Hvala za morebitno resitev!
Iskalec
Koda: Izberi vse
ActiveCell.Offset(0, 0).Rows("1:1").EntireRow.Select
Selection.Copy
Selection.Insert Shift:=xlDown
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
ActiveCell.Offset(1, 0).Range("A1").Select
Re: Vstavljanje vrstic v istem listu v dveh tabelah
Če je priložena koda prava, potem "A1" v kodi zamenjajte Z "B1"!
In to je vse...
In to je vse...
lp,
cedra
cedra
Re: Vstavljanje vrstic v istem listu v dveh tabelah
Pozdravljeni!
Hvala za vas odgovor!
Ko naprej poskusam pri posnetem makroju (tokrat brez relativnih sklicev) bi namesto vrstice z vrednostjo 30 (spodaj koda) rad zamenjal za vrstico z vrednostjo, ki je v celici b1.
Hvala za morebitno resitev!
Iskalec
Hvala za vas odgovor!
Ko naprej poskusam pri posnetem makroju (tokrat brez relativnih sklicev) bi namesto vrstice z vrednostjo 30 (spodaj koda) rad zamenjal za vrstico z vrednostjo, ki je v celici b1.
Hvala za morebitno resitev!
Iskalec
Koda: Izberi vse
Rows("30:30").Select
Selection.Copy
Rows("30:30").Select
Selection.Insert Shift:=xlDown
Range("M30").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
Re: Vstavljanje vrstic v istem listu v dveh tabelah
Če 30 zamenjate z vrednostjo v B1, potem je koda takšna:
Koda: Izberi vse
Dim r As Long
r = Range("b1")
Rows(r).Select
Selection.Copy
Rows(r).Select
Selection.Insert Shift:=xlDown
Range("M" & r).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ""
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Vstavljanje vrstic v istem listu v dveh tabelah
Pozdravljeni!
Hvala, stvar deluje odlicno. Matjaz veliko ste mi pomagali.
Lep in poln dan se naprej !
Iskalec
Hvala, stvar deluje odlicno. Matjaz veliko ste mi pomagali.
Lep in poln dan se naprej !
Iskalec