Dobré skratky.
Škoda že na ne onedlho zabudnem , ale aj to, že odstránenie nefunguje ak sú za Tabuľkou ešte neTabuľkové data. Ak ide o čisto Tabuľku, tak Odstrániť - Stĺpce tabuľky, ak ide o čisto neTabuľkové stĺpce tak Odstrániť - Celý stĺpec. Ale ak sa prelínajú typy stĺpcov, možnosť je nedostupná. Ale super ShortCut...
Ctrl+Shift+p.šípka ide po najbližšiu vyplnenú hodnotu alebo po koniec (Tabuľky či listu), tak je potrebné skúsiť, čo je posledná vyplnená hodnota a čo je už koniec (Tabuľky či listu).
EDIT:
Tak z oblasti následne urobiť celé stĺpce cez Ctrl+Medzera a potom pklik na ušká stĺpcov a Odstrániť. Vtedy nevadí Tabuľka/neTabuľka :)
Skúste vľavo hore do názvu bunky napísať X:XFD, označia sa Vám, potom kliknite pravý klik na názvy stĺpcov a vyberte Odstrániť. Nepoznám klávesovú skratku na výber od X po koniec v riadku. Iba ak Ctrl+End, ale to Vás hodí iba na koniec riadku, tak musíte aj tak myšou potom ísť na stĺpec X. Možno niekto pozná skratku. Ak to potrebujete urobiť na X súboroch, tak na to môžeme urobiť makro.
Pretože ste urobil Tabuľku na celú šírku Excelu - 16384 stĺpcov. Nechal som Vám 20.
OT:
@Stalker: To je pre mňa v skutku parádna zaujímavosť. O tom som netušil. Ten názov "historie" nedovolí na základe lokalizácie (v SK nedovolí "história"). Čo sa stane ak súbor vytvorený v SK s listom "historie" otvoríte v CZ Exceli???
Skúšate Vy vôbec tie moje súbory? Veď teraz ste mi poslal ako vzor v souhrn04 to Vaše pôvodné makro, neupravené, nefunkčné...
Tu máte upravené obe verzie aj 03, aj 04 (s výberom len 641* súborov).
V tom prípade máte zlú cestu, alebo tam nie sú súbory "*.xls". Ten riadok zmeňte na
If pj = 0 Then
MsgBox "Žádné soubory v adresáři:" & vbNewLine & Cesta, vbExclamation
Else
wsJmena.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(pj).Value = Application.Transpose(aJmena)
End If
Tá verzia s pomocou ADO, čo som poslal ako poslednú, funguje či nie? Skúšal ste? Je mnohonásobne rýchlejšia ako táto Open. Neporovnateľne. Chcete naozaj použiť túto Open metódu?
Nie do modulu ThisWorkbook, ale do modulu daného listu! Do príspevku s kódom som pridal aj prílohu s popisom kódu.
Čože ??? To je blbina. PQ môže ťahať milióny riadkov. Nemôžete zverejniť tie súbory?
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim rClickRng As Range, novycmnt As String
Const SLOUPCE_RCLICK_COMMENT As String = "E:F"
Const PREDVOLENY_COMMENT As String = "Nazdar Fero !"
Set rClickRng = Intersect(Range(SLOUPCE_RCLICK_COMMENT), Target)
If Not rClickRng Is Nothing Then
With rClickRng.Cells(1)
If .Comment Is Nothing Then
novycmnt = InputBox("Vlož nový komentář:", , PREDVOLENY_COMMENT)
If Len(novycmnt) <> 0 Then .AddComment (novycmnt)
Else
novycmnt = InputBox("Přepiš původní komentář", , .Comment.Text)
If StrPtr(novycmnt) <> 0 Then
If Len(novycmnt) <> 0 Then
.Comment.Text Text:=novycmnt
Else
.Comment.Delete
End If
End If
End If
End With
Cancel = True
End If
End Sub
EDIT:
Kód sa vkladá do modulu daného listu!
Pridávam aj prílohu s popísaným makrom.
Podobné niečo som kedysi robil, a bolo to na palicu. A to bolo len z listu do listu. Toto je zo súboru do súboru. Viete koľko môže nastať problémov?
Kontrola súboru, či je otvorený, prípadne otvoriť, potom zatvoriť. A teraz tie veci na palicu. Ako zistiť, či bol riadok pridaný alebo vymazaný? Po zmene je označený celý riadok. Väčšinou. Teda je označený riadok vyplnený? Tak bol asi pred tým zmazaný riadok. Je prázdny? Tak bol asi pridaný riadok. Ale to platí iba pre odobranie pridanie. A čo ošetrenie, keď sa vloží kopírovaním? Vtedy je vyplnený aj okolné sú vyplnené a celý je označený. Ale to len v strede. Ak vložím na konci, alebo zmažem na konci dát? Čo ak vložím/zmažem viac riadkov? Treba uchovávať niekde počet riadkov. Ďalej k tomu "Väčšinou". Riadky môžete predsa pridať/odobrať aj vloženým/zmazaním a posunutím nadol/nahor. Vtedy ako zisťovať čo ste urobil? Môže proste nastať neskutočne veľa logických problémov pretože nebudete vedieť presný následok, ale budete chcieť zistiť jeho príčinu a vykonať reakciu.
Podľa mňa by bolo lepšie, aby ten druhý súbor odkazoval pomocou PowerQuery na tej prvý. "tabuľky" urobte ako "Tabuľky" - Ctrl+T. PQ sa aktualizuje po otvorení druhého zošitu, alebo klikom na Údaje - Obnoviť všetko, alebo Ctrl+Alt+F5. A budete mať v druhom zošite rovnaké dáta.
Ono by to šlo pekne vytiahnuť aj cez PQ (síce pomalšie ako to ADO). Ale zase narážam na to, ako zistiť cestu k zložke Data na OneDrive, ak tá zložka nebude synchronizovaná na disku. Nemám to ako skúšať, a prestáva ma baviť googlenie
Pozrite si ten riadok kódu, čo som napísal. Selection.Cells.Count čo tam mám je adekvátne k tomu čo píšete. Navyše treba rozlíšiť samotné zisťovanie označených+viditeľných. SpecialCells vracia nelogicky úplne niečo iné ak sú označené bunky, a ak je iba jedna. Vtedy vráti všetky viditeľné riadky, a tým pádom Intersect vráti aj neoznačené. Ten môj riadok kódu ošetruje všetko, dokonca aj situáciu ak bude označená bunka skrytá.
On Error Resume Next
Set Oznacene = Intersect(ActiveSheet.Columns("B"), IIf(Selection.Cells.Count = 1 And Selection.EntireRow.Hidden = False, Selection.EntireRow, Selection.SpecialCells(xlCellTypeVisible).EntireRow))
On Error GoTo 0
Ak by Vám to šlo, znamenalo by to, že máte synchronizovaný ten SP priečinok do Vášho OneDrive na Vašom disku. A teda makro ťahá dáta vlastne z Vášho disku ako z normálneho adresára. Tie Vaše XLS, nie sú skutočné XLS, ale textové súbory oddelené tabulátorom s príponou XLS namiesto TXT (toto robia automatizované systémy). Skúste túto metódu cez ADO, ktorá to spracováva ako textové súbory, a dáta si rozloží. Je to mnoho-mnoho-násobne rýchlejšie, ako otváranie súborov.
Ale ak to bude tak, že máte iba link na súbor s makrom na SP, a nemáte to nastavené na synchro na Váš disk, tak neviem, ako to poriešiť.
Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.
Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.