tanszek:oktatas:muszaki_informatika:vba_feladatok
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:muszaki_informatika:vba_feladatok [2024/04/23 18:43] – [Hogyan Működik?] knehez | tanszek:oktatas:muszaki_informatika:vba_feladatok [2024/04/24 11:12] (current) – [Hogyan Működik?] knehez | ||
|---|---|---|---|
| Line 191: | Line 191: | ||
| End Sub | End Sub | ||
| </ | </ | ||
| - | ==== Hogyan Működik? ==== | ||
| - | |||
| - | * A makró a '' | ||
| - | * A példában szándékosan generálunk egy hibát az osztásnál, | ||
| - | * Ha ez a hiba megtörténik, | ||
| - | * Az '' | ||
| - | * A hibakezelő részben lehetőség van további tevékenységekre, | ||
| - | |||
| ==== Hogyan Működik? ==== | ==== Hogyan Működik? ==== | ||
| Line 248: | Line 240: | ||
| Ez a makró jó alapja lehet bonyolultabb dinamikus diagramok létrehozásának is, ahol további formázási és adatkezelési lehetőségek is használhatók. | Ez a makró jó alapja lehet bonyolultabb dinamikus diagramok létrehozásának is, ahol további formázási és adatkezelési lehetőségek is használhatók. | ||
| + | |||
| + | ====== 7. Automatikus tartalomjegyzék készítése ====== | ||
| + | |||
| + | Írjuk egy makrót, ami egy tartalomjegyzéket készít a munkafüzet összes munkalapjáról az első munkalap helyén, hozzáadva egy új munkalapot, amit **Tartalomjegyzék**-nek nevez el, és beilleszti a munkalapok hivatkozásait. | ||
| + | |||
| + | <sxh vb> | ||
| + | Sub Tartalomjegyzek() | ||
| + | Dim i As Long | ||
| + | | ||
| + | On Error Resume Next | ||
| + | | ||
| + | Application.DisplayAlerts = False | ||
| + | Worksheets(" | ||
| + | Application.DisplayAlerts = True | ||
| + | | ||
| + | ThisWorkbook.Sheets.Add Before: | ||
| + | | ||
| + | ActiveSheet.Name = " | ||
| + | | ||
| + | For i = 1 To Sheets.Count | ||
| + | With ActiveSheet | ||
| + | .Hyperlinks.Add _ | ||
| + | Anchor: | ||
| + | Address: | ||
| + | SubAddress: | ||
| + | ScreenTip: | ||
| + | TextToDisplay: | ||
| + | End With | ||
| + | Next i | ||
| + | End Sub | ||
| + | </ | ||
| + | ==== Hogyan Működik? ==== | ||
| + | * Hiba Kezelés: //On Error Resume Next// parancs utasítja a VBA-t, hogy folytassa a futást, ha hiba történik a makró futtatása során. | ||
| + | * Figyelmeztetések Kikapcsolása: | ||
| + | |||
| + | ====== 8. A kiválasztott cellák képéként másolása ====== | ||
| + | Válasszunk ki egy tarományt amiben vannak értékek, majd futtassuk | ||
| + | <sxh vb> | ||
| + | Sub PasteAsPicture() | ||
| + | Application.CutCopyMode = False | ||
| + | Selection.Copy | ||
| + | ActiveSheet.Pictures.Paste.Select | ||
| + | End Sub | ||
| + | </ | ||
| + | |||
| + | ====== 9. Célkeresés ====== | ||
| + | |||
| + | Nagyon hasznos funkció, ha egy összetett képletek szerint változó cella értékét visszafelé akarjuk próbálgatni, | ||
| + | |||
| + | Például: adott egy számítás ami egy rendelés árát számolja ki, figyelembe véve az adót, a szállítási költséget. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | A példában 4000-ot kell fizetni az áruért. De mit tudunk csinálni ha csak **3500Ft** van kéznél? Valahogy visszafelé kellene számolni, hogy megtudjuk ekkor mekkora alap árat engedhetünk meg magunknak. | ||
| + | |||
| + | <sxh vb> | ||
| + | Sub GoalSeek() | ||
| + | Dim Target As Long | ||
| + | | ||
| + | On Error GoTo Errorhandler | ||
| + | | ||
| + | Target = InputBox(" | ||
| + | Worksheets(" | ||
| + | Rem ChangingCell = az alapár .... keressük az összesen = ' | ||
| + | Rem | ||
| + | With ActiveSheet.Range(" | ||
| + | .GoalSeek _ | ||
| + | Goal: | ||
| + | ChangingCell: | ||
| + | End With | ||
| + | | ||
| + | Exit Sub | ||
| + | Errorhandler: | ||
| + | End Sub | ||
| + | </ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | A példában a B5 helyére az //' | ||
| + | |||
| + | A szkript megadja hogy a 3500Ft-os bruttó ár, **787.40Ft**-os alapárhoz tartozik. | ||
tanszek/oktatas/muszaki_informatika/vba_feladatok.1713897817.txt.gz · Last modified: 2024/04/23 18:43 by knehez
