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

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

Moderátor: Mods_senior

Zamčeno
Majk1976
nováček
Příspěvky: 22
Registrován: 23 zář 2013 10:21

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

Příspěvek od Majk1976 »

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
cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: 02 bře 2011 19:12
Bydliště: Drsná Vysočina :D

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

Příspěvek od cmuch »

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: 23 zář 2013 10:21

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

Příspěvek od Majk1976 »

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: 02 bře 2011 19:12
Bydliště: Drsná Vysočina :D

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

Příspěvek od cmuch »

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: 27 čer 2013 23:26

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

Příspěvek od lubo. »

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: 23 zář 2013 10:21

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

Příspěvek od Majk1976 »

Díky vám za pomoc, hlavně to vysvětlení Offset(0,2) mi moc pomohlo
Zamčeno
  • Podobná témata
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Přechod z Excel 21 na Excel 24
    od Snekment » » v Kancelářské balíky
    2 Odpovědi
    14410 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7337 Zobrazení
    Poslední příspěvek od atari
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5915 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    6136 Zobrazení
    Poslední příspěvek od lubo.

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