https://www.connectionstrings.com/
@ elnino
Bez problému soubor otevřu a můžu s ním pracovat. Pokud vytvořím další list a chci přejmenovat na Historie, Excel protestuje.
https://www.linkedin.com/pulse/why-cant-you-name-worksheet-history-excel-ajay-anand
Deš na to moc složitě.
Do toho makra, které se má spouštět pouze jednou dáš na začátek či konec kód pro vložení aktuálního data:Worksheets("historie").Cells(1, 4).Value = Date
a do Private Sub Workbook_Open()
If Worksheets("historie").Cells(1, 4).Value = Date Then Exit Sub
Call MakroCoNecoDela
Pár poznámek:
Cells(1, 4) - není adresa buňky A4
Worksheets("historie") - seš si opravdu jistý jménem toho listu? Excel nepovoluje pojmenovat list jménem historie.
Proč makro? Stejného výsledku dosáhneš vzorcem (DNES) v buňce.
Proměnná rng vrací adresu buňky z listu "List2" hledaného jména. Tedy pro jméno Beáta vrátí adresu $D$2.
Pokud by došlo k tomu, že na nějakém z listů by se vyskytlo jméno, které by nebylo současně přítomno na obou listech vedlo by to k chybě v kódu, protože proměnná rng by byla prázdná.
Řádek If Not rng Is Nothing Then tedy testuje zda proměnná rng není prázdná, pokud by byla znamená to, že hledané jméno nebylo nalezeno a tento kód
Select Case Objednal
Case "AA"
rng.Offset(, 2).Value = Datum
Case "BB"
rng.Offset(, 3).Value = Datum
Case Else
'pro případ, že by položka Objednal neměla hodnoty AA nebo BB
'?????
End Select
by se přeskočil a zobrazil se MsgBox s chybovou hláškou.
Upraveno.
Jelikož podporu nemá ani excel pro android přímo od Microsoftu, silně pochybuju, že by se našla jiná aplikace.
Asi sem fakt debil, ale nechápu co má být tedy výsledkem. Pokud použiju Tebou navržený postup, výsledkem bude to, že všechny hodnoty ve sloupci C větší jak 1 budou červené.
Stejného výsledku dosáhnu podmíněným formátem, zvýrazni všechny buňky ve sloupci C větší jak 1 bez ohledu na nějaké trojce.
A proč ta šaškárna s trojicí buněk?
Vždyť se stejně obarví všechny buňky větší jak 1.
Ne, těch změn v kódu bylo více
ad 19:25
Konkrétně Makro1 předává hodnotu Makru2 né naopak.
Pokud chceš, aby byla proměnná dostupná pro více procedur a byla dostupná i po ukončení některé z nich, tak ji deklaruj na začátku modulu (mimo jakoukoliv proceduru).
https://macerayarislari.com/cs/300-examples/300-excel-vba-byref-and-byval.html
https://www.youtube.com/watch?v=OY6vA_3w96M
ad 20:36
List3 a List4 je tzv CodeName listu, který si můžeš změnit na něco smysluplnějšího v okně Properties např wsVstupy a wsICA.
Fór je v tom, že tento název je dostupný pouze v editoru VBA a je nezávislý na názvu (Name) listu, který se Ti zobrazuje na oušku.
Samozřejmě můžeš v kódu místo Codename List3 použít Worksheets("Vstupy") a ano je potřeba provést změnu v celém kódu.
Pokud ale uvedeš jméno listu "natvrdo" do kódu [(Worksheets("Vstupy")] a poté se rozhodneš Ty nebo někdo jiný název listu změnit, kód nebude funkční a budeš muset provést úpravu kódu.
Pokud budeš používat CodeName listu, tento problém odpadá.
ad 21:11
soubor upraven
????
Jaký userform? Nic takového v souboru není.
Nebo motáš několik věcí dohromady?
Nevidím důvod, proč by ten řádek kódu neměl být funkční pod UserFormem. Jakou hodnotu má proměnná RowsA?
Napadlo mě řešení pomocí polí, jednotlivá data z listů se načtou do polí, které se v cyklu porovnají mezi sebou. Pokud je splněna podmínka, do dalšího pole se zapíše požadovaná hodnota, toto pole se nakonec vloží na příslušnou pozici do listu.
Nijak.
=KDYŽ(SUMA(D5:N5)<>0;SUMA(D5:N5);"")
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.