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").SelectRe: 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