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

261

    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. Eutanasia - miksi eläimelle sallitaan armokuolema, mutta ihmiselle ei?

      Olen pitkään ihmetellyt yhtä asiaa Suomessa. Kun koira kärsii parantumattomasta sairaudesta ja kovista kivuista, eläinlä
      Arvot ja etiikka
      67
      12090
    2. Sanna Marin vetänyt leukoja 11 kertaa

      Tästähän oli joskus polemiikkia, kun muistaakseni lupasi kymmenen tai jotain vedellä. No nyt niin on, ainakin omien san
      Maailman menoa
      72
      5178
    3. Sosiaalidemokratia romahtanut kautta maailman

      nuoret eivät enää kannata järjetöntä aatetta, joten demarien täytyy hakea kannattajia mamuista. Ruotsin sos.demit jo kie
      Maailman menoa
      298
      3196
    4. Miksi Seta ja Sofia Virta ei vaadi muslimeita kunnioittamaan priden-arvoja?

      Kuten tiedetään niin islam ei hyväksy sitä mitä pride edustaa. Seta-pomo Mikkonen nosti hirveän äläkän kun yksi tepsin
      Maailman menoa
      197
      3120
    5. Kuvaile kaivattusi

      ulkonäkö. Asiattomatkin kommentit saa laittaa. -🏚️
      Ikävä
      137
      2280
    6. Farmi Suomi: Kokeeko Frederik, 81, saman kohtalon kuin ikämies Danny?

      Danny, musiikkineuvos Ilkka Lipsanen, nähtiin mukana Farmi Suomi -realityssä v. 2024. Danny teki yllätysratkaisun ja tuo
      Tv-sarjat
      22
      1487
    7. Tyhmä persuväite = köyhä argumentti

      Väite, että vasemmistopuolueita äänestäisivät vain “köyhät, tapatyöttömät tai heikoilla lahjoilla varustetut”, kertoo en
      Maailman menoa
      30
      1478
    8. Kirjoita

      … jotakin minkä vain kaivattusi tietää
      Ikävä
      102
      1442
    9. Sosialismia Tampereella: Virallinen ilmiantolinja avautuu kaupungissa

      Nyt siis mennään mansessa ihan justiinsa samaan malliin kuin entisessä Neuvostoliitossa, jossa saattoi ilmiantaa naapuri
      Maailman menoa
      51
      1423
    10. 40 vuotta töitä paiskinut ja 3 vuotta työttömänä mamuna Suomessa, sama eläke

      Jokin mättää. Eläkettä ei pidä maksaa lainkaan mamuille jos työhistoriaa ei ole vähintään 10 vuotta takana.
      Maailman menoa
      234
      1394
    Aihe