Excel - převod čísla z buňky do komentáře Vyřešeno

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

Moderátor: Mods_senior

Majk1976
nováček
Příspěvky: 22
Registrován: září 13
Pohlaví: Nespecifikováno
Stav:
Offline

Excel - převod čísla z buňky do komentáře

Příspěvekod Majk1976 » 17 úno 2014 19:25

Dobrý den, může mi někdo pomoci s VBA ?
Mám v jednom sloupci hodnoty (číslo) a potřeboval bych to převést na komentář v jiném sloupci. Řádky zdroje a cíle jsou vždy stejné.
Jedinou podmínku bych tam chtěl a to aby se komentář vložil ze zdroje jedině když je to číslo.

Předem moc děkuji , vaše pomoc pomáhá mnoho začátečníkům pochopit základy VBA

Díky

Reklama
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: Excel - převod čísla z buňky do komentáře

Příspěvekod cmuch » 18 úno 2014 09:24

Makro projede sloupec A do posledniho obsazeného řádku a pokud je číslo tak vloží komentář o dvě buňky doprava.

Kód: Vybrat vše

Sub PridejKomentar()
'
Dim bunka As Variant
Dim radek As Integer

 For radek = 1 To Cells(Rows.Count, "A").End(xlUp).Row  'opakuj pro radky od 1 do posledniho obsazeneho

  bunka = Cells(radek, "A").Address 'bunka co se ma kontrolovat

  If IsNumeric(Range(bunka)) And Not IsEmpty(Range(bunka)) Then   'je cislo v bunce?
    With Range(bunka).Offset(0, 2)  'pridej komentar o dve bunky doprava
        .ClearComments
        .AddComment
        .Comment.Visible = False
        .Comment.Text Text:=Range(bunka).Text
    End With
  End If
 Next radek
End Sub

Majk1976
nováček
Příspěvky: 22
Registrován: září 13
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - převod čísla z buňky do komentáře

Příspěvekod Majk1976 » 18 úno 2014 10:00

Mockrát díky, to je přesně co jsem potřeboval.
A díky za ty komentáře přímo v makru, to je nejlepší návod jak to pochopit.

--- Doplnění předchozího příspěvku (18 Úno 2014 10:34) ---

Měl bych ještě malou otázečku, kdyby zdroj byl sloupec "M" a potřeboval bych komentář do sloupce "E" tak tam už bych asi musel specifikovat zdroj a cíl jiným způsobem?

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: Excel - převod čísla z buňky do komentáře

Příspěvekod cmuch » 18 úno 2014 17:11

Lze takto

Tento řádek říká pro kolik bude platit řádků od prvního ve sloupci A, pokud se budeš chtít řídit podle jiného sloupce tak změň písmeno

Kód: Vybrat vše

For radek = 1 To Cells(Rows.Count, "A").End(xlUp).Row  'opakuj pro radky od 1 do posledniho obsazeneho


Zdrojová buňka - Zde "A", uprav podle zdrojového sloupce. Ty změníš A na M.

Kód: Vybrat vše

bunka = Cells(radek, "A").Address 'bunka co se ma kontrolovat


Tento řádek

Kód: Vybrat vše

With Range(bunka).Offset(0, 2)  'pridej komentar o dve bunky doprava

uprav pak následovně.
Offset(0, 2) znamená pro jakou buňku bude platit od zdrojové.
zde pro druhou doprava.
-1.číslo je pro řádky
--pokud od zdrojové buňky se budeš chtít posunout nad ní, tak budeš zadávat záporná čísla, pokud pod ní tak kladná
-2.číslo je pro sloupce
--pokud od zdrojové buňky se budeš chtít posunout vlevo od ní, tak budeš zadávat záporná čísla, pokud vpravo od ní tak kladná

Pro tebe bude tedy platit Offset(0, -8)

lubo.
Level 2
Level 2
Příspěvky: 196
Registrován: červen 13
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - převod čísla z buňky do komentáře

Příspěvekod lubo. » 18 úno 2014 17:26

Když máš chuť si hrát, můžeš to taky udělat přes funkci:

Kód: Vybrat vše

Public Function PridejKomentar(Bunka As Range) As Variant
Dim rng As Range
Dim sFormat As String

If TypeName(Bunka) <> "Range" Then     ' Ošetříme nechtěné parametry
   PridejKomentar = "To není adresa"
   GoTo Konec:
End If
Set rng = Bunka.Cells(1, 1)         ' když tam bude více buněk, bereme jen první
If IsNumeric(rng) And Not IsEmpty(rng) Then  ' je cislo v bunce?, datum není číslo
   With Application.ThisCell                 ' pridej komentar
      sFormat = rng.NumberFormat
      If sFormat = "General" Then          ' upravíme formát
            sFormat = "General Number"
      End If
      If .Comment Is Nothing Then
        .AddComment              ' Komentář tam není, přidáme
        .Comment.Visible = False
        .Comment.Text Text:=Format(rng.Value, sFormat) ' rng.Text může vrátit "###"
      Else                 ' Na konec přidáme číslo
         .Comment.Text Text:=.Comment.Text & vbCrLf & Format(rng.Value, sFormat)
      End If
   End With
   PridejKomentar = "Ok"
Else
   PridejKomentar = "To není číslo"
End If
Konec:
End Function


Funkce vezme číslo z buňky na kterou ukazuje parametr, přidá ho do komentáře v buňce ve které je zapsána a vypíše výsledek.

Majk1976
nováček
Příspěvky: 22
Registrován: září 13
Pohlaví: Nespecifikováno
Stav:
Offline

Re: Excel - převod čísla z buňky do komentáře  Vyřešeno

Příspěvekod Majk1976 » 25 úno 2014 14:00

Díky vám za pomoc, hlavně to vysvětlení Offset(0,2) mi moc pomohlo


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    13179
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    6343
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    4082
    od lubo. Zobrazit poslední příspěvek
    24 říj 2024 00:00
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » 24 dub 2025 10:51 » v Kancelářské balíky
    5
    4746
    od atari Zobrazit poslední příspěvek
    26 dub 2025 09:11
  • Excel 2016 - vzorec kombinace podmínek Příloha(y)
    od MK_Vs » 08 led 2025 17:56 » v Kancelářské balíky
    5
    4908
    od lubo. Zobrazit poslední příspěvek
    14 led 2025 00:51

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

Kdo je online

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