Excel táblában csak azon soroknak a másolása, ahol cella nem üres

Excel táblában csak azon soroknak a másolása, ahol cella nem üres
2021-01-29T22:28:43+01:00
2021-01-30T17:50:44+01:00
2022-10-15T21:21:44+02:00
MSmester111
Sziasztok!

A problémám, hogy kinőttem az oldalt és nem férnek el az adatok. .
Adott egy táblázat, ahol az összes (labor)vizsgálat (kb 50 db) fel van sorolva. Azonban egy-egy anyagon csak néhány 5-6-10 vizsgálatot kell elvégezni, ezért egy-egy anyaghoz csak ennyi sorban van adat (érték) oszlopban.

A kérdésem: Hogyan lehet megoldani, hogy csak azok a sorok kerüljenek másolásra a "vizsgálati bizonyítványba" (ez egy másik munkafüzet egy adott "vizsbiz" munkalapjára, amelyeknél az "érték" oszlop cellája nem üres. És a végén - mivel ennek terjedelme változó nem tudok fix tartományt kjelölni - be is keretezze.

Korábban egyszerűen kijelöltem mint tartományt és átmásoltam az egész táblázatot, egy előre elkészített keretezett táblázatba, azonban mostanra nem fér rá egy oldalra. És sajnos csak egy oldal lehet az egész.
VBA makróban kellene a megoldás

Előre is nagyon köszi!!!
Mutasd a teljes hozzászólást!
Szia!

Range.Borders property (Excel)

With Selection.Borders(xlEdge... ) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMediun End With
tulajdonságok:
xlEdgeLeft
xlEdgeRight
xlEdgeTop
xlEdgeBottom
xlDiagonalDown
xlDiagonalUp
xlInsideVertical
xlInsideHorizontal

.LineStyle =
xlDot
xlDash
xlDashDot
xlDashDotDot
xlSlantDashDot
xlContinuous
xlDouble

.Weight =
xlHairLine
xlThin
xlMedium
xlThick

With Selection.Borders() esetén az átlósak kivételével, minden külső és belső keret elemre vonatkozik a beállítás.


üdv
verax
Mutasd a teljes hozzászólást!

  • Hali!

    Mutasd – VBA-forráskóddal/-részlettel –, hogy eddig mivel, hogyan próbálkoztál, meddig jutottál el, mi nem megy, miben/hol akadtál el!

    Mutasd a teljes hozzászólást!
  • Szia MSmester111!

    A válaszom: VBA kóddal. Ciklusokkal.

    Egy képernyőkép, egy sablon, valami, ... amiből látszik, hogy milyen adatszerkezetet használsz.
    Fejlécek, teljes sorok, vagy kétdimenziós tartományok másolása... ?
    Lassan elkopik a "harapófogóm", olyan sokat kell használnom.

    Tehát: több információt kérünk!
    ... és ne feledkezz meg netangelről sem!

    Ez utóbbihoz - Mutasd mit csináltál - ...
    Excel - Fejlesztő eszközök fül - Kód csoport - Makró rögzítése parancsikon.
    Másold át, formázd az adataidat. A gép árgus szemekkel fogja figyelni, hogy mit csinálsz, megjegyzi és bármikor kérheted, hogy csinálja utánad újra.
    Az így elkészült nagyon nyers VBA kód már lehet egy kiindulási pont.
    Alt +F11 kombinációval vagy Fejlesztő eszközök fül  - Kód csoport  - Visual Basic parancsikon után valami Modulen mappában megtekinthető, szerkeszthető az iméntiek szerint készült mű.

    üdvözlettel
    verax
    Mutasd a teljes hozzászólást!
  • Helló!

    Közben sikerült előrébb jutnom az alábbi ötlettel, mely egy másik felhasználónak adott válaszból okoskodtam ki. Itt a lényeg az üres cellák átlépésére íródott ciklus. A helyzet, hogy ez még nem tökéletes, mivel a forrás (vizsgálattörzs.xls) és a végeredmény (mintaokmány.xls) két külön munkafüzet. Itt a gyakorlás során azonban ugyan annak a munkafüzetnek (másolás próba.xls) két külön munkalapját használom (Munka1 és Munka2 sheet). Na ezt kellene összehozni. Az ötletem az, hogy a cél munkafüzetben létrehozok egy ideiglenes munkalapot, ahova az egész tartományt átmásolom és akkor az alábbi megoldás már működik. Biztosan van elegánsabb megoldás is, de én csak erre vagyok képes.

    A keretezés azonban még nincs meg, bár van ötletem.

    ' Megnyitás vizsgálat
    'vbizforgalom megnyitás
     
     nyitott = Workbooks.Count
    For i = 1 To nyitott Step 1
        neve = Workbooks(i).Name
        If Workbooks(i).Name = "másolás próba.xls" Then jo = True
    Next
        
        If Not (jo) Then
        Workbooks.Open Filename:="C:\Users\Sada\Desktop\másolás próba.xls"
     
        End If
     
    'Vizsgálattörzs átvitel
     
        Windows("másolás próba.xls").Activate
        Sheets("Munka2").Select
              
        Dim ittTartok As Integer
     
        ittTartok = 15
        For i = 8 To 64
            
        Sheets("Munka2").Select
    ' Ezt a sor vettem át egy másik felhasználónak adott válaszból
         If Not (IsEmpty(Sheets("Munka2").Cells(i, 3)) Or Sheets("Munka2").Cells(i, 3) = 0) Then
          
           Sheets("Munka2").Range(Cells(i, 1), Cells(i, 6)).Copy
           Sheets("Munka1").Select
           Sheets("Munka1").Range(Cells(ittTartok, 1), Cells(ittTartok, 6)).PasteSpecial
                   
           ittTartok = ittTartok + 1
         End If
        Next i
    Mutasd a teljes hozzászólást!
  • Szia!

    Neagelnek már válaszoltam, abban benne van a lényeg. A kérdésre, hogy milyen az adatszerkezet. Sima excel táblázatot kell elképzelni, ahol a cellák tartalma "szöveges". Az adatok, a mérési eredmények is, mivel van ahol tól-ig, illetve mértékegységek szerepel és a kötőjel, illetve "/" jel miatt meg kényelemből nincs formázva. A dátum típusok máshonnét kerülnek bele az nem érdekes.
    Mutasd a teljes hozzászólást!
  • Szia!

    Közben a keretezés is megoldódott. Átmenetileg. Ugyanis a .PasteSpecial-lal a forrás cella minden tulajdonságát átmenti, így a kereteket is. Bár nem lesz vastag kerettel körbekeretezve. Ez még érdekelne.

    Üdv: MSmester111
    Mutasd a teljes hozzászólást!
  • Szia!

    Range.Borders property (Excel)

    With Selection.Borders(xlEdge... ) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlMediun End With
    tulajdonságok:
    xlEdgeLeft
    xlEdgeRight
    xlEdgeTop
    xlEdgeBottom
    xlDiagonalDown
    xlDiagonalUp
    xlInsideVertical
    xlInsideHorizontal

    .LineStyle =
    xlDot
    xlDash
    xlDashDot
    xlDashDotDot
    xlSlantDashDot
    xlContinuous
    xlDouble

    .Weight =
    xlHairLine
    xlThin
    xlMedium
    xlThick

    With Selection.Borders() esetén az átlósak kivételével, minden külső és belső keret elemre vonatkozik a beállítás.


    üdv
    verax
    Mutasd a teljes hozzászólást!
  • Szia!

    Oh köszi, ezt a linket nem ismertem. Tök jó.

    Üdv: MSmester111
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd