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

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

Moderátor: Mods_senior

ondaqo
nováček
Příspěvky: 27
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ondaqo » 19 bře 2013 17:28

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

Reklama
Jjg
Level 1
Level 1
Příspěvky: 53
Registrován: únor 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Jjg » 19 bře 2013 17:47

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?

ondaqo
nováček
Příspěvky: 27
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ondaqo » 19 bře 2013 17:59

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

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod cmuch » 19 bře 2013 18:01

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

ondaqo
nováček
Příspěvky: 27
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ondaqo » 19 bře 2013 18:09

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

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod cmuch » 19 bře 2013 18:22

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.

Jjg
Level 1
Level 1
Příspěvky: 53
Registrován: únor 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Jjg » 19 bře 2013 18:35

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.
Přílohy
ondaqo.xlsm
(16 KiB) Staženo 17 x

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod cmuch » 19 bře 2013 18:44

Řešení to také je,
jen bych doplnil na konec Cancel = True aby nezůstávala buňka otevřená pro úpravu.

Jjg
Level 1
Level 1
Příspěvky: 53
Registrován: únor 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod Jjg » 19 bře 2013 18:51

Je možno, i když právě to jsem nakonec vyhodil.

ondaqo
nováček
Příspěvky: 27
Registrován: březen 13
Pohlaví: Muž
Stav:
Offline

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

Příspěvekod ondaqo » 19 bře 2013 18:53

Super, obe riešenia mi vyhovujú, si naozaj makromajster :)


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

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host