Keresés

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

  • Mutt

    senior tag

    válasz 81lendo$ #19166 üzenetére

    Szia,

    A makró és a VBA ugyanaz, esetleg ha megosztod a rögzített makrót, akkor tudunk rajta csiszolni.

    - az osztály névből egy új munkafüzetet készít, hasonló névvel
    Új füzetet a Workbooks.Add paranccsal tudsz nyitni, mentéskor tudod megadni a nevet neki.
    Ha lapról lenne szó, akkor Worksheets.Add a parancs, és a Worksheet.Name = Cstr(Range("C3")) műxik.

    - az egész táblázatot bemásolja oda
    Adat másolása a Copy Destination:=<cél> paranccsal megy. Ha formátumot is kell másolni, akkor pedig a PasteSpecial használandó.
    A táblázatot pedig egyben ki tudod jelölteni, ha benne állsz a CurrentRegion-al.

    - és tölődjön az első oldalról a már kész osztály.
    Törléshez pedig a Delete parancs kell.

    Itt egy minimalista megoldás:
    Sub CopyClass()
    Dim wb As Workbook
    Dim fajlnev As String

    If Range("C3") <> "" Then
    'megjegyezzük hogy milyen névvel kell menteni, egy kicsit tisztítunk rajta
    fajlnev = CStr(Trim(Range("C3")))
    'másoljuk a táblázatot E5-től kezdve
    Range("E5").CurrentRegion.Copy

    'nyitunk egy fájlt
    Set wb = Workbooks.Add
    'első fülére első cellájába berakjuk formázva képletek nélkül
    wb.Sheets(1).Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
    'mentjük a fájlt
    wb.SaveAs fajlnev
    'bezárjuk a fájl
    wb.Close

    'töröljük az eredeti táblázatot
    Range("E5").CurrentRegion.Delete xlShiftUp
    'töröljük az osztály nevét
    Range("C3").ClearContents
    End If

    End Sub

    üdv.

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

Hirdetés