Łukasz Kuchejda

Kontroler przepływu materiałów

Wypowiedzi

  • Łukasz Kuchejda
    Wpis na grupie Excel w temacie Makro - kopiowanie wybranych wierszy
    16.01.2013, 13:08

    Witam serdecznie Jestem nowy na tym forum przyciągnęło mnie tu makro napisane przez Pana Tomasza Gawęda, chciał bym zapytać autora bądź też innych forumowiczów jak zmodyfikować to podstawowe makro:

    Option Explicit
    Sub dzialaj()
    Dim ark As Worksheet, temp As Worksheet
    Dim i As Integer

    Set ark = Sheets("Arkusz1")
    For i = 1 To ark.Range("d65536").End(xlUp).Row
    If Not czyistnieje(ark.Cells(i, 4)) Then
    Sheets.Add
    Set temp = ActiveSheet
    temp.Name = ark.Cells(i, 4)
    temp.Move After:=Sheets(Sheets.Count)
    Call esql(ark.Cells(i, 4), temp.Name)
    End If
    Next i

    End Sub



    Function esql(argument As String, arkusz As String)
    Dim cn As Object, rs As Object
    Dim nazwa As String, sqlstr As String
    Dim ark As Worksheet

    Set cn = CreateObject("ADODB.Connection")
    Set rs = CreateObject("ADODB.Recordset")

    nazwa = ActiveWorkbook.Path & Application.PathSeparator & ActiveWorkbook.Name

    cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    "Data Source=" & nazwa & ";" & _
    "Extended Properties=""Excel 8.0;HDR=No"""

    sqlstr = "SELECT * FROM [Arkusz1$] WHERE F4 = '" & argument & "'"
    Set rs = cn.Execute(sqlstr)
    Set ark = ActiveWorkbook.Sheets(arkusz)

    ark.Cells.ClearContents
    ark.Range("a1").CopyFromRecordset rs

    rs.Close
    cn.Close

    End Function

    Function czyistnieje(nazwa As String) As Boolean
    Dim ark As Worksheet
    czyistnieje = False
    For Each ark In ThisWorkbook.Worksheets
    If ark.Name = nazwa Then czyistnieje = True
    Next ark
    End Function

    tak aby po utworzeniu arkuszy na podstawie kolumny D po ponownym uruchomieniu dopisywało do nich nowe rekordy, które pojawiły się w arkuszu1. Na chwile obecną za każdym razem muszę usunąć powstałe arkusze i uruchomić makro ponownie. Drugie pytanie czy jest możliwość w jakiś sposób ograniczyć ilość kolumn kopiowanych, bądź wskazać które kolumny z danego wiersza mają być skopiowane ?? Jeśli ktoś był by w stanie mi pomóc będę bardzo wdzięczny. Dopiero zaczynam zabawę z VBA, więc prosił bym o ewentualne tłumaczenie jak dla laika

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do