Stránka 1 z 1

Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 17:28
od ondaqo
Zdravím všetkých,

riešim jednu otázku. Istý čas hľadám makro alebo možno funkciu nasledovného typu. Po kliknutí do bunky (B2 alebo C2 alebo D2 alebo E2) sa do danej bunky vloží číslo z inej bunky (A2), v ktorej je nejaká hodnota. Ak bude vložená hodnota napr v B2, ostatné tri bunky ostávajú vždy prázdne. Ak sa zmení bunka napr na C2 zase ostatné 3 bunky ostávajú prázdne. Takýmto spôsobom sa vyplní postupne asi 25 riadkov. Bunka z ktorej sa hodnoty načítavajú prislúcha vždy len danému riadku.
Dúfam, že som problém popísal zrozumiteľne a vopred vám všetkým ďakujem za nejakú radu, prípadne postreh, príp. pomoc ako by som sa mal uberať.

Veľmi by mi to uľahčilo prácu

ondaqo

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 17:47
od Jjg
Rozumím tomu dobře, že chcete v každém řádku přenést hodnotu ze sloupce A do určeného sloupce B, C, D nebo E?

A pro všechny listy v sešitu?

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 17:59
od ondaqo
Presne tak, napr. hodnotu z A2 do B2 alebo C2 alebo D2 alebo E2...hodnotu z A3 do B3 - C3 - E3...A4 do B4 - C4 - E4 atď. V zošite je v podstate 7 listov rovnakých len majú iný názov- Pondelok, Utorok, Streda, Stvrtok, Piatok, Sobota, Nedela :) ďakujem

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 18:01
od cmuch
Tak do modulu listu ve VBA vlož

Kód: Vybrat vše

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  Dim radek As Long
  Dim ACAdr As Variant

  radek = Target.Row
  ACAdr = ActiveCell.Address

  If ACAdr = "$B$" & radek Or ACAdr = "$C$" & radek Or ACAdr = "$D$" & radek Or ACAdr = "$E$" & radek Then

    If Range("$B$" & radek).Value = Empty And Range("$C$" & radek).Value = Empty And Range("$D$" & radek).Value = Empty And Range("$E$" & radek).Value = Empty Then

      ActiveCell.Value = Range("A" & radek)
    End If
  End If
End Sub


// Edit
nevšim sem si že to má být pro všechny listy.
Takže toto vlož do modulu thisworkbook

Kód: Vybrat vše

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

  Dim radek As Long
  Dim ACAdr As Variant

  radek = Target.Row
  ACAdr = ActiveCell.Address

  If ACAdr = "$B$" & radek Or ACAdr = "$C$" & radek Or ACAdr = "$D$" & radek Or ACAdr = "$E$" & radek Then

    If Range("$B$" & radek).Value = Empty And Range("$C$" & radek).Value = Empty And Range("$D$" & radek).Value = Empty And Range("$E$" & radek).Value = Empty Then

      ActiveCell.Value = Range("A" & radek)
    End If
  End If
End Sub

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 18:09
od ondaqo
Super, ďakujem veľmi pekne. Nechcem byť nevďačný, ste veľmi šikovný. Je aj nejaká možnosť, že ak kliknem najprv do B a chcem zmeniť hodnotu na bunku C, aby sa hodnota v bunke B vymazala?? aj tak ďakujem za tento kód

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 18:22
od cmuch
Opravu bych dal na doubleclik
Vlož zase do modulu thisworkbook

Kód: Vybrat vše

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
  Dim radek As Long
  Dim ACAdr As Variant

  radek = Target.Row
  ACAdr = ActiveCell.Address

  If ACAdr = "$B$" & radek Or ACAdr = "$C$" & radek Or ACAdr = "$D$" & radek Or ACAdr = "$E$" & radek Then

    If Not Range("$B$" & radek).Value = Empty Or Not Range("$C$" & radek).Value = Empty Or Not Range("$D$" & radek).Value = Empty Or Not Range("$E$" & radek).Value = Empty Then

      Range("B" & radek & ":E" & radek).Value = ""

      ActiveCell.Value = Range("A" & radek)
      Cancel = True
    End If
  End If
End Sub


//Edit
Nebo ty hodnoty tam vkládat rovnou na doubleclick, ale záleží jestli chceš mít možnost i opravy.

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 18:35
od Jjg
Vidím, že jsem pomalý. Dávám tu i svůj výrobek - funguje na dvouklik včetně oprav.
Zkoušeno v Excel 2007.

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 18:44
od cmuch
Řešení to také je,
jen bych doplnil na konec Cancel = True aby nezůstávala buňka otevřená pro úpravu.

Re: Makro - načítanie hodnoty do jednej zo 4 buniek

Napsal: 19 bře 2013 18:51
od Jjg
Je možno, i když právě to jsem nakonec vyhodil.

Re: Makro - načítanie hodnoty do jednej zo 4 buniek  Vyřešeno

Napsal: 19 bře 2013 18:53
od ondaqo
Super, obe riešenia mi vyhovujú, si naozaj makromajster :)