Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Rozwiązano] skrócenie makra- za każdym razem otwiera mi się okienko, w którym wybieram plik

12 Mar 2019 11:45 174 6
  • Poziom 3  
    Cześć,

    mam makro, które wkleja mi konkretne wartości z różnych kolumn z pliku Dane do nowego pliku. Niestety nie umiem przerobić tego makra tak, żeby otwierać ten plik z którego wklejam tylko raz. Bo teraz za każdym razem przy kopiowaniu z kolumny A muszę otworzyć plik, a potem jak kopiuję z kolumny C znowu otwiera mi się okienko w którym muszę wybrać plik, z którego chcę kopiować.
    Wkleiłam tutaj tylko część makra, ponieważ reszta się powtarza (wklejam takich 9 kolumn i za każdym razem muszę otworzyć plik).
    Czy wie ktoś jak to przerobić?


    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Moderator Programowanie
    W makro otwieranie powtarzasz za każdym kopiowaniem. Zostaw tylko jedno na początku, a "Close" na samym końcu...
  • Poziom 33  
    Jeżeli kopiujesz podobne zakresy to (trochę to dziwnie robisz ale )
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Poziom 3  
    adamas_nt napisał:
    W makro otwieranie powtarzasz za każdym kopiowaniem. Zostaw tylko jedno na początku, a "Close" na samym końcu...


    i jak tak zmieniam:
    Sub OpenCloseWorkbook()
    Dim Dane As Variant
    Dim FileName As String
    Dim Rng As Range

    Dane = Application.GetOpenFilename( _
    FileFilter:="Microsoft Excel Workbooks, *.xls; *.xlsx; *.xlsm", Title:="Wafel")
    Workbooks.Open Dane
    FileName = ActiveWorkbook.Name
    Worksheets("SUMA ODPADU").Range("A6:A100").Copy
    ThisWorkbook.Activate
    Range("E34567").End(xlUp).Offset(1, 0).Activate 'znajduje pierwszy pusty wiersz w danej kolumnie
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    FileName = ActiveWorkbook.Name
    Application.CutCopyMode = False
    FileName = ActiveWorkbook.Name
    Worksheets("SUMA ODPADU").Range("C6:C100").Copy
    ThisWorkbook.Activate
    Range("F34567").End(xlUp).Offset(1, 0).Activate 'znajduje pierwszy pusty wiersz w danej kolumnie
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Workbooks(FileName).Close SaveChanges:=False

    End Sub


    to wyrzuca mi błąd. Kopiuje tylko jedną kolumnę, a przy drugiej wyskakuje mi błąd w makrze.

    Dodano po 10 [minuty]:

    clubs napisał:
    Jeżeli kopiujesz podobne zakresy to (trochę to dziwnie robisz ale )
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    ale w tym wypadku wszystko mi wklei do kolumny E, a chcę kopiować kolumny, ale każda kolumna do innej kolumny.
  • Poziom 33  
    Aktywacja napisał:
    ale w tym wypadku wszystko mi wklei do kolumny E

    Sprawdziłeś? Widzę że wklejasz do 'E i F" Kopiując dwa zakresy wklei ci właśnie do tych dwóch kolumn.
  • Poziom 3  
    ok dziękuję, co prawda potem dalej, chcę, żeby była kolumna przerwy w kopiowaniu, ale jakoś sobie poradzę, dziękuję.
  • Poziom 3  
    ok dziękuję, co prawda potem dalej, chcę, żeby była kolumna przerwy w kopiowaniu, ale jakoś sobie poradzę, dziękuję.

    Dodano po 1 [minuty]:

    Code:
    Sub OpenCloseWorkbook1()
    
    Dim Dane As Variant
    Dim FileName As String

    Dane = Application.GetOpenFilename( _
    FileFilter:="Microsoft Excel Workbooks, *.xls; *.xlsx; *.xlsm", Title:="Wafel")
    Workbooks.Open Dane
    FileName = ActiveWorkbook.Name
    Worksheets("SUMA ODPADU").Range("A6:A100,C6:C100").Copy
    ThisWorkbook.Activate
    Range("E34567").End(xlUp).Offset(1, 0).Activate 'znajduje pierwszy pusty wiersz w danej kolumnie
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    Workbooks(FileName).Close SaveChanges:=False

    End Sub