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

Excel VBA - odświeżanie rysuknu, odświeżanie komórki

Adriano699 23 Cze 2015 00:23 723 0
  • #1
    Adriano699
    Poziom 2  
    Cześć!

    Mam następujący problem.
    Wprowadziłem formułę do komórki S1, która w zależności od kombinacji komórek B7 i C7 wyświetla indywidualny numer. Taki sam numer mają zdjęcia w folderze z excelem. W makrze napisałem formułę, która w zależności od S1 wyświetla odpowiednie zdjęcie. Wszystko super działa, po zmianie kombinacji numer się zmienia, ale zdjęcie pozostaje to samo, czyli zgodne z numerem, które wprowadziłem jako pierwsze. Jak odświeżyć takie zdjecie?

    Formuła wygląda tak:
    Application.Calculation = xlAutomatic
    Dim Shp As OLEObject
    Dim sciezka As String
    Dim wzorzec As String
    Dim plik As String

    If Target(1, 1).Address(0, 0) <> "S1" Then Exit Sub

    sciezka = ThisWorkbook.Path & "\"
    plik = Format(Range("S1").Value, "000000")

    If LCase(plik) Like "*.jpg" Then
    wzorzec = sciezka & plik
    Else
    wzorzec = sciezka & plik & ".jpg"
    End If


    If Dir(wzorzec) = "" Then
    wzorzec = sciezka & "777777"
    End If

    Application.ScreenUpdating = False

    For Each Shp In ActiveSheet.OLEObjects
    If Shp.TopLeftCell.Address(False, False) = "I1" Then
    Shp.Delete
    End If
    Next Shp

    If Not IsEmpty(Target(1, 1)) Then

    Set Shp = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Image.1", Link:=False, _
    DisplayAsIcon:=False, Left:=Range("I1").Left, Top:=Range("I1").Top + 5, Width:=300, Height:=200)
    With Shp.Object

    .PictureSizeMode = fmPictureSizeModeZoom
    On Error Resume Next

    .Picture = LoadPicture(wzorzec)
    If Err.Number <> 0 Then
    Err.Clear
    wzorzec = sciezka & "777777"
    .Picture = LoadPicture(wzorzec)
    End If
    End With
    End If
    Application.ScreenUpdating = True
    End Sub

    Proszę o pomoc :)