Excel - przyspieszenie wstawiania obrazka w komentarzu

0

Witam,
jestem tu nowy i nie udało mi się jeszcze wyszukać wskazówki dla mojego problemu.

Mam rozbudowany arkusz, który zrobiłem jako szablon i używam go wielokrotnie dla nowych zadań w osobnych folderach na dysku.
Większość operacji udało mi się zoptymalizować, pozostał jeden element, który zabiera mi jeszcze za dużo czasu ;/

Problemem jest dodawanie obrazka do komentarza. Ręczne dodawanie wymaga 12 kliknięć (prawa/lewa mysz). Dodatkowo przy uruchomieniu kopii pliku w innej lokalizacji trzeba od nowa przeszukiwać dysk dla odnalezienia miejsca, z którego trzeba pobrać obrazek.
W związku z tym potrzebne jest makro które po uruchomieniu przejdzie przez te wszystkie kliknięcia i pozwoli wybrać plik graficzny, najlepiej od razu z lokalizacji gdzie znajduje się sam plik excela.

Próbowałem zarejestrować makro, ale nic z tego nie wyszło:

Sub Wstaw_obraz_w_komentarz()
'
' Wstaw_obraz_w_komentarz Makro
'
' Klawisz skrótu: Ctrl+q
'
    Range("B29").Select
    Range("B29").AddComment
    Range("B29").Comment.Visible = False
    Range("B29").Comment.Text Text:="sLy:" & Chr(10) & ""
End Sub

Jest szansa na pomoc w temacie?

0

proszę bardzo:

Range("A1").AddComment "test"
Range("A1").Comment.Visible = True
Range("A1").Comment.Shape.Fill.UserPicture "sciezka do pliku"
0
areklipno napisał(a):

...

Dziękuję :)
Jak najbardziej działa, jest tylko mały problem ;/
Nie jestem w stanie za każdym razem podawać konkretnej komórki w jakiej znajdzie się dany obrazek, a już na pewno nie wklejać dla każdego osobnej ścieżki ;/

W międzyczasie znalazłem takie cudo, które na filmie wykracza nawet poza moje zapotrzebowanie, bo powinno wstawiać obrazki z folderu dla wielu komórek za jednym wywołaniem makra.
Tylko z jakiegoś powodu kod przestaje działać na etapie dodawania obrazka ;/
Nie wiem czy można tutaj wklejać linki do yt gdzie znalazłem film, więc na razie tylko screen:
screenshot-20220808151617.png
screenshot-20220808151811.png

0
sLy_xx napisał(a):
areklipno napisał(a):

...

Dziękuję :)
Jak najbardziej działa, jest tylko mały problem ;/
Nie jestem w stanie za każdym razem podawać konkretnej komórki w jakiej znajdzie się dany obrazek, a już na pewno nie wklejać dla każdego osobnej ścieżki ;/

W międzyczasie znalazłem takie cudo, które na filmie wykracza nawet poza moje zapotrzebowanie, bo powinno wstawiać obrazki z folderu dla wielu komórek za jednym wywołaniem makra.
Tylko z jakiegoś powodu kod przestaje działać na etapie dodawania obrazka ;/
Nie wiem czy można tutaj wklejać linki do yt gdzie znalazłem film, więc na razie tylko screen:
screenshot-20220808151617.png
screenshot-20220808151811.png

Niestety to nie pomaga ;/ Z tego co zrozumiałem, to skrypt miał polegać na łączeniu nazwy z pliku z komórką excela.

screenshot-20220809075736.png

==========================================================================================

edit:

Ok już mam, udało mi się po zmianie nazw plików na dane z zawartości komórek.

Jednak na filmie było inaczej i jeszcze będę to rozgryzał :P
Autor chyba chciał zmotywować odbiorców do większej wnikliwości :)

Poniżej info z filmu i ścieżki do plików jakie zostały użyte.

Pewnie coś przegapiłem i muszę się bardziej skupić, żeby zadziałało tak samo ;/
screenshot-20220809082207.png
screenshot-20220809082303.png

0
sLy_xx napisał(a):
sLy_xx napisał(a):
areklipno napisał(a):

...

Dziękuję :)
Jak najbardziej działa, jest tylko mały problem ;/
Nie jestem w stanie za każdym razem podawać konkretnej komórki w jakiej znajdzie się dany obrazek, a już na pewno nie wklejać dla każdego osobnej ścieżki ;/

W międzyczasie znalazłem takie cudo, które na filmie wykracza nawet poza moje zapotrzebowanie, bo powinno wstawiać obrazki z folderu dla wielu komórek za jednym wywołaniem makra.
Tylko z jakiegoś powodu kod przestaje działać na etapie dodawania obrazka ;/
Nie wiem czy można tutaj wklejać linki do yt gdzie znalazłem film, więc na razie tylko screen:
screenshot-20220808151617.png
screenshot-20220808151811.png

Niestety to nie pomaga ;/ Z tego co zrozumiałem, to skrypt miał polegać na łączeniu nazwy z pliku z komórką excela.
screenshot-20220809075736.png

A w jakiej lokalizacji masz zdjęcia, które chcesz pokazać jako tło? W tej chwili jest folder xxx na dysku D, w którym znajduje się plik 101.jpg, który ma być podstawiony jako tło. Może po prostu ścieżka jest niewłaściwa i zdjęcia są w innym miejscu....

0

Dokładnie tak mam.
screenshot-20220809083445.png
screenshot-20220809083457.png

Tylko coś jest na rzeczy ze ścieżka do pliku i jego nazwą, bo plik powinien się zaczynać nazwą na jakiej kończy się ścieżka do niego, a zawartość komórki miała być jej drugim członem.
Dobra daje link do filmu, bo nie mogę tego przekazać, a chciałbym zrozumieć - może ktoś to wytłumaczy (albo mnie zbanuje ;/)

0

Na 100% tak
screenshot-20220809103528.png
screenshot-20220809103629.png

1
sLy_xx napisał(a):

Na 100% tak
screenshot-20220809103528.png
screenshot-20220809103629.png

Napisałem cały skrypt na nowo i "u mnie działa"....
Poniżej kod, którego użyłem. W komórkach miałem
screenshot-20220809110553.png

Sub WstawKomentarz()

Dim obszar As Range
Set obszar = Range("A3:A5")
'Set obszar = Selection 'Twój przypadek


'usunięcie komentarzy jeśli istnieją
Dim dousuniecia As Range
On Error Resume Next
Set dousuniecia = obszar.SpecialCells(xlCellTypeComments)
If (Not dousuniecia Is Nothing) Then
    For Each cell In dousuniecia
        cell.Comment.Delete
    Next cell
End If

'dodanie komentarza z obrazkiem
For Each cell In obszar
    picture_path = "D:\test\" & cell.Value & ".jpg"
    
    'sprawdzenie czy jest dobra ścieżka -- testowo
    'MsgBox picture_path
    
    With cell.AddComment
        .Shape.Fill.UserPicture picture_path
        .Shape.Height = 100
        .Shape.Width = 100
    End With
Next cell

End Sub

Nawet jak zmieniłem ścieżkę na taką, w której nie było pliku komentarz wstawiał się, ale był pusty (bez obrazka). A wyskakuje Ci jakiś opis błędu, kiedy Ci wyskakuje?

0

Działa nawet jak zrobiłem dodatek z początkiem nazwy nie zawartej w komórce excela :)
Dziękuję za pomoc i dodatek z usuwaniem komentarza, w sumie może być przydatne.

screenshot-20220809115622.png
screenshot-20220809115652.png
screenshot-20220809115728.png

Muszę jeszcze przetestować czy zadziała jak będę próbował podmienić obrazek dla jednej lub kilku pozycji.
W sumie jeśli potraktuję tym skryptem całą kolumnę to wykasuje stare i nadpisze nowe.
Tyle, że obszar jest ustawiony na sztywno, więc i tak muszę całość robić przy każdej zmianie.

0

Zrobiłem jak poniżej i w dowolnym miejscu mogę zaznaczyć pojedynczą lub zakres komórek gdzie wstawia komentarz.
Super sprawdza się część do czyszczenie z poprzedniego komentarza, bo bez tego podmiana wymagałaby ręcznego usuwania starego komentarza.

Jeszcze raz wielkie dzięki za pomoc.

Sub Wstaw_obraz_w_komentarz()

'usunięcie komentarzy jeśli istnieją
Dim dousuniecia As Range
On Error Resume Next
Set dousuniecia = obszar.SpecialCells(xlCellTypeComments)
If (Not dousuniecia Is Nothing) Then
    For Each Cell In dousuniecia
        Cell.Comment.Delete
    Next Cell
End If
'wstawianie obrazka
For Each Cell In Selection
    ThisPicture = "D:\xxx\" & Cell.Value & ".jpg"
        With Cell.AddComment
        .Shape.Fill.UserPicture ThisPicture
        .Shape.Height = 100
        .Shape.Width = 100
    End With
Next Cell
End Sub

1 użytkowników online, w tym zalogowanych: 0, gości: 1