MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 15.05.2019, 15:21   #1
padre2000
Neuer Benutzer
Neuer Benutzer
Standard VBA - Select Case mit Zellen aus Tabellenblatt, für ausgewählte E-mails

Hallo lieben Gurus,

habe mir so ein Makro gebastelt, möchte abe dass "Case " und "strPath"
aus eine Excel Tabelle ausgelesen werden (Prüfung für mehrere e-mails und entsprechenden Pfad ). Hat jemand eine Idee ?


Sub save_attachments_1()

Dim objMail As Outlook.MailItem

Dim intAnlagen As Integer, i As Integer

Dim strPath As String

For Each objMail In Outlook.ActiveExplorer.Selection
With objMail

Select Case objMail.SenderEmailAddress
Case "coole.sache@home.com"
strPath = "D:Temp"

Case Else
End Select


intAnlagen = .Attachments.Count
If intAnlagen > 0 Then
For i = 1 To intAnlagen
'Anlagen im vordefinierten Verzeichnis sichern

.Attachments.Item(i).SaveAsFile strPath & "" & Format(Now, "yyyymmdd_hhnnss") & "_" & .Attachments.Item(i).Filename

Next i
Else
End If


End With
Next

End Sub

Geändert von padre2000 (15.05.2019 um 15:28 Uhr).
padre2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 15:30   #2
cysu11
MOF User
MOF User
Standard

Hi Padre,

ungetestet, probiere mal so:

Code:

Case Sheets("Tabelle1").Range("A1").Value
strPath = Sheets("Tabelle1").Range("A1").Value
LG
Alexandra
cysu11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 07:56   #3
padre2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard Problem mit strPath

Hallo cysu11 , habe getestet , ich weiß nicht voran es liegt aber so funktioniert es nicht . Müssen die Zellen eine besondere Formatierung haben ? Oder soll das aus der Zelle irgendwie besonders ausgelesen werden ?
padre2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 08:09   #4
jack_D
MOF Koryphäe
MOF Koryphäe
Standard

Moin Padre,

Code:

Sub PraeseNeu(ByVal control As IRibbonControl)
Dim FileName As String

FileName = "Muster.potx"
Select Case getZahl(LiesWindowsBS)
Case Is = 7
    strbeginn = Right(Environ$(11), Len(Environ$(11)) - InStr(Environ$(11), "="))
    STRENDE = "AppDataRoamingMicrosoftTemplates"
Case Is = 10
    strbeginn = "C:" & Right(Environ$(13), Len(Environ$(13)) - InStr(Environ$(13), "="))
    STRENDE = "DocumentsBenutzerdefinierte Office-Vorlagen"
End Select



Presentations.Open strbeginn & STRENDE & FileName, untitled:=msoCTrue

End Sub
Weil ich es grad in ppt hatte..

Grüße JAck
jack_D ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.05.2019, 08:09   #5
Mase
MOF Koryphäe
MOF Koryphäe
Standard

Hi,

bitte zeig mal deinen kompletten Code:

__________________

gruß
Marco

Feedback erwünscht.
Wie ? -> Verwende hierzu das mittlere Symbol links.
Mase ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.05.2019, 10:44   #6
padre2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard an meinen Beispiel anpassen

Hallo Jack , ich ahne ungefähr was du mir damit sagen möchtest.
Jetzt ist die Frage wie kann ich das an meinen Beispiel anpassen wenn ich z.B. :
Die Spalte A in dem Tabellenblatt "Tabelle1" prüfen möchte um die Spalte C dann wiederzubekommen.

Gruß,

Andreas
Angehängte Grafiken
Dateityp: png 2019-05-17 11_42_51-outlook_vba_V2 - Excel.png (9,5 KB, 4x aufgerufen)
padre2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.06.2019, 18:08   #7
padre2000
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hi Jack , zeig bitte den Code Komplett , ich leider nicht ersehen was "getZahl " ist . ?!!!
padre2000 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 04.06.2019, 10:05   #8
jack_D
MOF Koryphäe
MOF Koryphäe
Standard

Moin Padre,

sorry hat den Thread leider aus den Augen verloren ....

Du brauchst tatsächlich nicht nur getzahl() du brauchst auch lieswindowsbs()

Code:

' Liest Zahlen aus einem String heraus
' matchNr gibt an, welcher Treffer ausgelesen werden soll
Function getZahl(ByVal myStr As String, Optional ByVal matchNr As Integer = 1)
    Dim regEx As Object
    Dim Matches As Object
    
    ' <1 ergibt keinen Sinn, da wird der erste Treffer genommen
    If matchNr < 1 Then matchNr = 1
    
    Set regEx = CreateObject("Vbscript.Regexp")
    
    With regEx
        ' Einfach nach Zahl suchen
        .Pattern = "[0-9]+"
        ' Explicit nach Leerzeichen + Zahl suchen
        ' .Pattern = " [0-9]+"
        .Global = True
        Set Matches = .Execute(myStr)
    End With
    
    With Matches
        ' Wenn nichts gefunden oder nicht so viel gefunden wie gewünscht
        ' Leerstring wird zurückgegeben
        If .Count = 0 Or .Count < matchNr Then
            getZahl = ""
        Else
            ' Das LTrim ist nur nötig, wenn nach Leerzeichen+Zahl gesucht wird
            ' beim anderen schadet es aber auch nicht
            getZahl = LTrim(.Item(matchNr - 1))
        End If
    End With
    
End Function



Function LiesWindowsBS() As String
Dim oWMI As Object
  Dim oSystem As Object
  Dim SQL As String
  Dim str$, vers$
 
  ' Abfrage
  SQL = "SELECT * FROM Win32_OperatingSystem"
 
  ' WMI-Objekt erstellen und Abfrage ausführen
  Set oWMI = GetObject("winmgmts:").ExecQuery(SQL)
 
  ' Ergebnisliste durchlaufen und Infos ausgeben
  For Each oSystem In oWMI
    str = str & "System:" & vbTab & oSystem.Caption
    vers = oSystem.Caption
      ' Versionsnummer
     str = str & vbCrLf & "Versionsnummer: " & vbTab & oSystem.Version
 
      ' ServicePack
      str = str & vbCrLf & "Servicepack;" & vbTab & oSystem.CSDVersion
 
      ' UserName
      str = str & vbCrLf & "Username: " & vbTab & oSystem.RegisteredUser
 
      ' Firma
      str = str & vbCrLf & "Firma:" & vbTab & oSystem.Organization
 
      ' Seriennummer
      str = str & vbCrLf & "Seriennummer:" & vbTab & oSystem.SerialNumber

      ' Systemverzeichnis
      str = str & vbCrLf & "System Verzeichnis: " & oSystem.SystemDirectory
 
      ' Windowsverzeichnis
      str = str & vbCrLf & "Windows Verzeichnis: " & oSystem.WindowsDirectory
 
      ' Arbeitsspeicher
      str = str & vbCrLf & "Arbeitsspeicher: " & oSystem.TotalVisibleMemorySize & " KByte"
  Next
'MsgBox str
'wir brauchen aber nur die Windowsversion, deshalb:
LiesWindowsBS = vers
End Function

Grüße
jack_D ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:53 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.