Stránka 1 z 1

Excel - část textu v buňce

Napsal: 10 dub 2014 22:04
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!! :)

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

Napsal: 11 dub 2014 05:40
od cmuch
Do řádku se vejde spousty znaků,
přilož nějakou ukázku se stavem před useknutím a po useknutí.

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

Napsal: 11 dub 2014 10:37
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 :)

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

Napsal: 11 dub 2014 21:14
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š.