Avatar billede idani Praktikant
16. maj 2011 - 10:17 Der er 7 kommentarer og
1 løsning

3 mindre spørgsmål til VBA i Excel

Hej

Jeg har en macro - jeg har kopieret for Ron's excel tips.

Jeg har ingen VBA erfaring overhovedet - ud over det jeg har kunnet sakse fra forskellige steder ;o)

Følgende er en tekst som indsættes i en mail

Please see attach Audit trail for sh.Range[D4]
Meningen er at den skal tage værdien i celle D4 og indsætte - men det gør den ikke - den skal ændres - men jeg ved ikke til hvad ?

Næste spørgsmål er til følgende string

RDB_Mail_PDF_Outlook FileName, Sheets("Mail").Range("B2").Value

Der har jeg behov for at den tager værdien i en cell i det aktive ark - hvordan gør jeg det?

Sidst men ikke mindst - så kan jeg ikke finde den kommando som tager signaturen i Outlook og indsætter i mailen.
Mere så den sluttes pænt af.

Hilsen
Ida
Som skal på VBA kursus ultimo Juni - og glæder sig som et lille barn
Avatar billede Tryphon Nybegynder
16. maj 2011 - 11:14 #1
Håber jeg har forstået dig rigtigt.

1) "Please see attach Audit trail for " & sh.range("d4")
2) f.eks. activesheet.range("b2").value
3) Er lidt mere kompliceret, da du ikke umiddelbart kan finde Outlook signaturen i Excel. Du er nødt til at kalde Outlook objektet i Excel før du kan finde signaturen. Hvordan kalder du det i forbindelse med "send"? Kan du ikke lige give et eksempel.

Kan godt forstå, du glæder dig til VBA kursus. Men husk, at det bare sætter dig igang. Du lærer det først, når du begynder at arbejde med det. :-)
Avatar billede idani Praktikant
16. maj 2011 - 11:57 #2
hmmm jeg kan ikke få nummer 1 til at virke
Prøver lige at sætte hele macroen ind
Sub Mail_Payroll_Expat()

    Dim FileName As String

    If ActiveWindow.SelectedSheets.Count > 1 Then
        MsgBox "There is more then one sheet selected," & vbNewLine & _
              "ungroup the sheets and try the macro again"
    Else
        'Call the function with the correct arguments


        'For a fixed range use this line
        FileName = RDB_Create_PDF(Range("A1:E60"), "C:\audittrail.pdf", True, False)
        If FileName <> "" Then
            RDB_Mail_PDF_Outlook FileName, Sheets("Mail").Range("B2").Value, "Audit trail for Range(D4).value", _
                                "Please see attach Audit trail for Range(D4).value" _
                              & vbNewLine & vbNewLine & "Regards Ron de bruin", False
        Kill FileName
        Else
            MsgBox "Not possible to create the PDF, possible reasons:" & vbNewLine & _
                  "Microsoft Add-in is not installed" & vbNewLine & _
                  "You Canceled the GetSaveAsFilename dialog" & vbNewLine & _
                  "The path to Save the file in arg 2 is not correct" & vbNewLine & _
                  "You didn't want to overwrite the existing PDF if it exist"
        End If
    End If
End Sub

Måske det giver cluet - nummer 2 er ikke afprøvet endnu

Nummer 3 - var ikke en væsentlig en - bare nice to have
Avatar billede Tryphon Nybegynder
16. maj 2011 - 12:07 #3
Har jeg forstået det rigtigt, at du vil have teksten til at være "Please see attach Audit trail for " og så værdien i D4 på det aktuelle ark?

Så skal den hedde "Please see attach Audit trail for " & range("d4").value.

Du skrev sh.range(d4) i #1. Hvor kommer sh fra?
Avatar billede idani Praktikant
16. maj 2011 - 12:18 #4
bingo så funker det
regner med at de grundlæggende fæedigheder på plads på kurset - og resten kommer ved learning bye doing ;o)

smider du et svar ?
Avatar billede idani Praktikant
16. maj 2011 - 13:28 #5
hurtigt tillægsspørgsmål til nr. 2.
Jeg har behov for at hente flere mail adresser til den samme mail.
Alle mail adresser findes i arket Mail - men ligger spredt som

B9; B11; b12; B27

hvordan får jeg dem samlet ??
Avatar billede Tryphon Nybegynder
16. maj 2011 - 14:28 #6
Jeg har jo ikke hele koden, så jeg har ikke haft lejlighed til at teste, men det må være noget i denne stil. Læg mærke til den indsatte do-loop sekvens og prøv dig frem.

Koden leder efter "@" i kolonne B. Jeg går ikke ud fra, at du har snabel-a'et bliver brugt andre steder end i mail adressen.


Sub Mail_Payroll_Expat()
Dim r1 As Long, r2 As Long
    Dim FileName As String

    If ActiveWindow.SelectedSheets.Count > 1 Then
        MsgBox "There is more then one sheet selected," & vbNewLine & _
              "ungroup the sheets and try the macro again"
    Else
        'Call the function with the correct arguments


        'For a fixed range use this line
        'FileName = RDB_Create_PDF(Range("A1:E60"), "C:\audittrail.pdf", True, False)
        If FileName <> "" Then
          r1 = 1
          Do
            r2 = Cells.Find("@", Cells(r1, 2), xlValues, xlPart).row
            If r2 < r1 Then
              Exit Sub
            End If
            RDB_Mail_PDF_Outlook FileName, Sheets("Mail").Cells(r2, 2).Value, "Audit trail for " & Cells(r2, 4), _
                                "Please see attach Audit trail for " & Cells(r2, 4) _
                              & vbNewLine & vbNewLine & "Regards Ron de bruin", False
            r1 = r2 + 1
           
          Loop
        Kill FileName
       
        Else
            MsgBox "Not possible to create the PDF, possible reasons:" & vbNewLine & _
                  "Microsoft Add-in is not installed" & vbNewLine & _
                  "You Canceled the GetSaveAsFilename dialog" & vbNewLine & _
                  "The path to Save the file in arg 2 is not correct" & vbNewLine & _
                  "You didn't want to overwrite the existing PDF if it exist"
        End If
    End If
End Sub
Avatar billede idani Praktikant
16. maj 2011 - 14:47 #7
he he jeg løste den ved at lave en ekstra celle som har følgende
=B9&";"B11&";"&B12

så hvis du smider et svar så kan jeg lukke og slukke ;o)
Avatar billede Tryphon Nybegynder
16. maj 2011 - 15:03 #8
Ja, hvis du kun har de tre mailadreser, så er det da helt klart det nemmeste. Ovenstående kode siger på, at der kan være et variabelt antal mailadresser :-)

Svar: Se nr. #6.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester