Excel automatyczna zamiana na hiperłącze


(morelo) #1

Jak to zrobić mam plik Excel w nim adresy stron ale nie jako hiperłącze tylko jak tekst np

jest kilka set takich linków w 3 kolumnach jak je za jednym zamachem zmienic na aktywny link?


(Dimatheus) #2

Hej,

Wystarczy po prostu użyć funkcji HIPERŁĄCZE().

Pozdrawiam,

Dimatheus


(morelo) #3

Rozwiń to daj przykład?


(Dimatheus) #4

Hej,

Nie wiem, co tu rozwijać. Po prostu wpisujesz funkcję i podajesz komórkę, której zawartość formuła ma zamienić na hiperłącze, na przykład:

=hiperłącze(A2)

Pozdrawiam,

Dimatheus


(morelo) #5

Jeszcze raz mam takie cuś

i chce ba zamiast adresów były adres z hiperłączem

http://img20.otofotki.pl/obrazki/bh995_screv.jpg

reszta zostaje bez zmian. I chce kilkaset na raz

Proszę łopatologicznie :?


(lucas80) #6

Do edytora VBA wklej ten kod. W miejscu wiersz=1 i kolumna=1 zmień na właściwy dla twojego arkusza adres pierwszej komórki od której ma zacząć zmieniać.

Sub TworzLinki()

    Dim wiersz As Long

    Dim kolumna As Integer

    wiersz = 1 ' nr wiersza

    kolumna = 1 ' nr kolumny A,B C itp

    Do While Arkusz1.Cells(wiersz, kolumna).Value <> ""


    Cells(wiersz, kolumna).Select

    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Cells(wiersz, kolumna).Value, SubAddress:="", TextToDisplay:=Cells(wiersz, kolumna).Value

    wiersz = wiersz + 1

    Loop

End Sub

I uruchom makro.


(j24) #7

Otrzymałeś odpowiedź w 110% prawidłową ale ty poprostu chyba nie potrafisz korzystać z formuł w Excelu. Wiadomo że tych hiperłączy nie uzyskasz w tym samym miejscu gdzie masz teraz napisy ale w w nowej komórce gdzieś poprawo wpisujesz formułę jak ci napisano odwołując się do komórki gdzie teraz jest napis. Łopatologicznie Np w komórce Z1 wpisujesz komendę =HIPERŁĄCZE(D1) jeżeli twoje napisy byłyby w kolumnie D. Potem kopiujesz tą formułę wklejasz w kolumnę do dołu (nie wiem ile tego masz_) i OK

Te twoje napisy są w jakiejś kolumnie i trzeba to zobaczyć nie wiem czy w D a może w E (chyba trochę tak a trochę tak).

Mając minimum wiedzy z Excela potem takie odwołania można zamienić na wartości i stare napisy wykasować. tzn usunąć kolumny zawierające te napisy.

Widzę że w czasie gdy ja pisałem pojawiła się odpowiedź całkiem innego typu ale też dobra a może lepsza ale ciekawe czy pytający potrafi z niej skorzystać.


(Dimatheus) #8

Hej,

Zdecydowanie lepszym rozwiązaniem będzie faktycznie podane przez lucas80 makro - nie trzeba będzie przeklejać danych, by po zmianie na hiperłącze znajdowały się w tym samym miejscu. Oczywiście w przypadku funkcji też da się uzyskać taki efekt, choć trzeba wykonać więcej kroków:

:idea: utworzyć formuły Hiperłącze() i przeciągnąć je na cały zakres danych,

:idea: skopiować formuły i wkleić je w tym samym miejscu jako wartości (hiperłącza zostaną niezmienione),

:idea: przekopiować dane w żądane miejsce - kopiuj i wklej wszystko.

Pozdrawiam,

Dimatheus


(morelo) #9

Problem w tym, ze przy sposobie z makrem dziala jesli linki sa w jednej kolumnie bez pustych wierszy, a u mnie linki sa porozrzucane w trzech kolumnach, przerywane pustymi wierszami. Przy funkcji Hiperlacze aktywuje linki elegancko, ale mam problem z przeklejeniem ich aktywnych w odpowiednie miejsce. Przy wklejaniu ich jako wartosci traca hiperlacze i na jedno wychodzi. Macie jeszcze jakies pomysly? Tu link do przykladowego pliku.

http://przeklej.net/down/56852955968721 … c9e93.html


(Dimatheus) #10

Hej,

Napisałem Ci powyżej, jak to dokładnie zrobić. Musisz przekleić formuły jako wartości, ale najpierw w miejscach powstałych hiperłączy. Później je zaznaczasz i kopiujesz już całość w miejsce docelowe, czyli wybierasz Wklej wszystko. Tak na pewno zadziała, sprawdziłem na Twoim pliku. http://przeklej.net/down/20475718720583 … 996f0.html

Pozdrawiam,

Dimatheus


(morelo) #11

Kolego ten plik co zrobiłeś ma podświetlenie jak hiperłącze ale po kliknieciu w dany link nie odsyła zobacz sam.


(Dimatheus) #12

Hej,

Faktycznie, wygląda to jak hiperłącze, ale nim nie jest. Najprościej więc - by nie używać makra - po prostu przestawić kolumny i nadal korzystać z funkcji hiperłącze. Ewentualnie można po prostu ukryć obecne oryginalnie wartości (kolumny B-D) i zostawić tylko te z formułami. Wtedy pliczek wyglądałby tak - http://przeklej.net/down/37590845661040 … 4b994.html

Pozdrawiam,

Dimatheus


(morelo) #13

Takie cyrki jak teraz proponujsze nie wchodzą w gre bo plik idzie dalej i kolumny są wypełniane dalej

Dziękuje lucas80 wielki szacun.

Zaś co do kolegi Dimatheus proponuje byś się troche do edukował może u lucas80 bo twoja wiedza na ten temat jest taka jak moja tylko ja sie nie mądrze

Pozdrawiam i dziękuj


(lucas80) #14

Widzę, że dalej jest kłopot z linkami. Przerobiłem swoje makro i teraz automatycznie przerabia linki w kolumnach B,C i D do końca kolumny A

Sub TworzLinki()

    Dim wiersz As Long

    Dim kolumna, kolumna_NAZWA As Integer

    wiersz = 1 ' nr wiersza

    kolumna = 2 'nr kolumny z linkami do przerobienia

    kolumna_NAZWA = 1 'nr kolumny gdzie są nazwy 


    Do While Arkusz1.Cells(wiersz, kolumna_NAZWA).Value <> ""


    Cells(wiersz, kolumna).Select

    If Cells(wiersz, kolumna).Text <> "" Then

        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Cells(wiersz, kolumna).Value, SubAddress:="", TextToDisplay:=Cells(wiersz, kolumna).Value

    End If


    Cells(wiersz, kolumna + 1).Select ' następna kolumna

    If Cells(wiersz, kolumna + 1).Text <> "" Then

        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Cells(wiersz, kolumna + 1).Value, SubAddress:="", TextToDisplay:=Cells(wiersz, kolumna + 1).Value

    End If


    Cells(wiersz, kolumna + 2).Select ' kolejna kolumna

    If Cells(wiersz, kolumna + 2).Text <> "" Then

        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Cells(wiersz, kolumna + 2).Value, SubAddress:="", TextToDisplay:=Cells(wiersz, kolumna + 2).Value

    End If


    wiersz = wiersz + 1

    Loop

End Sub

(Dimatheus) #15

Hej,

Trudno uznać to za cyrki. Tym bardziej, że wpisując do formatki adresy łącz, przekonwertowanie na hiperłącze powinno być robione przez program z automatu. Zostaje więc makro, które podał lucas80 - sprawdziłem, działa znakomicie.

Pozdrawiam,

Dimatheus