Prípadne do modulu listu, a nič sa nebude ani opakovane volať:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Vysledok As Variant
If Not Intersect(Range("A2"), Target) Is Nothing Then
Vysledok = "nenašlo"
On Error Resume Next
Vysledok = WorksheetFunction.VLookup(Range("A2"), List2.Range("A1:E6"), 3, 0)
On Error GoTo 0
Application.EnableEvents = False
Range("B2").Value = Vysledok
Application.EnableEvents = True
End If
End Sub
Bez problémov funguje. Najskôr učite list, potom až range.
Sub Hladaj()
On Error Resume Next
List1.Range("B2").Value = WorksheetFunction.VLookup(List1.Range("A2"), List2.Range("A1:E6"), 3, 0)
If Err.Number <> 0 Then List1.Range("B2").Value = "nenašlo"
On Error GoTo 0
End Sub
Príklad:
Dim strDatum As String
Dim Datum As Date
Dim bolOK As Boolean
strDatum = Replace(TextBox1.Text, ".", "/")
If IsDate(strDatum) Then
Datum = DateValue(strDatum)
bolOK = Datum >= Date
End If
MsgBox bolOK
Na nete sa na toto spomína addon "Email Studio". Skúste ho s parametrom "older_than:1h" . Návod si nájdete na nete, len neviem či to pozná aj "h" hodiny, alebo len dni, mesiace a roky.
makro - krátky skript (nie nutne VBA, sú aj myši s makrom)
M-code - skriptovací jazyk PowerQuery
Možno tu ide o popletenie pojmov, ale ja som to pochopil tak, že sa jedná o PQ dotaz vytváraný vo VBA. A tak som aj otestoval to, čo som postol.
sobrom upresnite to.
EDIT: Príloha s príkladom, ako vložiť hodnotu bunky do vytvárania PQ dotazu vo VBA, aj príklad, ako si samotné PQ môže načítať hodnotu z konfiguračnej Tabuľky (je to tak najjednoduchšie).
Len tip. Namiesto url
https://www.gpro.net/cz/RaceSummary.asp?Season=84&Race=2&sort=&order=&group=Pro+-+15
tam skúste dať
" & ThisWorkbook.Worksheets("názov listu").Range("adresa bunky").Value & "
1. Priložte aj nejaký súbor bez citlivých dát (no nie bez dát!), nech si vieme urobiť predstavu, kde čo je, a čo sa asi tak má robiť.
2. Čo sa má robiť ??? Lepší popis.
Samotné overenie existencie zložky sa dá urobiť aj jednoducho cez Len(Dir(...))=0, ale tu čarujete niečo s bunkami, a bez prílohy sa mi nechce hádať.
EDIT:
Workbooks(ZakazkovaKniha) bude vždy otvorený?
.Select nepoužívajte, ak to nie je nevyhnutné. Použite súradnicové adresovanie bunky cez Cells(y,x)
Nepoužívajte iba Next, ale radšej Next f1. Nepomýlite si tak cykly.
Čo ak Find("System Volume Information") nenájde nič - chyba. Treba ošetriť cez On Error
Raz používate Cells() a hneď na to Workbooks(ZakazkovaKniha)... Je dobré makru určiť, ktorý zošit/list sa spracováva. Nie iba samotné Range/Cells ale aj zošit/list
Chýba funkcia KontrolaZnaku.
...
Bez prílohy + popisu + vzorových dát ani ranu...
Ak stlačíte ľavý Alt+F11 a otvorí sa okno VBA, a označíte list v "Project - VBAProject", akú hodnotu má položka "Visible" v "Properties - Hárok1" ?
Skúsil ste Opraviť inštaláciu v Ovládacom panely?
Kompletne odinštalujte Office cez OfficeCleaner
Možnosť č. 2: Úplné odinštalovanie balíka Office pomocou nástroja na odinštalovanie
Potom skúste v príkazovom riadku (ako správca) spustiť
sfc -scannow
Aktualizujte Win
Nainštalujte znovu Office.
paráda, to ma ani netrklo ...
Maticový vzorec (Ctrl+Shift+Enter):
=LARGE(IF(SUBTOTAL(103;OFFSET(B4;ROW(B5:B23)-4;));B5:B23);2)
=LARGE(KDYŽ(SUBTOTAL(103;POSUN(B4;ŘÁDEK(B5:B23)-4;));B5:B23);2)
prípadne obaliť do IFERROR pre prípad, že tam ani tie 2 nebudú...
Ten pomocný list je tam ešte z môjho príkladu na čisto vzorcové riešenie z 3.10.2021 15:28.
Zase sa to tu mieša krížom krážom, lebo ja som odpovedal pre pavol14pavol
Ak chce tento súbor použiť simona1 na makro, tak samozrejme nepotrebuje žiadny zjednocovací pomocný list.
Jablká a hrušky, ach jaj ...
V tomto prípade je fuk, na ktorom stojíte liste, a aká oblasť je označená. Zistí si to samé podľa stĺpca A pokiaľ je vyplnené, a pre každý riadok určí koniec. Hodnoty zapíše naraz - rýchlejšie.
Sub vloztextdoprvejprazdnejbunky2()
Dim Bunka As Range, RNG As Range
For Each Bunka In Range(Hárok5.Cells(Rows.Count, "A").End(xlUp), Hárok5.Range("A1")).Cells
If Bunka <> "" Then
Set Bunka = Bunka.EntireRow.Cells(Columns.Count).End(xlToLeft).Offset(, 1)
If RNG Is Nothing Then Set RNG = Bunka Else Set RNG = Union(RNG, Bunka)
End If
Next Bunka
If Not RNG Is Nothing Then RNG.Value = "tvoj text"
End Sub
Nerozumiem čo potrebujete.
Ak chcete kontrolovať, či sa zmení hodnota v bunke C2 po výbere z rozbaľovacieho zoznamu voči tej hodnote, ktorá tam bola pred výberom z rozbaľovacieho zoznamu, tak musíte mať predchádzajúcu hodnotu niekde uloženú (globálna premenná, iná bunka, vo vlastnostiach súboru), a porovnať novú so starou. Až potom prípadne vykonať makro.
Ak potrebujete zistiť, či sa zmenili samotné hodnoty rozbaľovacieho zoznamu (teda A2:A7), tak to urobíte rovnako ako predchádzajúce, len budete mať odložené staré hodnoty A2:A7. Ale tu to bude fungovať len v prípade, že sú zadávané manuálne. Ak budú počítané vzorcom, to je problém. Potom jedine robiť kontrolu v metóde Worksheet_Calculate.
A čo ak tam bude figura 3x alebo viac? Ako porovnám dátumy? 1-2, 1-3, 2-3, max-min?
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.