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: 1544
- 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: 1544
- 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
-
-
Excel - filtr na formát buňky + obsah Příloha(y)
od popcorn » 19 zář 2023 17:07 » v Kancelářské balíky - 0
- 2093
-
od popcorn
Zobrazit poslední příspěvek
19 zář 2023 17:07
-
-
- 23
- 5000
-
od petr22
Zobrazit poslední příspěvek
25 lis 2023 19:59
-
- 3
- 1647
-
od BigSandy
Zobrazit poslední příspěvek
26 kvě 2023 09:49
-
- 16
- 6329
-
od mirekol
Zobrazit poslední příspěvek
20 říj 2023 08:31
-
- 1
- 425
-
od Grimm
Zobrazit poslední příspěvek
12 bře 2024 21:43
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů