Numarare randuri

RAMBO
Mesaje: 414
Membru din: Mie Noi 25, 2009 2:17 pm
Localitate: Pitesti

Numarare randuri

Mesaj de RAMBO » Vin Iul 27, 2018 12:54 pm

Buna ziua
De multa vreme pentru a afla/selecta/scrie in ultimul rand disponibil al unui tabel foloseam o combinatie de cod VBA cu formula. Concret, sa presupunem ca valoarea 10 care se afla in foaia1 celula A1 si vreau sa o scriu in urmatorul rand disponibil al unui tabel (table1) care se afla in foaie2. Eu fac asa: intr-o celula "izolata" introduceam formula

Cod: Selectaţi tot

=counta(table1[column name])
iar apoi scriam urm cod VBA

Cod: Selectaţi tot

dim countrows as range
set countrows = sheets("foaie2").range("celula izolata")
sheets("foaie2").range("A"&countrows)=range("A1")
Desi metoda s-a dovedit fiabila in timp, este primitiva, pentru ca nu stiu sa fac chestii avansate in VBA.
Cum asa putea sa scap de formula?
Am incercat niste scamatorii de genul

Cod: Selectaţi tot

range("table_name[field_name]").rows.count
nu merge; nu pot sa extrag nr-ul se randuri nonblank dintr-un range/table field cu vba.
Stiu ca IPP are o solutie cu multe offseturi, dar pleaca de la premisa ca sub rangeul numarat sa nu se afle nimic, ceea ce nu este intotdeauna valabil.

Multumesc.

TudyBTH
Moderator
Moderator
Mesaje: 904
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: Numarare randuri

Mesaj de TudyBTH » Vin Iul 27, 2018 4:50 pm

dim tbl as listobject
set tbl=sheets("Sheet2").Listobjects("Table1")
tbl.listrows.add
tbl.listrows(tbl.listrows.count).range(1).value=sheets("Sheets1").range("A1").value
set tbl=nothing


Banuiesc insa ca nu ai creat un tabel ca sa introduci doar cate o singura valoare pe rand.
Arunca o privire si aici: viewtopic.php?f=33&t=8753
s-ar putea sa te ajute si nu cere VBA.


In legatura cu "... pleaca de la premisa ca sub rangeul numarat sa nu se afle nimic, ceea ce nu este intotdeauna valabil ..."
Este indicat ca sa nu prea existe nimic sub un tabel, cu atat mai mult sub un range dinamic.
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.

Scrie răspuns

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”