Vinnaren i pepparkakshustävlingen!
2016-05-19, 09:06
  #1
Medlem
Hej


Jag kan i princip inget om VB och har endast lite grundläggande programmeringskunskaper - som dessutom har rätt dåligt bäst-före-datum. Kan inte ens förklara vad jag vill i rubriken.

Jag har ett exceldokument med ett makro. Jag har kopierat ett VB-script och kopplat till en knapp i detta dokument. Det enda som scriptet gör är att läsa av en cell, skicka informationen i denna cell, (samt en länkadress till excelfilen) i ett mail.

Kod:
Sub Knapp1_Klicka()

    Dim OutApp As Object
    Dim OutMail As Object
    Dim strbody As String

    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    strbody = "<HTML><BODY>"
    strbody = strbody & "Text... " & [D4].Value & " mer text... " & "<A href=sökväg till XLs filen>Genväg till dokumentet</A>"
    strbody = strbody & "</BODY></HTML>"
    ActiveWorkbook.Save

    On Error Resume Next
        With OutMail
        .to = [Y4].Value
        .CC = ""
        .BCC = ""
        .Subject = "Text... " & [D4].Value & " mer text..."
        .HTMLBody = strbody
        .Send   'or use .Display
    End With
    On Error GoTo 0

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

Nu är problemet att jag vill ha flera knappar av precis samma karaktär, men som läser av information från cellen i nästa rad. Dvs knapp 2, läser av informationen från D5, knapp 3 läser av från D6 osv osv. Jag skulle helt enkelt vilja kopiera knappen på enklast möjliga sätt men få cellraden att stega 1 steg för varje kopia. Ungefär som man utvidgar en cell.
Citera
2016-05-19, 11:36
  #2
Medlem
Det hade nog varit bäst om jag använde alternativknappar för varje rad. Beroende på vilken knapp som är aktiv så ändras den variabel som skickas när man trycker på skicka-knappen. Men hur man gör detta har jag förstås ingen aning om.
Citera
2016-05-19, 18:27
  #3
Medlem
christerys avatar
Ett bra sätt att designa koden är att hålla isär "jobbet" från GUIt (knappen). Så anropet i klick av en knapp talar bara om för en sub att nu klickade nån på knappen som talar om att du skall läsa från cell A1 eller vad den nu är kopplad till.

Sen lägger du jobbet med att pyssla iväg ett mail i en sub och vips så slipper du skriva/kopiera koden till en massa knappar. Fiffigt om du vill ändra nåt, då behöver du bara ändra på ett ställe. Tex lägga till MVH i slutet på mailet.

Sök på tex vba sub called from button så lär du nog hitta exempel. Kanske lägga till excel åxå i sökningen, VBA används i flera program.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback