Příspěvky uživatele


< návrat zpět

Strana:  1 ... « předchozí  25 26 27 28 29 30 31 32 33   další » ... 53

Jeden list = databáze všech materiálů, případně jejich rozdělení dle skladu.
Druhý list = databáze všech pohybů materiálu
Třetí list výdejový doklad
Čtvrtý list příjmový doklad
Pátý list řekněme takový ovládací, skrze který by se vytvářely příjmy, výdeje, případně nějaké sestavy - no spousta maker :-).

Nevím jak moc těch pohybů a materiálů má být, ale osobně bych šel cestou Accessu, nebo SQL databáze - přeci jen tvorba sestav je tam mnohem rychlejší a řekl bych i pohodlnější, no a když na to přijde, tak obojí lze ovládat makry přes excel a tudíž i výstupy, či ty doklady mohou být v excelu.

M@

Pomocí vzorce si je přes pomlčku rozdělit do dvou sloupců, tyto sloupce pak vložit jako hodnoty, seřadit a následně vzorcem zase spojit s pomlčkou.

M@

Problém je v tom, že při inicializaci dáváš:
ComboBox1.Style = fmStyleDropDownList
Tenhle řádek smaž a je to.
Pokud chceš povolit zápis jen při výběru někdo jiný, tak bys měl při změně combo ověřit co bylo vybránu a pokud je to "Někdo jiný..." tak provést:
ComboBox1.Style = fmStyleDropDownCombo

M@

M@

Editor maker -> vložit modul -> do modulu vložit:
Public Function SVYHLEDAT2(co As String, oblast As Range, sloupec As Single) As String
For i = 1 To oblast.Rows.Count
If oblast.Cells(i, 1) = co Then If SVYHLEDAT2 <> "" Then SVYHLEDAT2 = SVYHLEDAT2 & "; " & oblast.Cells(i, sloupec) Else SVYHLEDAT2 = oblast.Cells(i, sloupec)
Next
If SVYHLEDAT2 = "" Then SVYHLEDAT2 = "NENALEZENO"
End Function

Do buňky pak napsat vzorec v podobě:
=SVYHLEDAT2("co";oblast;číslo sloupce)
=SVYHLEDAT2("X";A1:B5;2)
přičemž "co" může být reprezentováno hodnotou v nějaké buňce.

M@

Nedalo mi to a ještě jsem se připojil do práce, tam mě to hned vykoplo - ty indexy jsou jiné a kupodivu mi to nebralo ani ActiveSheet.
Nakonec ale vyřešeno pomocí:
Public Sub smazat()
For Each Shape In List4.Shapes
If InStr(1, Shape.Name, "Comment", vbTextCompare) <> 0 And Shape.Width = 14.25 Then
List4.Shapes(Shape.Name).Delete
End If
Next
End Sub


Ještě jednou díky
M@

Trochu jsem zagooglil a není to nijak složité :-)
Public Sub pok()

SetAttr "D:\FB_Fields.txt", 0

SetAttr "D:\FB_Fields.txt", vbReadOnly

MsgBox GetAttr("D:\FB_Fields.txt")

End Sub

Komentář asi není třeba :-)
M@

Vypadá to nadějně, hned zítra v práci zkusím.
Vypadá to, že jelikož se těmito dvěmi indexy smaže všech 9 vlajek, že některé musí mít stejný index, což je asi to co excel zblbne a zhroutí - ale stejně mi hlava nebere jak se to stalo :-).

Díky za Tip a snad i řešení.

M@

Ahoj,

mám soubor se spoustou dat a maker, jeden z úkonů mi do buňek vkládá komentář bez textu, ale s vlaječkou na pozadí. Po několika letech používání začal soubor padat (respektive celý excel), aniž bych věděl proč.
Po odstranění veškerých objektů, dat, komentářů mi na listu zůstalo pár vlajek, ale nejsou zde jako objekt a nevím jak je smazat - ani nevím jak se tam dostaly, různým testováním jsem se dostal k tomu, že při najetí myší nad tuto vlaječku spadne excel.
Nenapadne někoho jak se jich zbavit v živé verzi mého souboru, aniž bych musel vytvářet celý list znovu?
V příloze posílám ukázku bez dat.

Díky
M@

Mám to odzkoušený jen ve VB (tzn. s formulářem, tam to funguje nějak takto:

1) krok = připojení prvku (knihovny) pro ovládání portu MSCOMM32.ocx (je to vidět i na linku od Pokiho)
2) pc bez Visual Basicu vyžaduje registraci (viz. link níže)
3) Při loadu formu otevřít port
Mscomm1.portopen=true
4) Zachycení události přímo na prvku sériového portu
Private Sub MSComm1_OnComm()
IF MSComm1.CommEvent = comEvReceive Then
proměnná = MSComm1.input
End if
End Sub

5) Při unloadu formu zavřít port
Mscomm1.portopen=false

Takto to funguje ve VB a čte to data poslaná čtečkou magnetických karet, přičemž v proměnné jsou získaná data - předpokládám že v tvém případě to bude vypadat jinak, ale už si musíš zachytit sám co který stav znamená.
Řekl bych že by to mělo fungovat i s formulářem ve VBA.
Mělo by to fungovat i bez formuláře, ale to jsem nikdy nezkoušel a tak přibalím ještě jeden odkaz:
http://www.excelforum.com/excel-programming/539481-tutorial-use-mscomm-with-a-serial-device.html

M@

Formát Buňky -> vlastní a zadat 000#

M@

S menší podporou googlu a vyhledání převodů soustav (http://www.visualbasic.happycodings.com/Applications-VBA/code4.html), jsem to nějak spáchal, viz. příloha.

M@

Druhá možnost, ne tak elegantní je přes pomocný sloupec a funkci svyhledat, pokud záznam mezi těmi 400 existuje, tak si ho označit 1, jinak 0, no a pak automatickým fitrem vyfitrovat pouze 1. Ale rozšířený filtr je určitě rychlejší :-)

M@

S těma přílohama je to volaké divné :-).
Funkce na to asi neexistuje, ale makrem se dá ošetřit spousta věcí :-), ale když to člověk nevidí tak je to fakt blbý :-).

přidávání pořadového čísla, něco jako ID v databázi lze provést třeba následovně:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then
Dim radek As String
radek = Target.Row & ":" & Target.Row

If Application.WorksheetFunction.CountA(Range(radek)) > 0 Then
Cells(Target.Row, 1) = Application.WorksheetFunction.Max(Range("A:A")) + 1
End If
End If
End Sub

M@

Ještě jeden pokus přílohy, jinak nevím, přidám i kód :-):

Do modulu vložit:
'Deklarace
Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

'Konstanty
Public Const SND_SYNC = &H0

Public Sub zahraj()
sndPlaySound "tada.wav", SND_SYNC 'do uvozovek si vložte adresu k souboru, včetně názvu
End Sub

Public Sub stop_play() 'není použito, ale bude-li zvuk delší a chcete-li ho stopnout, tak lze použít
sndPlaySound vbNullString, 0
End Sub

Public Sub casovac()
If Cells(2, 2) = 1 Then Application.OnTime Now + (1 / 24 / 60), "over"

End Sub

Public Sub over()
For rd = 4 To List1.UsedRange.Rows.Count
If Cells(rd, 10) <> "končiaci" Then
If Hour(Time) = Hour(Cells(rd, 10) - (1 / 24 / 60)) And Minute(Time) = Minute(Cells(rd, 10) - (1 / 24 / 60)) Then zahraj
End If
Next
Call casovac
End Sub

Public Sub spustit()
Cells(2, 2) = 1
Call casovac
End Sub

Public Sub zastavit()
Cells(2, 2) = 0
End Sub


Ve sloupci 10 jsou odjezdy a oblast začíná řádkem 4. Buňka B2 obsahuje buď 1, nebo 0 - má-li se naplánovat další úloha, či nikoliv.

Na ploše 2 tlačítka:
1) spouští makro "Spustit"
2) spouští makro "Zastavit"

M@


Strana:  1 ... « předchozí  25 26 27 28 29 30 31 32 33   další » ... 53

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

Týden v roce

Petr92 • 16.7. 15:34

Řazení podle času v kategoriích

veny • 16.7. 11:34

špatný výpočet ze zisku - příčina?

Anonym • 12.7. 22:56

špatný výpočet ze zisku - příčina?

Jakoby • 12.7. 12:35

Řazení podle času v kategoriích

Marekh • 12.7. 9:55

Porovnávací Tabulka

Jess • 8.7. 20:49

Vzorec pro zkopírování obsahu buňky.

veny • 6.7. 8:28