Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  2 3 4 5 6 7 8 9 10   další »

odstraněno

Podle popisu to bude něco jako jako databáze (db) osob, kde co osoba to řádek. Předpokládejme že to tak je a že můžeme použít VBA. Jestli ne, tak následující text je k ničemu.

Data bych skladoval na velmi skrytém listě (VeryHidden).
Každá osoba by si určila heslo, na to by se do db přidal extra sloupec (nebo i více sloupců pro skupinové či generální heslo).
Na viditelném listě by bylo tlačítko a po kliknutí by vyskočil přihlašovací formulář s ComboBoxem pro výběr osoby a další textové políčko pro zadání hesla.
Pokud bude shoda s vybranou osobou a příslušným heslem, tak
na viditelný list natáhnu data dané osoby - a to buď do listu anebo do formuláře - záleží co bude vhodnější pro plánovaný účel.
Tož zatím jen tak, jelikož nevím zdali to nerozvíjím nechtěným směrem ...

Ahoj, rád bych se zeptal zdali jste se s tím taky setkali. Jde o to, že po léta fungující makra najednou začínají házet chybu. Všímám si to už tak cca 2 měsíce. Často pomůže úplný restart PC, ale teď část kolegů dostalo nové HP notebooky a tento, naprosto běžný kód hází chybu hned na druhém řádku. Když ho zakometuji, tak chybuje ten další: .Zoom = False
Worksheet wsNew v daném okamžiku existuje a není zamknutý.
Stejně jako strOblastTisku má správnou hodnotu.
With wsNew.PageSetup
.PrintArea = strOblastTisku
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.LeftMargin = Application.InchesToPoints(0.31496062992126)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.196850393700787)
.BottomMargin = Application.InchesToPoints(0.196850393700787)
.HeaderMargin = Application.InchesToPoints(0.118110236220472)
.FooterMargin = Application.InchesToPoints(0.118110236220472)
.CenterHorizontally = True
End With


Obešel jsem to přidáním příkazu na ignorování chyby On Error Resume Next, ale docela mně to zaráží.

Napsal jsem tuny procedur a poslední dobou pořád řeším nějaké chyb v kódu, které začaly vyskakovat, ale jenom někdy a jenom na některých PC.
Máte někdo taky podobné zkušenosti?

Ahoj,
mám nějaký svůj výtvor s makrama, která se spouští kliknutím na ikony. Tyto ikony jsem na list vložil normálně přes ribbon Vložení - Ikony.
Chtěl jsem, aby - když se nad ikonu najede myší, tak aby se zobrazil nějaký pomocný text.
Zde: https://www.youtube.com/watch?edufilter=NULL&v=1GvPmzuQ-sU jsem objevil postup - přes hypertextový odkaz.

Zobrazování textu po najetí myši tímto sice začalo fungovat, ale ztratilo se navázání ikony na makro, čili po kliknutí se nic nestane.

Nevíte náhodou někdo jak dosáhnout obojího? Netrvám na ikonách, klidně to mohou být i tlačítka nebo jiné Shapes...

Předem dík

nejde mi připojit soubor, takže makro vypadá takhle:Sub Test_XY()
Dim dtDnes As Date
Dim j As Integer, jMxCol As Integer, jCol As Integer
Dim rBunka As Range

ThisWorkbook.Activate

'poslední sloupec v řádku 2
jMxCol = Range("OO2").End(xlToLeft).Column

'dnes:
dtDnes = Fix(Now())

For j = 2 To jMxCol
Set rBunka = Cells(2, j)
rBunka.Select
If rBunka = dtDnes Then
rBunka.Offset(0, 15).Select 'zde podle velikosti monitoru nastavit skok doprava
rBunka.Select
rBunka.Offset(0, 32).Select 'zde podle velikosti monitoru nastavit skok doprava
' rBunka.Select
Exit For
End If
Next j

End Sub


A zavěsíš to na událost Private Sub Workbook_Open()
Call Test_XY
End Sub

Je to takové kostrbaté, ale nějak tak by to šlo. Akorát si ty odskoky musíš v makru vyladit podle své šířky monitoru.

Děkuji za navržený způsob, který mně inspiroval ke konečnému řešení. Ve finále nakonec stačilo použít Replace přímo do Inputboxu:

sgBanka = Application.InputBox(Prompt:="Zadej počet přesčasových hodin", Default:=Replace(sgPrescasy, ".", ","), Type:=1)

Ahoj, když mám tento příkaz:
sgBanka = Application.InputBox(Prompt:="Zadej počet přesčasových hodin", Default:=sgPrescasy, Type:=1)

a proměnná sgPrescasy není celé číslo (dejme tomu že má hodnoutu 4,5), tak se v inputBoxu zobrazí s tečkou místo čárky a když se zvolí OK, tak mi to do sgBanka načte nesmyslnou hodnotu 43956. Napadá mně to číslo rozbít na celou a desetinnou část a pak textově mezi to dát čárku. Ale jednak tuším, že si tím přidělám další potíže a myslím si, že na to musí být nějaký jednoduchý trik aby to inputbox chápal korektně...
Předem dík

Jenom můj poznatek ze zalamování řádků ve VBA za použití " _"
I toto má své omezení, někde kolem dvacátého zalomení to hlásilo, že dál už to nejde. Dělal jsem to kvůli přehlednosti Array, abych měl jednotlivé prvky pod sebou...

Nevím, jestli to bude fungovat, ale soudě podle následujícího kódu (ten vytvoří z excelu outlookovou zprávu), bych zkusil
OLAppointment.Body = "Zdarec!"
With OutMail
.To = "pacos1@moria.com" 'komu
.CC = "pacos2@moria.com" 'kopie
.Subject = "test odeslání e-mailu" 'předmět
.Body = "Dobrý den, " & vbCrLf & "..." & vbCrLf & "S pozdravem" 'text zprávy
.Attachments.Add "C:\Users\userXY\Documents\utahovací_momenty.pdf"
.Importance = 2 'vysoká důležitost
.Display 'zobrazí to tento e-mail s přílohou bez odeslání
' .Send 'anebo rovnou to odešle
End With

Přikládám.
chvilku mi trvalo než jsem to anonymizoval, neboť bych nerad vystavoval skutečná data.

Normálně platí ten první zaremovaný řádek, neboť cesta k DB bývá konstanta. Pro tuto verzi jsem to udělal jako proměnnou, tak aby umístěním DB byl stejný adresář
'Public Const DataSourcePath As String = "\\brsv002\Servis\Prehled_ND\Prehled_ND.mdb" 'cesta k DB na serveru
Public DataSourcePath As String 'toto je pro verzi, kdy DB je ve stejném adresáři jako tato konzole

Taky jsme měli léta podobný problém, bylo to ale ve sdíleném sešitě, který současně editovalo několik uživatelů. Soubor hrozně bobtnal a sem tam úplně vytuhl. Občas firma utrpěla ztrátu kvůli záhadně zmizelé informaci. Nový excel 365 dokonce toto sdílení "přestal nabízet" i když se to dalo dodatečně zobrazit.
Nakonec jsem vytvořil řešení a to tak, že data jsou uložena na serveru v databázi v mdb formátu a uživatelé mají excelovou "konzoli", která vypadá takřka stejně jako původní tabulka. Když uživatel změní nějaký řádek, tak ho odešle do DB. Každý uživatel si kdykoli může "občerstvit data" do hloubky historie jakou si nastaví.
Obrovská spokojenost i spolehlivost oproti původnímu řešení.
Pokud bys měl zájem, nemám problém řešení zveřejnit, můžeš si ho přizpůsobit svým požadavkům. Je tam několik formulářů a mraky kódu, ale vše odemčené

V příloze nástřel. Pokud je v buňce datum > 31.12.1999, tak se to podbarví, jinak ne
vyhodnocovací vzorec je tento:
=KDYŽ(JE.CHYBA(ROK($D2));NEPRAVDA;KDYŽ(ROK($D2)>1999;PRAVDA;NEPRAVDA))

Chyba s mezerou to nesouvisí.

* Nastav si stopku na příkazu MkDir.
* Mrkni, co máš v proměnné rFolder
* Pokud rFolder je o jeden podadresář hlouběji, než existující, tak ho vytvoří. Ale nevytvoří současně dva.

Takže ve stávající cestě vytvoří adresář \01 Materiál
ale nevytvoří dvě úrovně čili \01 Materiál\Tecam. To už vede k chybě kterou popisuješ.

Ta procedura má problém, s verzí excelu to nesouvisí

Tady máš ladicí procedurku (upravený extrakt ze stávajícího makra)
Sub TestMD()
Dim i As Integer, a As Integer
a = 2
i = 4
FolderPath = ThisWorkbook.Path
bFolder = Sheets("Definice poptávky").Cells(a, i).Value 'NázevDodavatele
aFolder = Sheets("Definice poptávky").Cells(a, 1).Value
rFolder = FolderPath & "\" & aFolder
sFolder = FolderPath & "\" & aFolder & "\" & bFolder 'CestaSložkyDodavatele
MkDir rFolder
If Len(Dir(sFolder, vbDirectory)) = 0 Then
ChDir FolderPath
MkDir aFolder 'Založení složky dodavatele
MkDir rFolder 'Založení složky dodavatele
End If
End Sub

UsedRange.Areas.Count je vždy = 1

Pokud vybereš nesouvisle oblast, tak to poznáš příkazem selection.areas.count, tam to bude > 1

Dotaz zněl na UsedRange, ale není známo, čeho chceš dosáhnout. Možná, že se dá použít jiných vlastností či metod objektu Range ...


Strana:  1 ... « předchozí  2 3 4 5 6 7 8 9 10   další »

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Aktivní diskuse

Vynásobit hodnoty kurzem - Power Query

Alfan • 26.4. 7:56

Relativní cesta - zdroje Power Query

Alfan • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

elninoslov • 26.4. 7:54

Vynásobit hodnoty kurzem - Power Query

lubo • 25.4. 19:18

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 15:12

Relativní cesta - zdroje Power Query

Alfan • 25.4. 15:08

Relativní cesta - zdroje Power Query

elninoslov • 25.4. 14:21