Vstavljanje vrstic v istem listu v dveh tabelah

Pomoč pri delu z MS Excelom
Odgovori
Iskalec
Prispevkov: 18
Pridružen: Pe Avg 05, 2005 1:36 pm

Vstavljanje vrstic v istem listu v dveh tabelah

Odgovor Napisal/-a Iskalec »

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
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Vstavljanje vrstic v istem listu v dveh tabelah

Odgovor Napisal/-a admin »

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:
  1. Ročno popravite VBA kodo, tako da izračunate katera vrstica se mora dodati
  2. Makro posnamete z relativnimi sklici in v tem primeru se bo izvajal relativno na izbrano celico.
Drugi način je seveda lažji, vendar pa morajo uporabniki vedno paziti katero celico imajo izbrano, preden se makro izvede.

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
Iskalec
Prispevkov: 18
Pridružen: Pe Avg 05, 2005 1:36 pm

Re: Vstavljanje vrstic v istem listu v dveh tabelah

Odgovor Napisal/-a Iskalec »

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

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
cedra
Prispevkov: 264
Pridružen: Po Jul 25, 2005 11:11 pm
Kraj: Kamnik

Re: Vstavljanje vrstic v istem listu v dveh tabelah

Odgovor Napisal/-a cedra »

Če je priložena koda prava, potem "A1" v kodi zamenjajte Z "B1"!
In to je vse...
lp,

cedra
Iskalec
Prispevkov: 18
Pridružen: Pe Avg 05, 2005 1:36 pm

Re: Vstavljanje vrstic v istem listu v dveh tabelah

Odgovor Napisal/-a Iskalec »

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

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 = ""
admin
Site Admin
Prispevkov: 3692
Pridružen: Sr Jul 20, 2005 10:06 pm

Re: Vstavljanje vrstic v istem listu v dveh tabelah

Odgovor Napisal/-a admin »

Č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
Iskalec
Prispevkov: 18
Pridružen: Pe Avg 05, 2005 1:36 pm

Re: Vstavljanje vrstic v istem listu v dveh tabelah

Odgovor Napisal/-a Iskalec »

Pozdravljeni!

Hvala, stvar deluje odlicno. Matjaz veliko ste mi pomagali.

Lep in poln dan se naprej :)!

Iskalec
Odgovori