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

Excel kopiowanie z wyborem arkusza

Piotrek801027 12 Paź 2014 20:09 1761 30
  • #1 12 Paź 2014 20:09
    Piotrek801027
    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

    0 29
  • #2 12 Paź 2014 21:07
    JRV
    Specjalista - VBA, Excel

    Witaj
    Tworzenie formularza i w jej element RefEdìt i przycisk.
    VBA -References - RefEdit Control

    0
  • #3 13 Paź 2014 18:10
    Piotrek801027
    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.

    0
  • #4 13 Paź 2014 18:25
    JRV
    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.

    0
  • Pomocny post
    #5 13 Paź 2014 19:42
    clubs
    Poziom 30  

    Możesz zobaczyć to z inputboxem:



    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #6 13 Paź 2014 19:58
    JRV
    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.

    0
  • #7 14 Paź 2014 20:37
    Piotrek801027
    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.

    0
  • #8 14 Paź 2014 20:51
    JRV
    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")

    0
  • #9 14 Paź 2014 21:48
    clubs
    Poziom 30  

    Tak jak kolega JRV napisał możesz użyć.


    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #10 15 Paź 2014 19:09
    Piotrek801027
    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.

    0
  • Pomocny post
    #11 15 Paź 2014 19:24
    JRV
    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

    0
  • #12 15 Paź 2014 21:16
    Piotrek801027
    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.

    0
  • #13 15 Paź 2014 21:29
    JRV
    Specjalista - VBA, Excel

    Piotrek801027 napisał:
    range("C6:E16";"B19:B20")

    Możesz nawet Próbowałes ręcznie skopiować ten zakres?

    0
  • #14 15 Paź 2014 21:40
    Piotrek801027
    Poziom 8  

    Wiem mała pomyłeczka chodzi o range("C6:E16", "B19:B20") teraz chyba ok.

    0
  • #15 15 Paź 2014 21:46
    JRV
    Specjalista - VBA, Excel

    To znaczy nie próbowałeś.
    Zarejestruj takie makro.

    0
  • #16 16 Paź 2014 08:41
    Piotrek801027
    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?

    0
  • #17 16 Paź 2014 11:51
    clubs
    Poziom 30  

    Możesz to zrobić tak:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #19 16 Paź 2014 19:09
    Piotrek801027
    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

    0
  • Pomocny post
    #20 16 Paź 2014 19:13
    JRV
    Specjalista - VBA, Excel

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Wtedy nie wywala

    0
  • #21 16 Paź 2014 19:58
    Piotrek801027
    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 ?

    0
  • Pomocny post
    #22 16 Paź 2014 20:05
    JRV
    Specjalista - VBA, Excel

    Nie ma nic niemożliwego

    0
  • #23 17 Paź 2014 08:42
    Piotrek801027
    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.

    0
  • #24 17 Paź 2014 17:51
    clubs
    Poziom 30  

    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?

    0
  • #25 17 Paź 2014 18:56
    Piotrek801027
    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?

    0
  • #26 17 Paź 2014 20:30
    clubs
    Poziom 30  

    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

    0
  • #27 17 Paź 2014 20:32
    Piotrek801027
    Poziom 8  

    tak jest spacja

    0
  • #28 19 Paź 2014 17:13
    Piotrek801027
    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

    0
  • #29 19 Paź 2014 18:45
    JRV
    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

    0
  • #30 19 Paź 2014 18:53
    Piotrek801027
    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

    0