Příspěvky uživatele


< návrat zpět

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

Nebo tohle, předpokldádam že máš office 32bit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long

Sub OpenExistingNotepadAndSendText()
Dim strX As String
Dim hwndNotepad As Long

' Text k odeslání
strX = "Toto je testovací text do nového listu Notepadu."

' Najdi okno Notepadu
hwndNotepad = FindWindow("Notepad", vbNullString)

If hwndNotepad = 0 Then
' Notepad není spuštěn, otevři ho
Shell "Notepad", vbNormalFocus
' Chvilku počkej, než se Notepad otevře
Application.Wait Now + TimeValue("00:00:02")

' Najdi okno Notepadu znovu
hwndNotepad = FindWindow("Notepad", vbNullString)
End If

' Pokud bylo okno nalezeno
If hwndNotepad <> 0 Then
' Nastav fokus na okno Notepadu
SetForegroundWindow hwndNotepad

' Otevři nový list (Ctrl+N)
SendKeys "^(n)", True

' Počkej malou chvíli na vytvoření nového listu
Application.Wait Now + TimeValue("00:00:01")

' Odešli text do nového listu
SendKeys strX, True
Else
MsgBox "Nepodařilo se najít nebo otevřít okno Notepadu.", vbExclamation
End If
End Sub

Ahoj,

1. V příloze zasílám možnost jak by mohla fungovat Alokace, jelikož ale nevím jak by vypadala kritéria a kam by se měli zapisovat hodnoty, tak to není úplně ono. Chtělo by to vice specifikovat.

2. Problém se sdílením souboru, tady bohužel nemám zkušenosti, možná poradí někdo jiný

3. Doladil jsem "Workbook_Open" co se týče hesel.

4. Vynucení otevření souboru v Office, stejný jako u bodu 2 nemám zkušenosti.

zdravím,
přesne jak píše "Ladys" tabIndex nastavit dle pořadí jak potřebujete, nebo použít "SetFocus" viz kód.
Ale první tlačítko bych dal tedy TabIndex = 0
druhé tlačítko TabIndex = 1
třetí tlačítko TabIndex = 2

Private Sub UserForm_Initialize()
' Nastaví focus na první tlačítko při načtení UserFormu
tl1.SetFocus
End Sub

Private Sub tl1_Click()
' Po stisknutí tl1 se nastaví focus na tl2
tl2.SetFocus
End Sub

Private Sub tl2_Click()
' Po stisknutí tl2 se nastaví focus na tl3
tl3.SetFocus
End Sub

Private Sub tl3_Click()
' Po stisknutí tl3 se nastaví focus na tl1 (cyklus)
tl1.SetFocus
End Sub

vložil jsem progress bar do vašeho sešitu pro ukázku.

mazání provedete příkazem z kontextového menu. (pravým tlačítkem myši, vybrat z menu "Smazat")

Dobrý den,
můžete napsat v jakém formátu vypadá jeden řádek?
třeba "MenoPriezviskoTitul1.Titul2.Oddelenie1" jde mi o to jestli mají za titulem tečku nebo ne? jestli má někdo dvě jména a 1 přímení, nebo titul před jménem titul za jménem. proste jaké jsou různé varianty?

* edit: koukám že už to funguje tak nic 1

Dobrý den,
až teď vidím že mail od Vás skončil ve spamu 8 , podívám se na to a pošlu zpátky na ten samý email. 1

*opraveno a zasláno emailem

ahoj, chybí příloha

ale, podívej se na tohle třeba pomůže 10

Ahoj,
náhodná čísla, se ti mění proto, že funkce NÁHČÍSLO() se aktualizuje pokaždé, když Excel provede jakýkoli výpočet nebo změnu. Jdi na Formát > Možnosti > Výpočty a vyber Ruční. nebo vlož na začátek makra "addNewRow" tento příkaz:Application.Calculation = xlCalculationManual Takto bude Excel aktualizovat vzorce pouze tehdy, když stiskneš F9. pokud ti to takto nebude vyhovovat tak jediné náhodně generovat makrem, než vzorcem.

Dobrý den,
zkuste tohle vložit do modulu VBA.

pro tabulku 1: C5:M30
Sub Tisk_Tab1()
Dim pocetKopii As Integer

' Zadejte počet kópií
pocetKopii = InputBox("Zadajte počet kópií pre tabuľku 1:", "Počet kópií")

If IsNumeric(pocetKopii) And pocetKopii > 0 Then
With ActiveSheet.PageSetup
.PrintArea = "$C$5:$M$30"
End With
' Zobrazení náhledu tisku
ActiveSheet.PrintOut Preview:=True, Copies:=pocetKopii
Else
MsgBox "Prosím, zadajte platné číslo kópií.", vbExclamation
End If
End Sub


pro tabulku 2: E13:I50
Sub Tisk_Tab2()
Dim pocetKopii As Integer

' Zadejte počet kópií
pocetKopii = InputBox("Zadajte počet kópií pre tabuľku 2:", "Počet kópií")


If IsNumeric(pocetKopii) And pocetKopii > 0 Then
With ActiveSheet.PageSetup
.PrintArea = "$E$13:$I$50"
End With
' Zobrazení náhledu tisku
ActiveSheet.PrintOut Preview:=True, Copies:=pocetKopii
Else
MsgBox "Prosím, zadajte platné číslo kópií.", vbExclamation
End If
End Sub

Dobrý den,

Správné organizování kódu ve VBA je důležité nejen pro rychlost provádění, ale také pro udržitelnost, přehlednost a možnost snadného ladění a rozšiřování kódu v budoucnu. Zde jsou některé klíčové aspekty, které byste měli zvážit:

1. Ukládání Makra v Samostatných Modulech:

Výhody:
Přehlednost a organizace: Když jsou makra uložena v samostatných modulech, je snazší kód organizovat a rozdělit na logické části. Každý modul může mít specifickou funkci, což usnadňuje orientaci v kódu.
Znovupoužitelnost: Makra uložená v samostatných modulech lze snadno volat z jiných listů nebo dokonce z jiných sešitů.
Snadné ladění a údržba: Při ladění kódu je jednodušší najít a opravit chyby v dobře organizovaném kódu, než když je vše smíchané v jednom místě.

Nevýhody:
Menší srozumitelnost pro začátečníky: Pokud nejste zvyklí na práci s moduly, může být zpočátku matoucí rozdělovat kód do více částí.

2. Ukládání Makra v Modulích Listů (např. Sheet1):

Výhody:
Jednoduchost: Pokud máte jednoduchá makra a pracujete jen s jedním listem, může být uložení kódu přímo v modulu listu rychlejší a jednodušší na správu.
Přímá vazba na konkrétní list: Makra, která jsou specifická pro určitý list, mohou být výhodně umístěna přímo v jeho modulu.

Nevýhody:
Omezená znuvupoužitelnost: Makra uložená přímo v modulu listu nejsou snadno dostupná z jiných listů nebo sešitů.
Nepřehlednost při růstu projektu: S rostoucím počtem makra může být složité udržet přehled o tom, co se kde nachází, zvláště pokud jsou všechna makra ve stejném modulu.

3. Dopad na Výkon:
Výkonové rozdíly mezi moduly a listy: Z pohledu výkonu samotného není zásadní rozdíl mezi umístěním makra do samostatného modulu nebo do modulu listu. Rozdíl je spíše v přehlednosti a udržovatelnosti kódu.
Správné rozdělení kódu: Správné rozdělení kódu do modulů může zlepšit efektivitu práce, usnadnit ladění a zlepšit čitelnost kódu, což nepřímo přispívá k rychlejšímu a spolehlivějšímu vývoji aplikací v Excelu.

Ahoj,
vlož modul "Zamok" z přílohy, a starý modul "Oprava" smaž.
Omlouvám se za tak podrobný popis nevím jaké máš znalosti VBA, proto raději to rozepisuji víc.

1.Upravil jsem makro, ale původně nebylo řečeno, že je tam víc listů (hárků). Teď ale by mělo zamykat všechny listy

2. Přidal jsem kontextové menu pro volání makra ZamknutBunky nebo odemknutBunky to znamená že při kliknutím pravým tlačítkem myši, se na spodku lišty ukáže rozevírací menu s názvem "Zámok Hárkov" pro správnou funkčnost je potřeba přidat příkaz do "ThisWorbook" ve VBA editoru , uložit a restartovat Excel.Private Sub Workbook_Open()
Call PridejKontextMenu
End Sub

3. Na to, aby se ti spouštěli jiné makra pro zápis do buněk, budeš muset v každém makru zavolat na začátku příkaz "Call OdomknutZosit" a na konec zase příkaz "Call ZamknutZosit".
Příklad je uvedený v modulu (poslední makro)

4. Přidal jsem InputBox pro zadávání hesla při odemykání momentálně je heslo nastavené na 1111 ,takže při manuálním odemykání buněk budeš vyzván k zadání hesla, při ostatních volaní maker, heslo žádat nebude, stejně nebude vyskakovat msgbox o zamknuti nebo odemknuti.

ahoj,
vyzkoušej tohle (viz příloha). Udělal jsem tam pár změn.

Pokud by to stále nefungovalo musel bych vidět ten sešit.

*rozbal a naimportuj modul "oprava" do svého sešitu.

ahoj zkus tohle:

Option Explicit
Dim heslo As String

Sub NastavitHeslo()
heslo = "tvojeHeslo"
End Sub

Sub ZamknutZosit()
Call NastavitHeslo
Dim ws As Worksheet

' Zamknutie konkrétnych hárkov
Set ws = ThisWorkbook.Sheets("Hárok1")
ws.Unprotect Password:=heslo
ws.Cells.Locked = True
ws.Range("H5,H7,E13:E64,E76:G128,G13:G64,G76:G128,D132,D134,D136,D138").Locked = False
ws.Protect Password:=heslo, AllowUsingPivotTables:=True, AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True
ws.EnableSelection = xlUnlockedCells

Set ws = ThisWorkbook.Sheets("Hárok2")
ws.Unprotect Password:=heslo
ws.Cells.Locked = True
ws.Range("D2").Locked = False
ws.Protect Password:=heslo, AllowUsingPivotTables:=True, AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True
ws.EnableSelection = xlUnlockedCells

Set ws = ThisWorkbook.Sheets("Hárok5")
ws.Unprotect Password:=heslo
ws.Cells.Locked = True
ws.Range("E1,F1,E53:E56,H53:H56").Locked = False
ws.Protect Password:=heslo, AllowUsingPivotTables:=True, AllowSorting:=True, AllowFiltering:=True, AllowFormattingCells:=True
ws.EnableSelection = xlUnlockedCells

' Zamknutie celého zošita
ThisWorkbook.Protect Password:=heslo, Structure:=True, Windows:=False

MsgBox "Zošit a hárky boli úspešne zamknuté."
End Sub

Sub OdomknutZosit()
Call NastavitHeslo
Dim ws As Worksheet

' Odomknutie konkrétnych hárkov
Set ws = ThisWorkbook.Sheets("Hárok1")
ws.Unprotect Password:=heslo
ws.Range("H5,H7,E13:E64,E76:G128,G13:G64,G76:G128,D132,D134,D136,D138").Locked = True

Set ws = ThisWorkbook.Sheets("Hárok2")
ws.Unprotect Password:=heslo
ws.Range("D2").Locked = True

Set ws = ThisWorkbook.Sheets("Hárok5")
ws.Unprotect Password:=heslo
ws.Range("E1,F1,E53:E56,H53:H56").Locked = True

' Odomknutie celého zošita
ThisWorkbook.Unprotect Password:=heslo

MsgBox "Zošit a hárky boli úspešne odomknuté."
End Sub

Ty kráso, to jsem ale lama.
Děkuji ti Lubo, perfektní 1

Ahoj všem, 10

mám soubor kde mi graf vyhodí rovnice lineárního trendu, které potřebuji dále pak použít.
A abych je nemusel ručně vypisovat, tak jsem si myslel že zvládnu vzorečkem hodnoty vypočítat.

Použil jsem SLOPE, INTERCEPT a LINREGRESE, ale ani jedno mi nevrací úplně hodnoty, které jsou v grafu. 6

Já moc znalý v těchto věcech nejsem, tak pokud by byl někdo ochotný mi pomoct byl bych moc vděčný. 1
Posílám soubor pro lepší pochopení mého problému.


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

Uživatelské menu

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

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

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.

On-line nástroje