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 Vyřešeno
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
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 Sub
Re: 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?
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
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 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)
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 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.
Re: Excel - převod čísla z buňky do komentáře Vyřešeno
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
-
- 2
- 13179
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 1
- 6343
-
od atari
Zobrazit poslední příspěvek
07 kvě 2025 09:41
-
- 3
- 4082
-
od lubo.
Zobrazit poslední příspěvek
24 říj 2024 00:00
-
- 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
-
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 5 hostů