Ile razy dziennie wklejacie specjalnie wartości w Excelu? Pewnie co najmniej kilkanaście 🙂 Może łatwiej byłoby skrótem klawiszowym? A znacie skrót klawiszowy, który by to robił? Na pewno by się przydał, jednak twórcy Excela go nie przewidzieli… Trzeba więc sobie poradzić w inny sposób.
Miałam ten problem jak jeszcze pracowałam na Excelu 2003, gdzie nie było cudownych podpowiedzi przy wklejaniu tak, jak jest teraz. Wkleić specjalnie wartości potrzebowałam bardzo często i brak tego skrótu mi niesamowicie przeszkadzał. Wkurzyłam się więc i stworzyłam makro, które robi jedną prostą rzecz: wkleja specjalnie wartości do zaznaczonej komórki. Tyle. Rozwiązanie okazało się dla mnie zbawienne i nie umiem bez niego żyć. Jestem od niego wręcz uzależniona 🙂
W tym wpisie pokażę wam jak taki skrót zrobić i, co najważniejsze, co zrobić, aby był on dostępny w każdym otwartym przez nas pliku Excela. W tym celu stworzę dodatek do Excela i pokażę jak go zainstalować.
Tworzenie makra
Samo makro tworzy się bardzo szybko. Można albo skorzystać z rejestratora makr (pokazałam na filmiku) albo napisać samodzielnie potem podpiąć skrót klawiszowy. Ponieważ metodę pierwszą możecie zobaczyć na filmiku, to pokażę tutaj metodę drugą. A w niej po kolei:
1. Stwórz nowy plik Excela
2. Wejdź do edytora Visual Basica (Alt + F11)
3. Stwórz nowy moduł, czyli menu Insert / Module.
4. Do białego okienka po prawej strony wklej następujący kod:
Sub WklejSpecjalnieWartosci() ' Klawisz skrótu: Ctrl+Shift+V ' Selection.PasteSpecial xlPasteValues End Sub
Dodawanie skrótu klawiszowego
Najłatwiej to zrobić w okienku Makra. Aby do niego wejść, należy na karcie Deweloper na wstążce (tutaj opisuję jak ją dodać do wstążki) kliknąć przycisk Makra (Alt + F8). Pojawi się następujące okienko:
Należy w nim zaznaczyć nasze makro (do niego dodajemy skrót klawiszowy) i kliknąć przycisk Opcje. Pojawi się kolejne okienko, w którym określamy skrót klawiszowy. Musi się zaczynać on od Ctrl. Doklikujemy więc tylko Shift i v, i gotowe. OK.:
Na koniec jeszcze tylko zapisujemy nasz plik pod wybraną przez siebie nazwą z rozszerzeniem .xlam (dodatek programu Excel):
Od tej pory w każdym pliku Excela na waszym komputerze skrót klawiszowy Ctrl + Shift + V będzie wklejał specjalnie wartości skopiowanego zakresu. Uważajcie tylko, ponieaważ działania makra nie da się cofnąć. Dodatkowo, gdy np. użyjecie tego skrótu, a nie skopiujecie żadnej wartości, dostaniecie okno komunikatu:
Nie należy się nim przejmować i kliknąć End. Komunikat ten mówi, że nie udało się wkleić specjalnie wartości. Pewnie, że się nie udało, jak nawet ich nie skopiowaliśmy (w tym wypadku) 🙂
Ale przecież nie trzeba makra!
Na koniec chcę jeszcze powiedzieć, czemu stworzyłam makro na wklejanie specjalnie wartości, mimo że można (w nowych Excelach) wkleić dane, potem wcisnąć Ctrl, a potem w (w jak wartości). Tak, oczywiście że można. Dla mnie jednak ma to co najmniej 2 wady.
Pierwsza jest taka, że jest to zdecydowanie więcej klawiszy do wciśnięcia niż skrót wywołujący makro.
Druga – ważniejsza – jest to bardzo mało wydajne rozwiązanie przy dużych zestawach danych. Metoda opisana wyżej najpierw bowiem wkleja całe dane, a dopiero później daje nam opcję wyboru wklejania specjalnego. Jeśli więc mamy dużo danych i to w dodatku z formułami – Excel najpierw będzie to wszystko wklejał, a dopiero później wklei tak, jak my tego chcemy. Strasznie to długo trwa. Dlatego wolałam makro 🙂
I wersja wideo:
Twórcy Excela przewidzieli skrót klawiaturowy na wklej specjalnie jako wartości – działa na pewno od wersji 2010.
ctrl + alt + v + r*
*r => jako wartości;
f => jako formuły.
Pewnie, jak najbardziej. Ja jednak wolę dedykowany, który szybciej mi nacisnąć 🙂
Na pewno z podanego przez Ciebie sposobu skorzystam, budując inne skróty klawiszowe. W przypadku w wklej specjalnie wbudowany skrót wszedł mi już w nawyk 🙂
No i super 🙂 Powodzenia!
Witam,
Czy w ten sposób zmieniony kod będzie również działać ?
Sub WklejSpecjalnieWartosci()
’ Klawisz skrótu: Ctrl+Q
’
Selection.PasteSpecial xlPasteValues
End Sub
Pozdrawiam 🙂
Chodzi o zmianę skrótu klawiszowego?
Sub PasteValue()
'do działania procedury wymagana jest referencja
'z menu edytora VBA Tools/References –> zaznaczyć na liście Microsoft Forms 2.0 Object Library
Dim Tekst As String
Dim MyData As DataObject
Set MyData = New DataObject
MyData.GetFromClipboard
On Error Resume Next
Tekst = MyData.GetText
If Err 0 Then
MsgBox „Nie ma nic w schowku”, vbExclamation
Else
'MsgBox Tekst
Selection.PasteSpecial xlPasteValues
End If
On Error GoTo 0
End Sub
Nie będzie błędu tylko komentarz o pustym schowku w przypadku braku skopiowania czegoś do wklejenia
Bardzo sprytne 🙂 Tomasz, dziękuję za komentarz!
Albo jeszcze lepsza metoda:
Private Sub Workbook_Open()
Application.OnKey „^v”, „pasteVal”
End Sub
Sub pasteVal()
ActiveSheet.PasteSpecial xlPasteValues
End Sub
Nie działa 🙁
Hej,
dopiero dziś wpadłam na tę stronę i bardzo dziękuję za wskazówki 🙂
Zmieniłam komputer i nie mogłam znaleźć sposobu, a nie wyobrażam sobie pracy bez skrótu dla wklej wartość.
Kompletnie nie znam się na makrach i pierwszy raz z nich korzystam. Jeśli moje pytania są głupie – wybacz 🙂
Zrobiłam, tak jak poradziłaś i zapisałam plik.
Pisałaś, ze od tej pory każdy plik excelowy będzie obsługiwał ten skrót. Tak jest – pod warunkiem, że najpierw uruchomię plik .xlam
Plik nie jest widoczny w katalogu, który stworzyłam dla tego rodzaju plików.
Na szczęście mam go w historii uruchamianych plików.
czy coś zrobiłam nie tak?
dzięki za odpowiedź!
Hej 🙂
Ten plik-dodatek trzeba potem doinstalować do swojego Excela (można to zrobić z karty Deweloper/Dodatki). I wtedy już będzie działało :). Tak robiłaś?
A nie łatwiej byłoby zapisanie tego makra w skoroszycie makr osobistych? Wówczas nie trzeba instalować go jako dodatek.
Można, pewnie. Ja osobiście nie lubię Personala, ponieważ otwiera się zawsze przy uruchomieniu Excela, jako ukryty. Jak kto lubi 🙂