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

Makro w Excel - Makro w Excel

29 Maj 2013 13:03 1737 3
  • Poziom 9  
    Witam,

    Mam problem z makrem i nie umiem tego ustawić. Niestety nie jestem biegły w makrach i dlatego korzystam ze znalezionych rozwiązań.

    Co potrzebuje:

    Makro które po przeczytaniu wartości komórki x zassie obraz z dysku pod ścieżką podaną w komórce y. I wklei obraz do podanej komórki (która jest scalona z wielu) rozciągając go.

    Co znalazłem:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Makro po włączeniu prosi o wybranie pliku. Wrzuca i rozciąga idealnie obraz do komórki ale niestety pojawia się problem. Komorki do których ma wkleić obraz i go dopasować są scalone, a on wpisuje i dopasowuje obraz tylko do lewej górnej.

    Proszę o rozwiązanie problemu nie dopasowania obrazu do scalonej komórki oraz problemu z tym aby automatycznie wybierał plik ze ścieżki w komórce.

    Plik generuje karty katalogowe na podstawie tabeli przestawnej. Wszystko działa pięknie. Jedyne co zostało to aby w zależności od modelu urządzenia wklejał odpowiednie zdjęcie.

    Z góry dziekuję za pomoc.

    Pozdrawiam

    Jacek
  • Poziom 16  
    Makro jest bardzo dobre. Jeżeli zmienisz na:
    Kod: vb
    Zaloguj się, aby zobaczyć kod
    to obrazek wklei się w całej, scalonej komórce.
  • Moderator Programowanie
    Metoda GetOpenFilename nie ma argumentu definiującego ścieżkę do pliku. Może zmień na dialog:

    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 9  
    Super, wielkie dzięki.

    Brakuje mi tylko wisienki na torcie tzn:

    skoro już pobiera adres obrazu z komórki to po co wyświetla mi okno do wyboru pliku. Idealnie by było gdybym tylko włączył makro a ono wstawiło obrazek bez pytania skoro ścieżkę pliku ma podaną w komórce.

    Teraz wygląda to tak:
    "
    Sub Nieobudowany()
    '
    ' Nieobudowany 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 = Range("M66")
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "Picture Files", "*.jpg; *.gif; *.bmp"
    .Title = "Which file"
    If .Show Then
    obraz = .SelectedItems(1)
    Set kom = Selection
    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

    "

    I działa super tylko skoro podaje mu ścieżkę to nie potrzebuje zeby wyswietlał mi okno z wstępnie wklejoną nazwą. Niech automatycznie to wybierze. Nie chcę klikać "Otwórz".

    Pomóżcie prosze jeszcze z tym.

    Pozdrawiam

    Dodano po 3 [godziny] 3 [minuty]:

    Jeszcze jedno.

    Jeżeli uda się uruchomić automatycznie makro, to czy da się zrobić tak aby odświeżało się po zmianie wartości pewnej komórki? Mam na myśli to że zasysa wartość z określonej komórki, która jest wynikiem w tabeli przestawnej. Jeżeli zmienię tabelę przestawną to automatycznie zaktualizuje mi sie wartość w tej komórce ale makro automatycznie tego nie zrobi. Muszę je uruchomić ponownie.

    Jeżeli jesteście mi w stanie pomóc, będę bardzo wdzięczny.