KelemenGy Creative Commons License 2013.02.19 0 0 20449

Sziasztok!

 

Agyalok, hogy hogyan tudnám tökéletesíteni a leltáros táblámat.

 

A táblázat felépítése ugyanaz, mint eddig volt.

 

Sorszám / HETK (ez egy kódszám) / Megnevezés / Mennyiség / Mennyiségi egység / Azonosító / Helység szám

 

A valódi adatsor a 4. sorban kezdődik, addig fejléc van. Minden lap ugyanilyen felépítésű, lapokból most van öt (leltárlista, 1, 2, 3, 4). A helységszám a teszttáblán 1-4-ig terjed, az élesben ennél jóval több lesz, minden helységhez külön munkalappal. A cél az volna, hogy a sorszámozás maradjon meg minden lapon az eredeti állapotban, de az kezdő lapról (leltárlista) az egyes sorokból a B:F tartomány adatai kerüljenek át arra a munkalapra, amit a G oszlopban lévő egész megad.

 

Jelenleg van egy működőképes megoldás rá, de nem az igazi, ugyanis egy HA függvénnyel átvetettem a megfelelő lapokra az adatokat, de ez szaggatott sorszámozást eredményez az 1-4-ig számozott munkalapokon. Azt szeretném elérni, hogy egyrészt értsem, hogy a makró melyik sora mit művel, másrészt meglegyen az eredeti cél is, azaz a leltárlistáról vegye át a megfelelő értékeket úgy, hogy a sorszámozás minden további munkalapon 1-nél kezdődjön és folyamatos legyen, ha lehet, mindezt automatikusan.

 

Jelenleg ezt a HA függvényt használom:

 

=HA(leltárlista!$G4=26;HA(leltárlista!B4="";"";leltárlista!B4);"")


(azért egymásbaágyazott, hogy ha a leltárlistán egy adott cella üres, akkor a függvény ne 0, hanem üres értékkel térjen vissza)

 

Illetve ezt a makrót:

 

Sub Auto_Open()
With Application
    .ScreenUpdating = False
End With
    Dim sor%, sorok%, lap%
    
    For lap% = 2 To Worksheets.Count
        Sheets(lap%).Select
        sorok% = Cells.SpecialCells(xlLastCell).Row
        
        'Felfedjük mindegyiket
        Rows("1:" & sorok%).Hidden = False
        
        '4. sortól rejtünk csak ha 2. oszlop értéke hamis
        For sor% = sorok% To 4 Step -1
            If Cells(sor%, 3).Value = "" Then _
               Rows(sor%).Hidden = True
        Next
    Next
With Application
    .ScreenUpdating = True
End With
End Sub

 

Elképzelhető, hogy sikerül ezt a makrót úgy átírni, hogy megoldja a feladatot? Hangsúlyozom, érteni is szeretném, így ha elmondja valaki, hogy mit írja át benne, az is tuti lenne (már ha nem 0-ról kell újraírni, annyira nem értek sajna hozzá). Van egyébként valakinek jó tippje, hogy honnan lehetne normális tananyagot szerezni ehhez?