Excel - část textu v buňce

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

Moderátor: Mods_senior

Odpovědět
Lůjík
nováček
Příspěvky: 19
Registrován: 09 lis 2013 17:37

Excel - část textu v buňce

Příspěvek od Lůjík »

Ahojte :)
ráda bych požádala o radu. Potřebovala bych nějaké makro vázané na tlačítko, které by useklo část textu v buňce. Nestačí mi ale funkce ČÁST, potřebuji, aby useklo celé slovo, které se do řádku nevejde... existuje něco takového? Řekněme, že bych povolila 20 znaků, ale nechci aby mi "ukousl" část slova...
Děkuju za radu!! :)
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 - část textu v buňce

Příspěvek od cmuch »

Do řádku se vejde spousty znaků,
přilož nějakou ukázku se stavem před useknutím a po useknutí.
Lůjík
nováček
Příspěvky: 19
Registrován: 09 lis 2013 17:37

Re: Excel - část textu v buňce

Příspěvek od Lůjík »

Třeba tady... viz buňka C7 - potřebuji tlačítko, které by useklo konec textu v buňce tak, aby zbylo "maintenance of public" ... jde to? :)
Děkuji moc za ochotu :)
Přílohy
useknutí buněk.xlsx
(10.91 KiB) Staženo 128 x
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 - část textu v buňce

Příspěvek od cmuch »

Tady je makro, které by to mohlo splnovat.
Provede se pouze na aktivni bunce, v makru si lze upravit treba pro oblast.

Kód: Vybrat vše

Sub ZkratText()
  'zkraceni vety na cele slova podle sirky sloupce
  'pro aktivni bunku / ne sloucenou !!!!!!!!!!

  Dim rngBunka As Object
  Dim ActRow As Integer, ActClm As Integer
  Dim puvodnitext As String
  Dim puvodnisirkasloupce, novasirkasloupce
  Dim pocetvlozenychznaku As Integer, sirka As Integer, mezera As Integer

  ActRow = ActiveCell.Row
  ActClm = ActiveCell.Column

  Set rngBunka = Cells(ActRow, ActClm)

  puvodnitext = rngBunka.Text

  'je bunka sloucena?
  If rngBunka.MergeCells = True Then
    MsgBox "Bunka nesmi byt sloucena !!", vbCritical, "Error"
    Exit Sub
  Else
    puvodnisirkasloupce = rngBunka.ColumnWidth
  End If

  Application.ScreenUpdating = False

  pocetvlozenychznaku = 1 'pocet znaku v bunce
  novasirkasloupce = 0

  'zruseni zalomeni textu
  rngBunka.WrapText = False

  'projdi text a porovnej jeho sirku s sirkou sloupce
  For sirka = 1 To Len(puvodnitext)

    If puvodnisirkasloupce > novasirkasloupce Then
      With rngBunka
        .Value = Mid(puvodnitext, 1, pocetvlozenychznaku)
        .Columns.AutoFit
        novasirkasloupce = .ColumnWidth

        'posledni mezera
        If Mid(puvodnitext, pocetvlozenychznaku, 1) = " " Then
          mezera = pocetvlozenychznaku
        End If
      End With

      pocetvlozenychznaku = pocetvlozenychznaku + 1
    Else
      rngBunka.Value = Mid(puvodnitext, 1, mezera - 1)
      Exit For
    End If
  Next sirka
  'povoleni zalomeni textu
  rngBunka.WrapText = True
  'nastaveni puvodni sirky
  rngBunka.ColumnWidth = puvodnisirkasloupce

  Application.ScreenUpdating = True
End Sub


Tlačítko určitě vložit dokážeš.
Odpovědět
  • 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
    14218 Zobrazení
    Poslední příspěvek od Snekment
  • Pohoda a excel
    od brownwld » » v Kancelářské balíky
    1 Odpovědi
    7201 Zobrazení
    Poslední příspěvek od atari
  • Excel 2016 - vzorec kombinace podmínek
    od MK_Vs » » v Kancelářské balíky
    5 Odpovědi
    5959 Zobrazení
    Poslední příspěvek od lubo.
  • Tisk sloupců vedle sebe na A4 - Excel
    od atari » » v Kancelářské balíky
    5 Odpovědi
    5729 Zobrazení
    Poslední příspěvek od atari

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