Collapse column

Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - Davidoff99

Seiten: [1]
1
Hallo maniweb,
danke für den Link. Habs mit xlVerbOpen und xlVerbPrimary schon probiert. Gleiche Fehlermeldung.

Wenn ich jedoch den Code wie folgt abändern geht es:
   Worksheets("Docs").Visible = xlSheetVisible
   Worksheets("Docs").Select
   Worksheets("Docs").OLEObjects("AITB-ENGL").Verb
   Set oDoc = Worksheets("Docs").OLEObjects("AITB-ENGL")


Grüße Davidoff99

2
Excel / Office 365: Word Report aus Eingebettete Wordvorlage in Excel erstellen
« am: Oktober 25, 2018, 15:56:43 Nachmittag »
Hallo liebe Forums Mitglieder,
aus einem Excel soll ein Word Report erstellt werden.
Hierzu habe ich die Wordvorlage in einem Excelsheet eingefügt.
Hierzu habe ich folgenden Code:

Modul AutoOpen
'Declaration Word
   Public WordApp As Object
   Public oDoc As Object
   Public dp As Object
   Public wd As Object
...

Modul Report
If Err.Number <> 0 Then
    Set WordApp = CreateObject("Word.Application")
    Word.Application.WindowState = wdWindowStateMinimize
End If
   
   Worksheets("Docs").Visible = xlSheetVisible
   Worksheets("Docs").Select
   ActiveSheet.OLEObjects("DC-FRA-TEMPLATE-ENGLISH").Verb Verb:=xlVerbAdd
   Set oDoc = ActiveSheet.OLEObjects("DC-FRA-TEMPLATE-ENGLISH")

   WordApp.DisplayAlerts = 0
   Application.ScreenUpdating = False
   Word.Application.WindowState = wdWindowStateMinimize

   Set wd = GetObject(, "Word.Application")
   WordApp.Visible = False
...


jetzt bekomme ich die Fehlermeldung das Variable xlVerbAdd nicht definiert sei.
Wenn ich den Patz xlVerdAdd weglassen bekomme ich die Fehlermeldung Typen unverträglich in Zeile:
Set oDoc = ActiveSheet.OLEObjects("DC-FRA-TEMPLATE-ENGLISH")

Jemand eine Idee?

D&G
Davidoff99

3
Excel / Office 2016 Makro erzeugt PowerPoint aus Excel ohne Office Reference
« am: März 15, 2018, 12:42:22 Nachmittag »
Hallo Forums mitglieder,
aus einem Excel soll automatisiert eine PowerPoint mit vorgegebenen Template generiert werden.
Da die Anwender unterschiedliche Excel Versionen nutzen, kann die Reference nicht verwendet werden (late Binding).
Mein Makro erstellt aus einer im Excel hinterlegten PowerPoint Vorlage eine neue PowerPoint und soll die Daten aus Excel in bestimmte Shapes übertragen.


Mein Code:
'** Alles auf Public da dies Variablen über mehre Module aufrufbar sein sollen
Sub CreatePPT
   Public Pfad As String
   Public strFilename As String
   Public rngRange As Range
   Public ppApp As Object
   Public ppPres As Object

'** Erstelle PowerPoint

   If Err.Number <> 0 Then
    Set ppApp = CreateObject("PowerPoint.Application")
        PowerPoint.Application.WindowState = ppWindowStateMinimize
        PowerPoint.Application.WindowState = ppWindowStateMinimize
   End If
   
   Worksheets("VERSION").Visible = xlSheetVisible
   Worksheets("VERSION").Select
   Worksheets("VERSION").OLEObjects("PPTTemplate").Verb Verb:=xlVerbAdd
   Set ppPres = ActiveSheet.OLEObjects("PPTTemplate")
 
   Set ppPres = GetObject(, "PowerPoint.Application")
   Set rngRange1 = Worksheets("CUSTOMER INFO").Range("Company")
   Set rngRange2 = Worksheets("CUSTOMER INFO").Range("SFDC_SR")
   Pfad = Worksheets("CUSTOMER INFO").Range("File_Location")
   strFilename = rngRange1.value & "_" & rngRange2.value
   
'** hier soll auf Slide 1 der PPT die Shapes mit den Informationen aus Excel gefüllt werden.
  ppPres.Slides(1).Select
  ppPres.Slides(1).Shapes("Title 1").TextFrame.TextRange.Characters.Text = Worksheets("CUSTOMER INFO").Range("Title").value
  ppPres.Slides(1).Shapes("Subtitle 2").TextFrame.TextRange.Characters.Text = Worksheets("CUSTOMER INFO").Range("Company").value
  ppPres.Slides(1).Shapes("Costumer_Adress").TextFrame.TextRange.Characters.Text = Worksheets("CUSTOMER INFO").Range("Costumer_Adress").value

End Sub

Allerdings bekomme ich folgende Fehlermeldung:
Run-Time error `438`: Object doesn´t support this property or method
und das Makro bleibt in der Zeile ppPres.Slides(1).Select stehen.

Wenn ich die Reference nutze, funktioniert das Script einwandfrei...

Hat einer eine Idee wo mein Fehler liegt?
Danke im Voraus.

4
Hab die Lösung gefunden:
----
Sub Send_Mail()
Dim OlApp As Object
Dim olDummy As String
Dim EmailTo As String
Dim Betreff As String
Dim Betreff2 As String
Dim IsCreated As Boolean
Dim i As Long
Dim PdfFile As String, Title As String

Worksheets("Master Data").Activate 'Aktiviert das Sheet
EmailTo = Join(Application.Transpose(Worksheets("Master Data").Range("i17:i70").Value), ";") 'Liest die daten aus und setzt ein Semikon als trennung zwischen die Emailadressen
Worksheets("Bid Contacts List").Activate 'Aktiviert nächstes Sheet
Set OlApp = CreateObject("Outlook.Application")
    Betreff = Range("B1").Value 'Liest das Thema aus  Zelle B1 in der aktuellen Tabelle aus'
    Betreff2 = Range("b2").Value 'Liest das Thema aus  Zelle B2 in der aktuellen Tabelle aus'

 
  ' Define PDF filename

  PdfFile = ActiveWorkbook.FullName
  i = InStrRev(PdfFile, ".")
  If i > 1 Then PdfFile = Left(PdfFile, i - 1)
  PdfFile = PdfFile & "_" & ActiveSheet.Name & ".pdf"
 
  ' Export activesheet as PDF
  Worksheets("Opps Summary").Activate 'Aktiviert das Sheet
  Worksheets("Project-Timeline").Activate 'Aktiviert das Sheet
  Worksheets("ToDo-Liste").Activate 'Aktiviert das Sheet
  Worksheets("Report").Activate 'Aktiviert das Sheet
  ThisWorkbook.Sheets(Array("Opps Summary", "Project-Timeline", "ToDo-Liste", "Report")).Select
  With ActiveSheet
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=PdfFile, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
 
With OlApp.CreateItem(0)
Rem Name des Sendekontos in Anführungszeichen
            'Set .SendUsingAccount = .Session.Accounts.Item'
Rem Empfänger
          .To = EmailTo
         
Rem Optional Kopie an
          .CC = ""
Rem Optional Blindkopie an
          .BCC = ""
         
Rem Email anzeigen zum Einfügen der Signatur
          .GetInspector.Display
         
Rem Dummyzeile für Signatur. Zeile erforderlich
olDummy = .HTMLBody

Rem Betreff
          .Subject = Betreff & " | " & Betreff2 & " | " & " Project Update"

Rem Textkörper (Body) im HTML-Format. (1 = Nur-Text, 2 = HTML, 3 = Rich-Text)
          .BodyFormat = 2
         
Rem "
" = Zeilenumbruch-Anweisung (nur bei HTML)
        .HTMLBody = "<P STYLE='font-family:Trebuchet MS;font-size:11pt'>Dear Projekt Team" & _
          "

" & _
          "attached you will find the actually Project Overview of " & _
          Betreff & " Project: " & Betreff2 & _
          "." & strbody & .HTMLBody
         
          .Attachments.Add PdfFile
Rem  Mail sofort senden
  Rem         .Send
End With
  ' Delete PDF file
  Kill PdfFile
 
  ' Quit Outlook if it was created by this code
  If IsCreated Then OutlApp.Quit
 
  ' Release the memory of object variable
  Set OutlApp = Nothing
End With
End Sub
----

5
Excel / Office 2013: VBA Code zum Auslesen von E-Mailadressen und versenden
« am: März 08, 2016, 17:58:00 Nachmittag »
Hallo liebe Forum Mitglieder,
ich versuche über ein VBA Modul, aus einer Excel Mappe mit unterschiedlichen Arbeitsblätter eine E-Mail an einen bestimmten Adressenbereich zu versenden. Hierbei verwende ich folgendes Skript:

---------------------
Sub Email_versenden()

Dim OlApp As Object
Dim olDummy As String
Dim Empfänger As Range
Dim Betreff As String
Dim Email As Range

Set OlApp = CreateObject("Outlook.Application")

    Betreff = Range("B1").Value 'Liest das Thema aus  Zelle B1 in der aktuellen Tabelle aus'
    Email = ActiveWorkbook.Worksheets("Master Data") 'Setz Variable Email auf Arbeitsblatt "Master Data"'
    Empfänger = Email.Range("I13:L40") 'Setz die Empfängerliste aus dem Arbeitsblatt "Maser Data" und dem Berreich "i30:l40" zusammen"
   
   
    If Empfänger = "" Then Exit Sub

With OlApp.CreateItem(0)
Rem Name des Sendekontos in Anführungszeichen, wird hier jedoch nicht benötigt aktueller Benutzer = Absender
            'Set .SendUsingAccount = .Session.Accounts.Item'
Rem Empfänger
          .To = Empfänger
Rem Optional Kopie an, hier kann eine weitere Range definiert werden
          .CC = ""
Rem Optional Blindkopie an, hier kann eine weitere Range definiert werden
          .BCC = ""
         
Rem Email anzeigen zum Einfügen der Signatur
          .GetInspector.Display
         
Rem Dummyzeile für Signatur. Zeile erforderlich
olDummy = .HTMLBody

Rem Betreff
          .Subject = "E-Mail zum Thema " & Betreff

Rem Textkörper (Body) im HTML-Format. (1 = Nur-Text, 2 = HTML, 3 = Rich-Text)
          .BodyFormat = 2
Rem "
" = Zeilenumbruch-Anweisung (nur bei HTML)
          .HTMLBody = "Sehr geehrtes Projekt Team" & _
          "

" & _
          "im Anhang erhalten Sie eine Liste zum Thema " & _
          Betreff & _
          "." & .HTMLBody
         
Rem  Mail sofort senden
  Rem         .Send
End With

End Sub
------------------------
Allerdings kann ich aus dem aktiven Arbeitsblatt nicht die Daten aus Arbeitsblatt „Master Data“ mit dem Bereich „i13:l40“ übernehmen. Hier sind die EmailAdressen hinterlegt. Diese werden durch eine entsprechende  "Wechseln"-Funktion erstellt und mit einer "WENN" Abfrage als Aktive markiert. 
Mir wird immer Laufzeitfehler 91 angezeigt und komme nicht weiter.
Wäre super wenn einer von euch mir hier weiterhelfen kann.
Grüße
Davidoff99

Seiten: [1]