Keresés

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

  • Fferi50

    Topikgazda

    válasz szix96 #24501 üzenetére

    Szia!

    Íme egy lehetőség:

    Sub fileosszegzo()
    Dim mf As Workbook, lap As Worksheet, fnev, usor As Long
    Set mf = ActiveWorkbook
    Set lap = ActiveSheet
    Do While MsgBox("Akar adatokat beolvasni ?", vbYesNo) = vbYes
    usor = lap.Range("A" & Rows.Count).End(xlUp).Row + 1
    fnev = Application.GetOpenFilename()
    If fnev <> False Then
    Workbooks.Open Filename:=fnev ' megnyitás
    Range("A8:E56").Copy Destination:=lap.Range("A" & usor)
    'lap.Range("A56").PasteSpecial 'Beillesztés
    ActiveWindow.Close False 'Bezárja
    Range("A2").Select 'Rááll és vége
    End If
    Loop
    MsgBox "Beolvasás vége!", vbInformation
    End Sub

    Néhány megjegyzés hozzá:
    - az mf ebben az esetben teljesen felesleges, hiszen nem is használjuk a makróban
    - a megnyitás után mindig a megnyitott munkafüzet lesz aktív - ezt lehet kihasználni a másolásnál amit lehet közvetlenül a célterületre "küldeni".
    - a makró mindig az A oszlop első üres sorától másolja be a következő fájl adatait
    - honnan tudod, hogy a megnyitott fájlban éppen az a munkalap az aktív, amire neked szükséged van? Ha csak egy munkalap van benne, akkor ok, de egyébként baj lehet, hiszen más esetleg (vagy akár Te is) elmozdíthatta az aktív munkalapot.
    - természetesen a másoladó területet (ami most Range("A8.... nál kezdődik) szintén meg lehet adni úgy, hogy megkeressük a forrás fájlban - csak a szempontokat kell hozzá ismerni.
    - a bezárásnál a False paraméter azt jelenti, hogy nem kell az esetleges változtatásokat menteni a forrásban
    - a bezárás után ismét az eredeti fájlod lesz az aktív munkafüzet.

    A do while ciklus addig megy, amíg a kérdésre igent válaszolsz. Ha nem választasz fájlt, akkor nincs mit bemásolni, utána a kérdésre válaszolj nemmel, ha ténylegesen be akarod fejezni a beolvasást, vagy válassz fájlt és akkor folytatódik a beolvasás. (De ha igent válaszolsz és utána nem választasz fájlt, akkor a ciklus továbbra is "pörög" - ez szándékosan van így, hiszen el is téveszthetted a file választást.)

    Üdv.

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