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.

Excel kopiowanie z wyborem arkusza

12 Paź 2014 20:09 2019 30
  • Poziom 8  
    Cześć mam taki problem, mianowicie chodzi oto żeby poprawić makro tak żeby przed wklejeniem danych zapytało " do którego arkusza z kopiować dane?" i wybór np. pięciu arkuszy " arkusz1 arkusz2 arkusz3 arkusz4 arkusz5", i po wybraniu któregoś arkusza tak skopiuje te dane, taki msgebox z wyborem arkuszy.
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Specjalista - VBA, Excel
    Witaj
    Tworzenie formularza i w jej element RefEdìt i przycisk.
    VBA -References - RefEdit Control
  • Poziom 8  
    Przepraszam że pytam jeszcze raz ale czy jest taka opcja z MsgeBox a nie z bardzo by mi na tym zależało. Z góry wielkie dzięki.
  • Specjalista - VBA, Excel
    Z MsgBox można wybrać tylko Tak, Nie lub Anulować.
    Możliwość wprowadzenia jest w InputBox, ale trzeba wprowadzać ręcznie, możliwy błąd.
    Z RefEdìt można określić kursorem arkusza i komórki docelowej.
  • Pomocny post
    Poziom 34  
    Możesz zobaczyć to z inputboxem:



    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Specjalista - VBA, Excel
    Widziałem i bardziej skomplikowane rzeczy, pytanie czy to działa w Ciebie?
    W tym przypadku ark jest numer arkusza(karta), bez względu na jego nazwę.
    Czyli po lewej stronie arkusz(pierwszy) może być nazwany Arkusz3.
  • Poziom 8  
    Dzięki troszkę sobie je jeszcze przerobiłem wygląda tak
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    tylko mam jeszcze mały problem bo chciałem żeby po skopiowanie wybrana zawsze była komórka C1, zaznaczam że kopiuje do nie aktywnego arkusza to wyżej nie działa.
  • Specjalista - VBA, Excel
    Najpierw należy wybrać arkusza(np. Sheets(2).Select), a następnie komórki - Range("C1").Select

    Dodano po 1 [minuty]:

    albo
    Application.Goto Sheets(2).Range("C1")
  • Poziom 34  
    Tak jak kolega JRV napisał możesz użyć.


    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 8  
    To działa, lecz mi nie chodziło żeby on przechodził od razu do tego arkusza po zakończonej operacji , tylko jak ja sam zmienię arkusz to dopiero żeby ustawił C1.
  • Pomocny post
    Specjalista - VBA, Excel
    W kodzie modulu skoroszytu dla wszyskich arkuszy
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    albo w kodzie określonego arkusza
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 8  
    Dzięki wielki wszystko ok
    Jeszcze was trochę po mecze.
    A jak przerobić to makro tak żeby działało na zakresach to znaczy z jednego pliku kopiuje np. plik A sheets(1).range("C6:E16";"B19:B20") i żeby te zakresy wklejało mi w tym aktywnym pliku w różne miejsca np. zakres1Plik B Sheets(1).range("H6:J16";"G19:G20"), zakres2 plik B sheets(1).range("M6:O16";"L19:L20") i tak do 5 zakresów, chodzi mi oto ze teraz nie będę wybierał arkuszy tylko zakresy. wielkie dzięki z góry.
  • Specjalista - VBA, Excel
    Piotrek801027 napisał:
    range("C6:E16";"B19:B20")

    Możesz nawet Próbowałes ręcznie skopiować ten zakres?
  • Poziom 8  
    Wiem mała pomyłeczka chodzi o range("C6:E16", "B19:B20") teraz chyba ok.
  • Specjalista - VBA, Excel
    To znaczy nie próbowałeś.
    Zarejestruj takie makro.
  • Poziom 8  
    Ok trochę się zagalopowałem ale zrobiłem to tak:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Czy można to pogrubione dać jako jeden zakres, a w drugim zmienię te podkreślone, i żeby to tak działało jak to wcześniej makro?
  • Poziom 34  
    Możesz to zrobić tak:

    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 8  
    Dobra poradziłem sobie z tym makrem hehe, a z tą aktywną komórką to nie wypał bo wywala mi makro jak chce wkleić:
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    Specjalista - VBA, Excel
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Wtedy nie wywala
  • Poziom 8  
    Teraz działa wszystko jak w zegarku, a to jeszcze jedno pytanko czy można kopiować dane z ukrytego arkusza?, a jeszcze jedno czy część nazwy pliku może być pobrana z nazwy arkusza ?
  • Pomocny post
    Specjalista - VBA, Excel
    Nie ma nic niemożliwego
  • Poziom 8  
    To bardzo bym poprosił o jakieś przykłady makr w tych dwóch przypadkach, z kopiowaniem z ukrytego arkusza i drugie z pobieraniem z komórki części nazwy pliku i go zapisaniu. Z góry wielkie dzięki.
  • Poziom 34  
    1. Jeżeli nie używasz "select" przy kopiowaniu (czyli tak jak masz teraz) to możesz ukryć arkusze i skopiuje bez problemu

    ale można na czas kopiowania odkryć i ukryć przez np.
    Sheets("xx").Visible = xlSheetVisible
    Sheets("xx").Visible = xlSheetHidden

    2. chodzi ci o że przy zapisaniu skoroszytu pobiera nazwę z komórki?
  • Poziom 8  
    Tak przy zapisie pobiera część nazwy z komórki np. dane październik2014.xlsm i ta nazwa podkreślona by była zmienną, co do tych ukrytych arkuszy mogę użyć polecenia sheets(25) czy muszę podać nazwę arkusza?
  • Poziom 34  
    możesz użyć sheets(25)
    w komórce ta nazwa jest dane(spacja)październik(spacja)2014 bo to jest ważne by wyciąć tekst
  • Poziom 8  
    tak jest spacja
  • Poziom 8  
    Siemka wyskrobałem takie makro ale nie chce mi zapisywać pliku niby jest zapisz i nic się nie dzieje
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    nazwa pliku się wyświetla ok ale nie zapisuje, a jeśli do dam takie coś to znowu zapisuje mi dwa razy
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    już nie wiem jak to zrobić żeby było dobrze, pomocy
  • Specjalista - VBA, Excel
    sub Zapis()
    ActiveWorkbook.SaveAs "Jacek " & Cells(1, 1) & " 2014.xls"
    End Sub

    Dodano po 3 [minuty]:

    Private Sub Workbook_AfterSave - To nie trzeba
  • Poziom 8  
    Ale chodziło mi jak wyżej żebym mógł podać gdzie zapisać i żeby to było automatycznie przy wyjściu a nie na przycisku, tylko w tym moim makro musze dwa razy wskazywać ścieżkę do zapisania pliku i czy to tak musi być czy można zmienić na jeden raz