Lebo na to idete zle. Zmente deklaráciu funkcie zo stringového parametru na Range:
Public Function QRX(T As Range)
potom TEXT urobte napr. (záleží aké údaje bunka obsahuje, dá sa použiť FORMAT(), alebo nejaké zaokrúhlenie a pod...):
TEXT = CStr(T)
a potom všade slovo ActiveCell nahraďte za T. Teda napr.:
T.Left
V tom prvom príspevku od Jeza.m je to minimálne na 5 miestach.
A potom to funguje tak, že QR vloží tam, aký parameter je vo funkcii.
Z brucha a bez vyskúšania:
Sub DeleteCon()
Dim i As Integer
With ThisWorkbook
For i = .Connections.Count To 1 Step -1
.Connections(i).Delete
Next i
For i = .Queries.Count To 1 Step -1
.Queries(i).Delete
Next i
End With
End Sub
A ešte pozrite Podmienené formátovanie. Tak sa tiež niekedy skrývajú. Prípadne rozbaľovacie zoznamy.
@SACHIVA: Priložte prílohu s príkladom toho čo máte, aj toho ako to má vyzerať.
Hneď prvý odkaz na Google:
Sub FolderSize()
Dim fso As Object, fsoFolder As Object
Const strFolderName As String = "d:\adresár\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fsoFolder = fso.GetFolder(strFolderName)
MsgBox fsoFolder.Size & " bytes"
Set fsoFolder = Nothing
Set fso = Nothing
End Sub
EDIT:
Tu som Vám spravil príklad načítania veľkosti všetkých podadresárov.
S tým sa nedá nesúhlasiť.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Zmena As Range
Set Zmena = Intersect(Range("A1:K20"), Target)
If Not Zmena Is Nothing Then
Application.ScreenUpdating = False
On Error Resume Next
With Zmena
.Borders(xlDiagonalUp).LineStyle = xlNone
.SpecialCells(xlCellTypeBlanks).Borders(xlDiagonalUp).LineStyle = xlContinuous
End With
Set Zmena = Nothing
Application.ScreenUpdating = True
End If
End Sub
Do mailu ste mi poslal iný popis ako sem. Dostal ste iné riešenie. Podľa mňa chcete niečo také ako som Vám pripravil teraz. Dobre porozmýšľajte nad zmyslom tých dátumov. Štart, Koniec, Upozornenie, dávate všetko rovnaké. Áno koniec v makre rátate ako Štart+1, ale ani ten Štart nemáte všade vyplnený. Lenže potom čas upozornenia predom rátate ako rozdiel medzi (Štart-Upozornenie) * 1440 [teda 1 deň], čo je nezmysel, lebo vždy je Štart,Koniec,Upozornenie rovnaké. Teda Vám vyjde vždy 0.
Vložte ešte raz poriadny popis a poriadnu prílohu, z ktorej bude zrejmé ako vypočítať (odkiaľ to brať) Koniec a Upozornenie, alebo si to už upravte.
Podľa mňa je to jasne to riešenie vpravo. Urobiť si spojené číslo podľa priorít disciplín.
Naformátujte prehľadávaný stĺpec ako Text. Nemusíte vyhľadávať 12x, keď máte 12 stĺpcov. Stačí raz. Vymyslel som si príklad, keďže ste prílohu nedal. No ak chcete vyhľadávať iba časť SPZ, a vybrať si z možných nájdených, treba použiť napr. metódu čo som sem dával už niekoľkokrát, s formulárom, ktorý hneď ukazuje možné vyhovujúce dáta v ListBoxe. Len sa mi to nechce hľadať
Rovnako aj tu by nebolo treba tlačítko, stačilo by kontrolovať Enter a Click.
Ahoj. No nemal som veľa času, tak až teraz. Riešenie by mohlo byť takéto.
Pozor okrem zmeny kódu je aj zmenená "Minimálna hodnota" vo vlastnosti SpinButtonu z 0 na 1.
1. Prečítajte si ešte raz 3. odstavec, čo som písal. Máte tam zle ten Offset.
2. V stĺpci H nemajte žiadne iné hodnoty, degraduje to výberový zoznam (myslím to číslo 9996).
3. Upravte kód, najskôr zmente výberovým zoznamom nejakú hodnotu, aby sa Vám prípadne upravil správny index v SpinBtn, ak bol pred tým nesprávnym makrom zle nastavený. A potom všetko funguje ako má. Hodnoty zo zoznamu dáva, tak ako sú v poradí v zozname. Nijako inak.
Šmarjá, lidičky, čítajte pozorne, čo Vám človek píše
Určite platí, že
´=číslo 30 se do 10 000 potká s číslem 500 a 10 000 6 krát
Spinner som ja nazval "SpinBtn", Vy ho máte "Spinner 2" (v príkladoch pred tým, myslím "Spinner 5" a Spinner 6"), no odkazujete sa ten môj "SpinBtn", u Vás neexistujúci. Premenoval som ho.
Odkazujete na list s kódovým menom "Material", ale také kódové meno nemáte. Taký máte iba titulok na lište s uškami listov. Buď použite Worksheets("Material"), alebo zmente kódové meno listu napr. na "Material" alebo lepšie na "wsMaterial".
Nemôžete robiť Offset(Poz - 4), ale len Offset(Poz - 1), tak ako som to tam dal. Lebo tu sa neposúvate indexom od prvého riadku listu, ale od prvého riadku oblasti materiálov. A index 1 je na 5 riadku, teda ho už neposúvate.
V makre listu Grafy máte zle umiestnené rozsahy
WorksheetFunction.Match(HDN, .Cells(2, 1).Resize(Radku), 0)
má byť
WorksheetFunction.Match(HDN, .Cells(5, 8).Resize(Radku), 0)
a
Radku = .Cells(Rows.Count, 3).End(xlUp).Row - 4
má byť
Radku = .Cells(Rows.Count, 8).End(xlUp).Row - 4
Rovnako zle je to aj v druhom makre
Radku = wsMaterial.Cells(Rows.Count, 3).End(xlUp).Row - 4
má byť
Radku = wsMaterial.Cells(Rows.Count, 8).End(xlUp).Row - 4
Úpravu som Vám dal na GoogleDrive
=FILTERXML(C3;"//Tag1")
prípadne ak by tam bolo viac od každého tagu tak jedno z toho:
=FILTERXML(C3;"Tagy/Tag1")
=FILTERXML(C3;"/Tagy/Tag1")
=FILTERXML(C3;"//Tagy/Tag1")
EDIT: No tak oprava. Ak by tam boli napr. 2 mastertagy Tagy a Tagy2 a oba obsahovali subtagy Tag1, Tag2, Tag3, tak to nefunguje, resp. to neviem skomoliť :)
Pr.
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.