Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: "Platzhalter" in String?

"Platzhalter" in String?
12.04.2014 11:50:29
Thorsten_Z
Moin liebes Forum,
unten stehenden Code habe ich hier aus dem Forum. Ich wollte mir ihn so anpassen, dass er mir alle Email Auflistet die im Betreff "Akte von" stehen haben, egal was noch im Betreff steht. Aber mit dem "*" als Platzhalter geht es nicht.
Wie muss ich das machen?
hier der Codeteil:
Sub OutlookPosteingang()
Dim objOL As Object, objFolder As Object
Dim strPath As String
Dim lngIndex As Long, lngCur As Long, lngCount As Long, lngRow As Long
Dim SubjText As String
SubjText = "Akte von " & "*"
strPath = "C:\Android" 'Speicherpfad - Anpassen!
strPath = IIf(Right(strPath, 1) = "\", strPath, strPath & "\")
Set objOL = CreateObject("Outlook.Application")
Set objFolder = objOL.GetNamespace("MAPI").GetDefaultFolder(6)
lngCount = objFolder.Items.Count
lngRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For lngCur = 1 To lngCount
Application.StatusBar = "Lese Posteingang " & _
Format(lngCur / lngCount, "0%")
With objFolder.Items(lngCur)
If .Subject = SubjText Then
End Sub
Besten Gruß
Thorsten

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: "Platzhalter" in String?
12.04.2014 11:53:56
Hajo_Zi
Hallo Torsten,
benutze Instr()

AW: "Platzhalter" in String?
12.04.2014 12:12:22
ransi
Hallo
Versuch mal so:
.
If .Subject like SubjText Then
.
ransi

AW: "Platzhalter" in String?
12.04.2014 12:30:27
Thorsten_Z
Hallo Ransi,
mit like hat es nicht funktioniert (Keine Fehlermeldung, aber er findet nichts)
Danke für deine Antwort
Gruß
Thorsten

Anzeige
AW: "Platzhalter" in String?
12.04.2014 12:27:31
Thorsten_Z
Moin Hajo,
wärst du so nett mir das im Code anzupassen? Ich habe es nach der Hilfe in Excel versucht um zu setzten, leider mit dem Ergebnis dass nicht die entsprechenden Emails aufgelistet werden.
Ich stelle mich da grade ziemlich ungeschickt an!
Schau mal bitte:
Sub OutlookPosteingang()
Dim objOL As Object, objFolder As Object
Dim strPath As String
Dim lngIndex As Long, lngCur As Long, lngCount As Long, lngRow As Long
Dim SubjText As String
Dim Suchtext As String
Suchtext = "Akte von "
SubjText = InStr(Suchtext, "Akte von")
'On Error Resume Next
strPath = "C:\Android" 'Speicherpfad - Anpassen!
strPath = IIf(Right(strPath, 1) = "\", strPath, strPath & "\")
Set objOL = CreateObject("Outlook.Application")
Set objFolder = objOL.GetNamespace("MAPI").GetDefaultFolder(6)
lngCount = objFolder.Items.Count
lngRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For lngCur = 1 To lngCount
Application.StatusBar = "Lese Posteingang " & _
Format(lngCur / lngCount, "0%")
With objFolder.Items(lngCur)
If .Subject = SubjText Then 'Anhang Then
End Sub
Gruß
Thorsten

Anzeige
AW: "Platzhalter" in String?
12.04.2014 12:37:03
Hajo_Zi

if  InStr(Suchtext, "Akte von")>0 then

Gruß Hajo

AW: "Platzhalter" in String?
12.04.2014 15:21:11
Thorsten_Z
Hallo Hajo,
ich danke dir für deine Unterstützung.
Hab es jetzt hin bekommen. Ich musste
If .Subject = SubjText Then
in
If InStr(.Subject, "Akte von") > 0 Then
ändern.
Besten Gruß
Thorsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Platzhalter in Excel VBA nutzen


Schritt-für-Schritt-Anleitung

Um einen Platzhalter in einem String in Excel VBA zu verwenden, kannst du den folgenden Code als Grundlage nutzen. Hierbei wird der Platzhalter "*" durch die Funktion InStr ersetzt, um sicherzustellen, dass alle E-Mails mit dem Betreff "Akte von" erfasst werden:

Sub OutlookPosteingang()
    Dim objOL As Object, objFolder As Object
    Dim strPath As String
    Dim lngIndex As Long, lngCur As Long, lngCount As Long, lngRow As Long
    Dim Suchtext As String

    Suchtext = "Akte von "
    strPath = "C:\Android" ' Speicherpfad - Anpassen!
    strPath = IIf(Right(strPath, 1) = "\", strPath, strPath & "\")

    Set objOL = CreateObject("Outlook.Application")
    Set objFolder = objOL.GetNamespace("MAPI").GetDefaultFolder(6)
    lngCount = objFolder.Items.Count
    lngRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

    For lngCur = 1 To lngCount
        Application.StatusBar = "Lese Posteingang " & Format(lngCur / lngCount, "0%")
        With objFolder.Items(lngCur)
            If InStr(.Subject, "Akte von") > 0 Then
                ' Hier kannst du die Logik zum Speichern der E-Mail hinzufügen
            End If
        End With
    Next lngCur
End Sub

Häufige Fehler und Lösungen

  1. Problem: Keine E-Mails gefunden.

    • Lösung: Stelle sicher, dass du InStr verwendest, um den Platzhalter zu erkennen. Der Vergleich mit = funktioniert nicht für Teilstrings.
  2. Problem: Code läuft ohne Fehlermeldung, aber nichts passiert.

    • Lösung: Überprüfe den Suchtext, um sicherzustellen, dass er korrekt definiert ist. Es sollte If InStr(.Subject, "Akte von") > 0 Then verwendet werden.

Alternative Methoden

Eine weitere Methode, um mit Platzhaltern in VBA umzugehen, ist die Verwendung von Like. Hier ist ein Beispiel:

If .Subject Like "Akte von*" Then
    ' Logik für die E-Mail
End If

Diese Methode ist besonders nützlich, wenn du mehr Flexibilität bei der Verwendung von Wildcards benötigst.


Praktische Beispiele

Angenommen, du möchtest E-Mails mit verschiedenen Betreffs auflisten, die mit "Akte von" beginnen. Hier ist ein einfaches Beispiel, wie du dies umsetzen kannst:

If InStr(.Subject, "Akte von") > 0 Then
    ' Füge die E-Mail-Adresse und den Betreff zur Liste hinzu
    ActiveSheet.Cells(lngRow + 1, 1).Value = .SenderEmailAddress
    ActiveSheet.Cells(lngRow + 1, 2).Value = .Subject
    lngRow = lngRow + 1
End If

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Wenn du mit großen Datenmengen arbeitest, kannst du die Application.ScreenUpdating und Application.Calculation Eigenschaften verwenden, um die Leistung zu verbessern.
Application.ScreenUpdating = False
' Dein Code hier
Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Was sind Platzhalter in VBA? Platzhalter in VBA sind spezielle Zeichen, die verwendet werden, um eine Gruppe von Zeichen zu repräsentieren, wie z.B. das Sternchen (*) für beliebige Zeichenfolgen.

2. Wie kann ich Platzhalter in Excel VBA verwenden? Du kannst Platzhalter in VBA verwenden, indem du die Funktion InStr oder Like anwendest, um Muster in Strings zu erkennen.

3. Gibt es Unterschiede zwischen InStr und Like? Ja, InStr sucht nach Teilstrings, während Like die Verwendung von Wildcards unterstützt, um komplexere Muster zu definieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige