Hirdetés

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

  • p5quser

    tag

    Sziasztok!
    Ismét a segítségeteket kérném. Adott egy munkafüzet, a hónap napjaira bontott munkalapokkal. Ebben a munkafüzetben kellene rákeresnem az "elszámolás" szóra minden munkalapon, kilistáztatva a napot, az elszámolás szót, egy oszloppal a találat előtti értéket és egy oszloppal a találat utáni értéket.
    Alább a script amit találtam, teszi a dolgát, csak nem tudom hogy irassam ki vele az eltolt oszlopok értékeit.

    Private Sub CommandButton1_Click()
    Dim xFso As Object
    Dim xFld As Object
    Dim xStrSearch As String
    Dim xStrPath As String
    Dim xStrFile As String
    Dim xOut As Worksheet
    Dim xWb As Workbook
    Dim xWk As Worksheet
    Dim xRow As Long
    Dim xFound As Range
    Dim xStrAddress As String
    Dim xFileDialog As FileDialog
    Dim xUpdate As Boolean
    Dim xCount As Long
    On Error GoTo ErrHandler
    Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
    xFileDialog.AllowMultiSelect = False
    xFileDialog.Title = "Select a forlder"
    If xFileDialog.Show = -1 Then
    xStrPath = xFileDialog.SelectedItems(1)
    End If
    If xStrPath = "" Then Exit Sub
    xStrSearch = "elszámol"
    xUpdate = Application.ScreenUpdating
    Application.ScreenUpdating = False
    Set xOut = Worksheets.Add
    xRow = 1
    With xOut
    .Cells(xRow, 1) = "Workbook"
    .Cells(xRow, 2) = "Worksheet"
    .Cells(xRow, 3) = "Cella"
    .Cells(xRow, 4) = "Találat"
    .Cells(xRow, 5) = "Összeg"
    .Cells(xRow, 6) = "Név"
    Set xFso = CreateObject("Scripting.FileSystemObject")
    Set xFld = xFso.GetFolder(xStrPath)
    xStrFile = Dir(xStrPath & "\*.xls*")
    Do While xStrFile <> ""
    Set xWb = Workbooks.Open(Filename:=xStrPath & "\" & xStrFile, UpdateLinks:=0, ReadOnly:=True, AddToMRU:=False)
    For Each xWk In xWb.Worksheets
    Set xFound = xWk.UsedRange.Find(xStrSearch)
    If Not xFound Is Nothing Then
    xStrAddress = xFound.Address
    End If
    Do
    If xFound Is Nothing Then
    Exit Do
    Else
    xCount = xCount + 1
    xRow = xRow + 1
    .Cells(xRow, 1) = xWb.Name
    .Cells(xRow, 2) = xWk.Name
    .Cells(xRow, 3) = xFound.Address
    .Cells(xRow, 4) = xFound.Value
    .Cells(xRow, 5) = xFound.Value
    .Cells(xRow, 6) = xFound.Value
    End If
    Set xFound = xWk.Cells.FindNext(After:=xFound)
    Loop While xStrAddress <> xFound.Address
    Next
    xWb.Close (False)
    xStrFile = Dir
    Loop
    .Columns("A:D").EntireColumn.AutoFit
    End With
    MsgBox xCount & " egyezést találtam", , "Elszámolós"
    ExitHandler:
    Set xOut = Nothing
    Set xWk = Nothing
    Set xWb = Nothing
    Set xFld = Nothing
    Set xFso = Nothing
    Application.ScreenUpdating = xUpdate
    Exit Sub
    ErrHandler:
    MsgBox Err.Description, vbExclamation
    Resume ExitHandler
    End Sub

    Ezeket szeretném megváltoztatni;
    .Cells(xRow, 5) = xFound.Value (találat_oszlop -1, találat_sor)
    .Cells(xRow, 6) = xFound.Value (találat_oszlop +1, találat_sor)

    Előre is köszönöm!

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