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: 1544
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: 1544
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: 192
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
  • Excel - filtr na formát buňky + obsah Příloha(y)
    od popcorn » 19 zář 2023 17:07 » v Kancelářské balíky
    0
    2089
    od popcorn Zobrazit poslední příspěvek
    19 zář 2023 17:07
  • Převod DVD do mkv, avi...
    od petrmet » 24 lis 2023 14:12 » v Multimédia (filmy, hudba, CDs/DVDs)
    23
    4996
    od petr22 Zobrazit poslední příspěvek
    25 lis 2023 19:59
  • Převod formatovaného textu na normalní.
    od BigSandy » 26 kvě 2023 07:27 » v Vše ostatní (sw)
    3
    1645
    od BigSandy Zobrazit poslední příspěvek
    26 kvě 2023 09:49
  • Excel a OneDrive
    od sginfo » 11 zář 2023 15:28 » v Kancelářské balíky
    16
    6325
    od mirekol Zobrazit poslední příspěvek
    20 říj 2023 08:31
  • excel-posun makra
    od actionboy » 12 bře 2024 18:59 » v Kancelářské balíky
    1
    422
    od Grimm Zobrazit poslední příspěvek
    12 bře 2024 21:43

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

Kdo je online

Uživatelé prohlížející si toto fórum: elninoslov, Melvidor a 7 hostů