Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Delila_1

    Topikgazda

    válasz lostprophet #34795 üzenetére

    2016-osban a Power Query-vel megoldható. Ezt tedd:

    1. Adj címsort (ha nincs) az oszlopodnak, ahol a hosszú szövegeid vannak. Jelöld ki az oszlopot.
    2. Adatok, a Beolvasás és átalakítás csoportban kattints a Táblázatból ikonra.
    3. Kezdőlap | Oszlop felosztása | Elválasztó alapján menüpont.
    4. Az Elválasztó kiválasztása vagy beírása rovatban az alsót (- Egyéni -) jelöld be, mire megjelenik alatta egy beviteli mező. Ebbe írd be az elején és a végén a szóközökkel a " -- LINE BREAK -- " szöveget, de nem kellenek az idézőjelek. Azokat csak azért írtam ide, hogy látsszanak a szóközök. A Felosztásnál az alsó opció legyen kiválasztva, OK.
    5. kész is van, Bezárás és betöltés.

    Létrejött egy új munkalap, rajta felosztva mondatonként a celláid tartalma, de nem egymás alá, hanem egymás mellé. Ha az eredeti lapon új sort veszel fel, át kell lépned az új lapra. Jobb oldalon látszik a Táblázat1 cím, ezen jobb klikk, Frissítés, és máris megjelennek az új sorok mondatonként új oszlopokban. Tehát csak egyszer kell megadni a felosztási szempontokat, bővülő adatok esetén már csak frissíteni kell 1 kattintással.

    Ha ez megfelel, akkor már egy Excel makróval össze lehet hozni, hogy a mondatok egymás alatt legyenek.

    Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

  • pigster

    senior tag

    válasz lostprophet #34795 üzenetére

    A következő makró megcsinálja amit akarsz a kiválasztás melletti oszlopban:
    Option Explicit

    Public Sub kivalasztastSorokba()

    Const separator As String = " -- LINE BREAK -- "

    Dim cella As Range
    Dim kivalasztas As Range
    Dim tomb As Variant
    Dim sorSzamlalo As Long
    Dim i As Integer
    Dim cellaErtek As Variant

    Set kivalasztas = Application.Selection
    sorSzamlalo = 0
    For Each cella In kivalasztas.Cells
    cellaErtek = cella.Value
    If (cellaErtek <> "") Then
    tomb = Split(cellaErtek, separator)
    For i = LBound(tomb) To UBound(tomb)
    Cells(sorSzamlalo + 1, kivalasztas.Column + 1) = tomb(i)
    sorSzamlalo = sorSzamlalo + 1
    Next i
    End If
    Next cella
    End Sub

    Nem vagyok nagy guru, a töbiek majd kijavítják, szépítik. Nekem működött a példáddal.

    Epistoryval (http://store.steampowered.com/app/398850/) nem foglalkozol esetleg?

    [ Szerkesztve ]

    FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.

Új hozzászólás Aktív témák