Excel Vba

Cześć wszystkim.

 

Trochę na zewnątrz, ale niedługo wrócę! =)

 

Mam mały uśmiech z makrem Excela.

Wiem, że są tu plusy ^^ (@Lucas) :p

Nie chodzi zbytnio o sam rysunek, ale to wciąż technika.

 

Chciałbym wpisać kod artykułu w kolumnie, tak aby w kolumnie obok znajdował się obraz powiązany z tekstem po lewej stronie.

 

Znalazłem makro VBA, które pozwala to zrobić za pomocą biblioteki zdjęć, która znajduje się w tym samym folderze co skoroszyt programu Excel.

 

Ale hej, układ nie działał, więc trochę zmieniłem kod, ale nie daję rady.

 

 

 

 

 

 

2 polubienia

Oto on:

 

Opcja jawna


Sub Affiche_Image()
Dim Ws As Worksheet                   ' Służy do łatwiejszego manipulowania obiektem liścia
Przyciemnij obraz jako ciąg                  ' Będzie zawierał nazwę obrazu
Dim Lg As Long                        ' Numer ostatniego wiersza, kolumny B

  Set ws = Arkusze("Zamówienie zakupu")                                           ' Nazwa arkusza

  Application.ScreenUpdating = False                                  ' Uniemożliwia odświeżanie ekranu
 
  Efface_Images
 
  Z ws
 
    Dla lg = 2 TB . Zakres("B65536"). Koniec(xlUp). Wiersz                     ' Przechodzi przez całą kolumnę B
    
      Obraz = ThisWorkbook.Path & "\Catalog\" & . Cells(Lg, "A")        ' Katalog do odświeżenia
        
      On Error Resume Next                                            ' Pozbywamy się błędów
      Z. Pictures.Insert(Image). ShapeRange                         ' Wstawiamy obraz, którego nazwa znajduje się w kolumnie B 

2 polubienia

        . LockAspectRatio = msoFalse                                   ' Możesz zmienić jego rozmiar, jak chcesz
        . Po lewej = Ws.Cells(Lg, "B"). Lewa                                ' Lewa pozycja
        . Góra = Ws.Cells(Lg, "B"). Górna                                  ' Pozycja Wysoka
        . szerokość = ws.cells(lg, "b"). Szerokość                              ' Szerokość
        . Wysokość = ws.cells(LG, "b"). Wysokość                            ' wysokość
      Zakończ się na
      Jeśli Err.Number > 0 Then                                          ' Jeśli wystąpił błąd (brak obrazu)
        Skrzynka informacyjna . Komórki (Lg, "A") i vbCr & "Nieistniejący obraz"           ' Jest to raportowane
      Zakończ jeżeli:
    Dalej Lg
  Zakończ się na
Koniec subwoofera


Podpunkt Efface_Images()
Dim Ws As Worksheet                   ' Służy do łatwiejszego manipulowania obiektem liścia
Dim Sh As Shape                       ' Służy do manipulowania kształtami (obrazami) już wyświetlanymi

  Set ws = Arkusze("Zamówienie zakupu")                                           ' Nazwa arkusza

  Z ws
 
    Dla każdego sh w . Kształty                                            ' Przeglądaj całą kolekcję kształtów (obrazy)
      Jeśli nie przeciąć(. columns(1), sh.TopLeftCell) jest niczym Then   ', jeśli znajduje się w kolumnie 1
        Sh.Delete                                                     ' Usuwamy to
      Zakończ jeżeli:
    Następny Sh
  Zakończ się na
 
Koniec subwoofera

 

2 polubienia

Przepraszam, wygląda to trochę jak "powódź"...

 

Podsumowując, mam kolumnę "A", w której umieszczam numer artykułu (zaczynając od wiersza 2)

 

A w kolumnie "B" Obraz odpowiadający numerowi artykułu wyświetla się po kliknięciu przycisku (są 2 przyciski z makrem, jeden do wyświetlania obrazów, jeden do usunięcia)

2 polubienia

No właściwie.....

 

Opublikuj w ... Na własną rękę znalazłem świetny :p

 

Myślę, że można to wymazać.

 

Życzę miłego dnia!

3 polubienia

Jeśli to możliwe, podaj nam procedurę, którą należy wykonać, korzystając z mini samouczka

Może być używany przez innych

dziękuję @ + ;-)

1 polubienie