logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

VBA - kopiowanie danych do arkusza z innej lokalizacji

lisekx 10 Sie 2015 18:17 1470 10
REKLAMA
  • #1 14911840
    lisekx
    Poziom 14  
    Posty: 230
    Ocena: 20
    Witam,
    Potrzebuję makra, które będzie kopiować dane z konkretnego arkusza w innej lokalizacji.
    Przykład:
    Dane ma pobierać z lokalizacji H:\DANE\Dane.xlsm z pliku Dane z arkusza BBB z komórek A2:F2000 i kopiować do tych samych komórek w pliku Zeszyt1 arkusz AAA z wykorzystaniem pętli, by kopiowanie nie trwało za długo
    Z góry dzieki
    Załączniki:
    • Zeszyt1.rar (29.24 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • REKLAMA
  • #3 14911872
    lisekx
    Poziom 14  
    Posty: 230
    Ocena: 20
    Tak mi podpowiadano, ale widocznie mam złego doradcę :D
  • #5 14911918
    lisekx
    Poziom 14  
    Posty: 230
    Ocena: 20
    PRL napisał:
    W Twoim przypadku wystarczy nagrać makro i bez żadnych przeróbek je wykorzystać.


    Nie wiem co źle robię, ale po nagraniu wygląda tak i nie działa, niestety nie znam się na tym
    Sub kopiuj_dane()
    '
    ' kopiuj_dane Makro
    '
    
    '
        Range("A2:F5000").Select
        Selection.Copy
        Windows("Zeszyt1.xlsm").Activate
        Range("A2").Select
        ActiveSheet.Paste
        Range("A1").Select
    End Sub
    
  • REKLAMA
  • #7 14911982
    lisekx
    Poziom 14  
    Posty: 230
    Ocena: 20
    Coś mi nie wychodzi :(
  • #8 14912007
    PRL
    Poziom 41  
    Posty: 6917
    Pomógł: 953
    Ocena: 899
    Otwórz plik 'zeszyt1'.
    Włącz nagrywanie makra.
    Otwórz plik H:\DANE\Dane.xlsm, wybierz arkusz 'BBB, zaznacz zakres 'A2:F2000'.
    Naciśnij 'kopiuj'.
    Otwórz okno pliku 'Zeszyt1'.
    Kliknij na arkusz 'AAA'. Kliknij w komórkę A2'.
    Kliknij 'wklej' i zapisz makro, które potem będziesz wykorzystywał.
    Pomogłem? Kup mi kawę.
  • #9 14912109
    lisekx
    Poziom 14  
    Posty: 230
    Ocena: 20
    Robie tak jak mówisz i otrzymuję coś takiego
    Sub Makro3()
    '
    ' Makro3 Makro
    '
    
    '
        Range("A2:F2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
        Windows("Zeszyt1.xlsm").Activate
        Range("A2").Select
        ActiveSheet.Paste
    End Sub
    
  • REKLAMA
  • #11 14912456
    lisekx
    Poziom 14  
    Posty: 230
    Ocena: 20
    Chyba mi się udało:)
    Sub Kopiuj_dane()
    Workbooks.Open Filename:="H:\BBB\Dane.xlsm"
      With ActiveWorkbook.Sheets(1)
        Intersect(.UsedRange, .Range("A2:F5000")).Copy _
        Destination:=ThisWorkbook.Sheets("AAA").Range("A1")
        Application.CutCopyMode = False
        Workbooks("Dane.xlsm").Close
      End With
    End Sub


    Teraz mam większy problem, a mianowicie w kolejnym pliku muszę pobierać dane z pliku z lokalizacji H:\CCC\ccc\ z plików, gdzie codziennie zalaładany jest nowy plik odpowiadający dacie (np. 10.08.2015.xlsx) z arkusza DDD z komórek B3:AX500, ale w w taki sposób bym mógł wybrać, który plik mogę skopiować (z listy rozwijanej lub coś podobnego).

Podsumowanie tematu

✨ Użytkownik poszukiwał makra VBA do kopiowania danych z arkusza w pliku Excel znajdującym się w lokalizacji H:DANEDane.xlsm do innego pliku Zeszyt1, w arkuszu AAA, w zakresie A2:F2000. W odpowiedziach zasugerowano nagranie makra, jednak użytkownik napotkał trudności w jego działaniu. Po kilku próbach i wskazówkach, użytkownik zdołał stworzyć działające makro, które otwiera plik źródłowy, kopiuje dane i wkleja je do docelowego arkusza. Dodatkowo, użytkownik zasygnalizował potrzebę modyfikacji makra, aby umożliwić wybór pliku do skopiowania z listy rozwijanej.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA