logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Excel -makro: Wstawianie obrazu z pliku do arkusza za pomocą makra

jackassek 03 Cze 2013 13:41 1500 2
REKLAMA
  • #1 12376760
    jackassek
    Poziom 10  
    Posty: 7
    Witam,

    Podaję makro:


    Sub Logoeps()


    ' Logoeps Makro
    ' Option Explicit
    Dim x As Double
    Dim y As Double
    Dim obraz As String
    Dim kom As Range
    Dim fd As Object

    Set fd = Application.FileDialog(msoFileDialogOpen)
    With fd
    .InitialFileName = ActiveWorkbook.path & "\" & Range("M68")
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "Picture Files", "*.png; *.jpg; *.gif; *.bmp"
    .Title = "Which file"
    If .Show Then
    obraz = .SelectedItems(1)
    Set kom = Range("C2:D6")
    x = kom.Columns.Width
    y = kom.Rows.Height
    With ActiveSheet.Pictures.Insert(obraz)
    With .ShapeRange
    .LockAspectRatio = msoFalse
    .Left = kom.Left
    .Top = kom.Top
    .Width = x
    .Height = y
    .ZOrder msoSendToBack
    End With
    .Placement = xlMoveAndSize
    .PrintObject = True
    End With
    Set kom = Nothing
    Else
    Exit Sub
    End If
    End With
    Set fd = Nothing
    End Sub


    Makro działa tak jak powinno ale chciałbym zmienić kilka rzeczy:

    1. Przy uruchomieniu tego makra wyskakuje okno z wbitą już nazwą pliku. Wystarczy wcisnąć otwórz. Chciałbym, żeby automatycznie to się robiło bez klikania otwórz. Po prostu niech wklei obrazek po uruchomieniu makra.

    2. Chciałbym, żeby makro się odświeżało, jeżeli zmieni się wartość w komórce M68. Tzn. jeżeli zmieni się wartość wspomnianej komórki to makro powinno wykasować dotychczasową wartość(obrazek) i wykonać się ponownie. Zakładam, że w grę wchodzi odświeżanie makra np. co 5 sek ze sprawdzaniem czy zmieniła się wartość w komórce. Może dałoby się zrobić to na zasadzie call nazwa tego samego makra a po tym zamknij makro.

    Jeżeli jesteście w stanie pomóc mi z którymkolwiek z powyższych problemów to proszę o odpowiedź.

    Z góry dziękuję
  • REKLAMA
  • #2 12377009
    cbrman
    Poziom 27  
    Posty: 441
    Pomógł: 177
    Ocena: 61
    Ad1. W module standardowym wklej kod.
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Ad2. W module arkusza do którego ma być ładowany obrazek wklej następujący kod (zakładam, że kod z Ad1 będzie w module1, jeśli nie to zmień odwołanie).
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #3 12377092
    jackassek
    Poziom 10  
    Posty: 7
    Super pierwsze działa drugie sprawdzam.

    Z pierwszym jest jeden problem. Używam tego makra do paru obrazków. Jeżeli wkleję do jednego a później do drugiego to kasuje mi pierwszy obrazek.

    Jak to zrobić zeby nie kasowało?
REKLAMA