Kopírování "jmen" pod sebe dle daného počtu

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

Moderátor: Mods_senior

Zamčeno
saabturboclub
Level 1
Level 1
Příspěvky: 99
Registrován: 09 črc 2010 04:39

Kopírování "jmen" pod sebe dle daného počtu

Příspěvek od saabturboclub »

Ahoj,
potřeboval bych poradit, jak v excelu (VB) udělám následovné: př: oblast B2:B13 bude obsahovat přítomné lidi v práci (max. 11lidí) s tím, že počet se liší podle docházky, může bát jen 5 lidí z určené oblasti. V další záložce bych měl sloupec obsahující čísla úkolů pod sebou (třeba 500řádků). A potřeboval bych aby se jména z vybrané oblasti (ted jich je třeba jen 5) se nakopírovala vedle čísla úkolu začínající od prvního řádku a vybrané jména se budou pod sebou opakovat podle zadaného počtu v nějaké bunce (třeba 12 = jméno se bude max. 12x opakovat = člověk dostane 12 čísel úkolů)-.

nemůžu přijít na to, jak zadat dle určitého počtu kopírování pod sebe, někdy může být 11jmen a každé dostane 20 úkolů...

Díky za radu, Pavel
Přílohy
RADA.xlsx
příklad příloha
(12.57 KiB) Staženo 22 x
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: 29 srp 2008 16:49

Re: Kopírování "jmen" pod sebe dle daného počtu

Příspěvek od navstevnik »

Procedura resici pozadovane, (v edotoru VBA vlozit do standardniho modulu, volat klavesovou zkratkou nebo z menu):

Kód: Vybrat vše

Option Explicit

Sub PrirazeniPracovniku()
  Dim SBlk As Range, SCll As Range
  Dim TCll As Range, Opakovat As Byte, OfsR As Integer

  ' deklarovat blok seznamu pracovniku a nacist pocet opakovani
  With Worksheets("list1")
    Set SBlk = .Range(.Range("b2"), .Range("b2").End(xlDown))
    If SBlk.Rows.Count > 11 Then MsgBox "Seznam pracovniku je prazdny": GoTo ErrExit
    If Not IsNumeric(.Range("g2").Value) Then MsgBox "Chyba v zadani poctu opakovani": GoTo ErrExit
    Opakovat = Int(.Range("g2").Value)
  End With
  Set TCll = Worksheets("data").Range("b2")
  ' ve smycce vlozit opakovane jmena na list Data
  OfsR = 0
  Do While Opakovat > 0
    For Each SCll In SBlk.Cells
      TCll.Offset(OfsR, 0).Value = SCll.Value
      OfsR = OfsR + 1
    Next SCll
    Opakovat = Opakovat - 1
  Loop
  Set TCll = Nothing
  Set SCll = Nothing
ErrExit:
  Set SBlk = Nothing
End Sub


PS.: Je mozno doplnit preneseni oznacenych jmen z listu dochazka na list1 pouzitim funkci listu.
mozne reseni je v priloze:
Přílohy
Rada.xls
(55.5 KiB) Staženo 22 x
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Rozdělení sítě na podsítě, výpočet podsítí podle počtu hostů
    od zuzana3 » » v Administrace sítě
    12 Odpovědi
    9071 Zobrazení
    Poslední příspěvek od petr22
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5977 Zobrazení
    Poslední příspěvek od atari

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