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
Excel - převod čísla z buňky do komentáře
Moderátor: Mods_senior
Re: Excel - převod čísla z buňky do komentáře
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 SubRe: Excel - převod čísla z buňky do komentáře
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?
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?
Re: Excel - převod čísla z buňky do komentáře
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
Zdrojová buňka - Zde "A", uprav podle zdrojového sloupce. Ty změníš A na M.
Tento řádek
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)
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 obsazenehoZdrojová 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 kontrolovatTento řádek
Kód: Vybrat vše
With Range(bunka).Offset(0, 2) 'pridej komentar o dve bunky dopravauprav 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)
Re: Excel - převod čísla z buňky do komentáře
Když máš chuť si hrát, můžeš to taky udělat přes funkci:
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.
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 FunctionFunkce 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.
Re: Excel - převod čísla z buňky do komentáře
Díky vám za pomoc, hlavně to vysvětlení Offset(0,2) mi moc pomohlo
-
- Podobná témata
- Odpovědi
- Zobrazení
- Poslední příspěvek


