Kuvan lisääminen + lähettäminen sähköpostitse

Stina80

Hei,

osaako joku neuvoa kuinka saan makro-koodilla lisättyä kuvan haluttuun soluun? Esim. rivit A50:D65 on alue jolle kuva pitäisi saada sijoitettua.

Toisekseen, kuinka on mahdollista saada kuvat allekkain? Esim. yksi kuva riville 51, toinen 52 jne jne.

Kiitoksia etukäteen!

4

238

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • moduuliin....
      muuta nimet sopiviksi

      Option Explicit

      Sub Kuvakoe()
      ' solualueelle kuva
      LisääKuva "E:\testi.jpg", Range("A50:D65")
      'yksittäiseen soluun kuva
      'LisääKuva "E:\testi.jpg", Range("A50")
      End Sub

      Sub LisääKuva(Tiedosto As String, Solu As Range)
      Dim p As Object
      Dim ylä As Double
      Dim vasen As Double
      Dim leveys As Double
      Dim korkeus As Double
      Set p = ActiveSheet.Pictures.Insert(Tiedosto)
      With p
      .Top = Solu.Top
      .Left = Solu.Left
      .Width = Solu.Offset(0, Solu.Columns.Count).Left - Solu.Left
      .Height = Solu.Offset(Solu.Rows.Count, 0).Top - Solu.Top
      End With
      Set p = Nothing
      End Sub

      Keep EXCELing
      @Kunde

    • Stina80

      Kiitos, se toimii kyllä. Osaatko vielä neuvoa kuinka kuvia voisi lisätä allekkain? Esim. kuva 1 riville 51, kuva 2 riville 52 jne jne?

      • Sub LisääKuva()
        Dim p As Object
        Dim ylä As Double
        Dim vasen As Double
        Dim leveys As Double
        Dim korkeus As Double
        Dim i As Long
        Dim kuva As String

        'muuta SOLU
        Range("A50").Select
        'muuta SOLUALUE
        'Range("A50:D50").Select
        For i = 1 To 2
        'muuta POLKU JA NIMI
        kuva = "E:\BELL" & i & ".jpg"
        Set p = ActiveSheet.Pictures.Insert(kuva)
        With p
        .Top = Selection.Top
        .Left = Selection.Left
        .Width = Selection.Offset(0, Selection.Columns.Count).Left - Selection.Left
        .Height = Selection.Offset(Selection.Rows.Count, 0).Top - Selection.Top
        End With
        Selection.Offset(1, 0).Select
        Next
        Set p = Nothing
        End Sub


    • Stina80

      Valittaa tästä jotakin
      Set p = ActiveSheet.Pictures.Insert(kuva), runtime error 1004 =(

      Tämä kyseinen "range" jossa kuva on, pitäisi jotenkin saada lähetettyä sähköpostiin.

      Sub Mail_Range()
      'Working in 2000-2010
      Dim Source As Range
      Dim Dest As Workbook
      Dim wb As Workbook
      Dim TempFilePath As String
      Dim TempFileName As String
      Dim FileExtStr As String
      Dim FileFormatNum As Long
      Dim i As Long
      Dim Recipient As String
      Dim r As Range
      Set Source = Nothing
      On Error Resume Next
      Set Source = Range("A28:d65").SpecialCells(xlCellTypeVisible)
      On Error GoTo 0
      If Source Is Nothing Then
      MsgBox "The source is not a range or the sheet is protected, " & _
      "please correct and try again.", vbOKOnly
      Exit Sub
      End If
      On Error Resume Next
      Set r = Application.InputBox("Valitse sähköpostiosoite listalta", Type:=8)
      On Error GoTo 0
      If r Is Nothing Then Exit Sub
      Recipient = r.Value
      With Application
      .ScreenUpdating = False
      .EnableEvents = False
      End With
      Set wb = ActiveWorkbook
      Set Dest = Workbooks.Add(xlWBATWorksheet)
      Source.Copy
      With Dest.Sheets(1)
      .Cells(1).PasteSpecial Paste:=8
      .Cells(1).PasteSpecial Paste:=xlPasteValues
      .Cells(1).PasteSpecial Paste:=xlPasteFormats
      .Cells(1).Select
      Application.CutCopyMode = False
      End With
      TempFilePath = Environ$("temp") & "\"
      TempFileName = "Range of " & wb.Name & " " _
      & Format(Now, "dd-mmm-yy")
      If Val(Application.Version) < 12 Then
      'You use Excel 2000-2003
      FileExtStr = ".xls": FileFormatNum = -4143
      Else
      'You use Excel 2007-2010
      FileExtStr = ".xlsx": FileFormatNum = 51
      End If
      With Dest
      .SaveAs TempFilePath & TempFileName & FileExtStr, _
      FileFormat:=FileFormatNum
      On Error Resume Next
      For i = 1 To 3
      .SendMail Recipient, _
      "Poikkeamaraportti"
      If Err.Number = 0 Then Exit For
      Next i
      On Error GoTo 0
      .Close SaveChanges:=False
      End With
      'Delete the file you have send
      Kill TempFilePath & TempFileName & FileExtStr
      With Application
      .ScreenUpdating = True
      .EnableEvents = True
      End With
      End Sub

      Käytän tätä koodia mutta se ei hyväksy kuvia, tai ei yksinkertaisesti ota niitä mukaan viestiin. Osaatko antaa neuvoa vielä tuohon että kuinka saisin lähetettyä kuvan koodia käyttämällä? Olisi vähän niinkuin pakko-homma käyttää koodia eikä suoraan "lähetä sähköpostiin"-toimintoa.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Tulipalossa henkilövahinkoja, itsenäisyyspäivä alkoi huonosti, poliisi tiedottaa lisää

      Savonlinna https://www.como.fi/uutiset/savonlinna-henkilovahinkoja-tulipalossa-poliisi-tiedottaa-lisaa/
      Savonlinna
      107
      11575
    2. Ennen ei ollut persuja ja työttömyyttä, lääkäriinkin pääsi

      Ennen oli kaikilla töitä Kauppiaille kelpasi kun saivat voittoa Yritystukia ei ollut Lääkäriin pääsi kaikki haluklaat Nu
      Maailman menoa
      142
      4339
    3. Millaista läheisyyttä

      Toivoisit ikävästi kohteesi kanssa?
      Ikävä
      117
      4082
    4. Somali ei kätellyt Stubbia Linnan juhlissa

      Miksei somali osaa noudattaa hyviä käytöstapoja. https://www.iltalehti.fi/viihdeuutiset/a/563a3dea-fa3f-41f3-b64f-406d2
      Maailman menoa
      453
      4039
    5. 62
      3621
    6. Antifasismi - mitä se on?

      Se on äärivasemmistolaista anarkistista toimintaa joka käyttää fasisminvastaisuutta keppihevosena oikeuttaakseen toimint
      Maailman menoa
      54
      2828
    7. Kuka on menehtynyt?

      https://yle.fi/a/74-20198293 Kuulemani mukaan ryyppyporukka ollut hapualla ja kuolemanenkeli (F.G) eli mies jonka seuras
      Kankaanpää
      19
      2561
    8. Heräsin taas ikävään

      Ja aivan valtavaan haluun. Tahdon sinua R. ❤️
      Ikävä
      57
      2039
    9. 20v on otettu kiinni

      Tulipalo oli sytytetty joten murhasiko ex omat lapsensa ja heidän Äidin. Tuskin sitä kukaan ohikulkijakaan sytytti.
      Savonlinna
      43
      1924
    10. Kauhea ikävä iski

      Mietin vain, mitä olet juuri nyt tekemässä. Mietin myös, välittyykö se sinulle, kun olet koko ajan mielessäni, tunnetko
      Ikävä
      19
      1612
    Aihe