Excel VBA - práce s listy

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

mihalan
nováček
Příspěvky: 2
Registrován: září 19
Pohlaví: Nespecifikováno

Excel VBA - práce s listy

Příspěvekod mihalan » 09 zář 2019 17:06

Dobrý den,
potřeboval bych poradit. Potřeboval bych vytvořit makro, které by umělo z Excelu
před.xlsx
vytvořit Excel
po.xlsx


Popis práce Makra:
V
před.xlsx
jsou v List1 jsou dva sloupce(B, C) a v List2 je tabulka
Potřebuji
-vytvořit tolik listů kolik je plných buněk v prvním sloupci v List1, prázdné řádky vynechat (v příkladu: 9 plných řádků = 9 vytvořených listů)
-pojmenovat každý list podle prvního sloupce (v příkladu: 1. vytvořený list se bude jmenovat: D.1
2. vytvořený list se bude jmenovat: PS 01-01-01)
-do listů, kterým začíná jméno buď na "PS" nebo "SO" nebo číslo se vloží tabulka z List2
- do těchto tabulek se
a) do buňky C3 vloží odpovídající text z 1. sloupce z list1
b) do bunky A5 vloží odpovídající text z 2. sloupce z list1
- do listů, kterým NEzačíná jméno buď na "PS" nebo "SO" nebo číslo se vloží
a) do bunky B9 text odpovídající text z 1. sloupce z list1
b) do bunky C9 se vloží odpovídající text z 2. sloupce z list1
- do 1. sloupce v List1 vložit hypertextový odkaz, který bude odkazovat na příslušný list


Díky moc za pomoc
Nemáte oprávnění prohlížet přiložené soubory.



Reklama
Uživatelský avatar
elninoslov
Level 2
Level 2
Příspěvky: 211
Registrován: červen 13
Pohlaví: Muž

Re: Excel VBA - práce s listy

Příspěvekod elninoslov » 10 zář 2019 09:27

Pod pojmom "vložit" sa rozumie vždy hodnota. Vy máte ale v príklade výsledku vzorce. To je fuk, tu máte verziu kde je jasné v makre, že riadky s .Value vkladajú hodnotu (teraz zelené, vyradené apostrofom z činnosti), a riadky s .Formula vkladajú vzorce.

Pozor! Nieje to ošetrené na situáciu, že:
a) v bunkách budú znaky, ktoré nesmú byť použité v názvoch listov
b) v bunkách je viac znakov ako 31 (maximálna dĺžka názvu listu)
c) list s daným názvom už existuje

Ďalej si dajte pozor aj na to, aby ste v bunkách nemal prebytočné medzery, ako teraz pred " D.2" a " E.1.6"

Kód: Vybrat vše

Sub VytvorListy()
Dim D(), Radku As Long, i As Long, Idx As Integer, WS As Worksheet

    With wsData
        Radku = .Cells(Rows.Count, 2).End(xlUp).Row - 1
        If Radku = 0 Then MsgBox "Chybějí data", vbExclamation: Exit Sub
        D = .Cells(2, 2).Resize(Radku, 2).Value2
    End With
   
    Application.ScreenUpdating = False
   
    With ThisWorkbook
        Idx = .Worksheets.Count
        For i = 1 To Radku
            If Not IsEmpty(D(i, 1)) Then
                If Left$(D(i, 1), 2) = "PS" Or Left$(D(i, 1), 2) = "SO" Or IsNumeric(Left$(D(i, 1), 1)) Then
                    wsSablona.Copy After:=.Worksheets(Idx)
                    Set WS = .Worksheets(Idx + 1)
                    With WS
                        '.Cells(3, 3).Value = D(i, 1)
                        '.Cells(5, 1).Value = D(i, 2)
                        .Cells(3, 3).Formula = "='" & wsData.Name & "'!B" & i + 1
                        .Cells(5, 1).Formula = "='" & wsData.Name & "'!C" & i + 1
                    End With
                Else
                    .Worksheets.Add After:=.Worksheets(Idx)
                    Set WS = .Worksheets(Idx + 1)
                    With WS.Cells(9, 2).Resize(, 2)
                        '.Value = Array(D(i, 1), D(i, 2))
                        .Formula = Array("='" & wsData.Name & "'!B" & i + 1, "='" & wsData.Name & "'!C" & i + 1)
                        With .Font
                            .Bold = True
                            .Size = 12
                            .Name = "Arial CE"
                        End With
                    End With
                End If
               
                Idx = Idx + 1
                WS.Name = D(i, 1)
                wsData.Hyperlinks.Add Anchor:=wsData.Cells(i + 1, 2), Address:="", SubAddress:="'" & D(i, 1) & "'!A1", TextToDisplay:=CStr(D(i, 1))
            End If
        Next i
    End With
   
    Application.ScreenUpdating = True
End Sub
Nemáte oprávnění prohlížet přiložené soubory.

mihalan
nováček
Příspěvky: 2
Registrován: září 19
Pohlaví: Nespecifikováno

Re: Excel VBA - práce s listy

Příspěvekod mihalan » 10 zář 2019 15:56

Dobrý den,
to je skvělé. Moc Vám děkuji. :thumbup:


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • excel - práce se staženými daty
    od Stene » 02 srp 2019 20:40 » v Kancelářské balíky
    1
    660
    od Eddie75
    02 srp 2019 21:34
  • PADÁ DO LIŠTY
    od Donator_HD » 06 kvě 2019 15:12 » v Hry
    3
    514
    od Donator_HD
    06 kvě 2019 21:09
  • Umístění lišty v průzkumníku Windows
    od Vetrnik » 27 lis 2018 08:35 » v Windows 10, 8, 7, Vista, XP…
    7
    1066
    od Vetrnik
    05 led 2019 22:23
  • Třídění řádků na různé listy
    od Rexlopek » 17 črc 2019 15:15 » v Kancelářské balíky
    5
    940
    od MePExG
    18 črc 2019 20:09
  • Práce s 3D SW
    od Steellady » 30 říj 2019 16:46 » v Nabídka práce
    0
    394
    od Steellady
    30 říj 2019 16:46

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 1 host