Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1516to1520
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ergebnisse von Funktionen in Makro verwenden

Ergebnisse von Funktionen in Makro verwenden
16.10.2016 11:23:07
Funktionen
Hallo!
Habe mit mittels google 2 vba funktionen gebastelt, die das ergebnis in einer messagebox ausgeben
Ich brauch jetzt aus diesen funktionen in einem makro eine string zum weiterarbeiten.
und zwar: liefern beide funktionen kein ergebnis oder beide liefern irgend ein ergebnis, dann muss ich das makro über fehlermeldungen abbrechen, liefert nur eine funktion ein ergebnis, dann brauche ich diesen wert als string zum weiterarbeiten.
bin nach stundenlangem googeln nicht draufgekommen wie ich das machen könnte....
Danke für jede Hilfe!!
Option Explicit

Public Function getprojnr()
Dim objRegEx As Object
Dim mymatch As Object
Dim Betreff As String
Dim Betreffkurz As String
Dim SpeicherProjNr As String
Betreff = Range("Betreff").Value
Betreffkurz = Left(Betreff, 16)
'// Objekt für reguläre Ausdrücke erzeugen
Set objRegEx = CreateObject("vbscript.regexp")
With objRegEx
.Global = True
.IgnoreCase = True
'// Suchmuster angeben
.Pattern = "\d{2}-\d{4}"
'// Zeichenkette durchsuchen
Set mymatch = objRegEx.Execute(Betreffkurz)
'// Wenn es einen Treffer gab, den ersten Treffer ausgeben
If mymatch.Count > 0 Then MsgBox mymatch.Item(0)
End With
End Function


Public Function getAprojnr()
Dim objRegEx As Object
Dim mymatch As Object
Dim Betreff As String
Dim Betreffkurz As String
Dim SpeicherProjNr As String
Betreff = Range("Betreff").Value
Betreffkurz = Left(Betreff, 16)
'// Objekt für reguläre Ausdrücke erzeugen
Set objRegEx = CreateObject("vbscript.regexp")
With objRegEx
.Global = True
.IgnoreCase = True
'// Suchmuster angeben
.Pattern = "\d{2}-A\d{3}"
'// Zeichenkette durchsuchen
Set mymatch = objRegEx.Execute(Betreffkurz)
'// Wenn es einen Treffer gab, den ersten Treffer ausgeben
If mymatch.Count > 0 Then MsgBox mymatch.Item(0)
End With
End Function

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 11:28:05
Funktionen
ich würde mal vermuten, beide Funktionen liefern kein Ergebnis. Da
getAprojnr nichts zugewiesen wird.
Bei der anderen Funktion ist es auch so.

AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 11:35:13
Funktionen
Hallo,
Versuch mal so:
.
If mymatch.Count > 0 Then getprojnr=mymatch.Item(0)
.
und
.
If mymatch.Count > 0 Then getAprojnr=mymatch.Item(0)

ransi
AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 11:35:33
Funktionen
Doch, aber das ergebnis steht in der Messagebox
MsgBox mymatch.Item(0)
Kenn mich leider mit funktionen so gut wie gar nicht aus...
Anzeige
AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 11:37:34
Funktionen
getAprojnr =mymatch.Item(0)
dann liefert die Funktion auch ein Ergebnis.
Gruß Hajo
AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 11:46:59
Funktionen
Super danke, soweit verstanden, jetzt brächt ich nur noch eine kleine unterstützung für das makro selbst wie vorhin schon beschrieben
AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 12:02:22
Funktionen
dazu kann ich nichts schreiben, da nicht verstanden. Was wohl auch daran liegt das ich die Datei nicht sehe.
Keine Ahnung was die Funktion macht und was ausgegeben wird.
Gruß Hajo
Anzeige
AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 12:21:27
Funktionen
Hallo Roland,
ICh denke ich habs verstanden.
Kann aber genausowenig wie Hajo testen.
Versuch mal dies anzupassen:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub Dein_Makro()
    Dim Funktion1 As String
    Dim Funktion2 As String
    Dim diesen_wert_als_string_zum_weiterarbeiten As String
    Funktion1 = getprojnr
    Funktion2 = getAprojnr
    
    If Funktion1 = "" And Funktion2 = "" Then 'liefern beide funktionen kein ergebnis
        MsgBox "Fehlermeldung" 'dann muss ich das makro über fehlermeldungen abbrechen
        Exit Sub
    End If
    
    If Funktion1 <> "" And Funktion2 <> "" Then 'oder beide liefern irgend ein ergebnis
        MsgBox "Fehlermeldung" 'dann muss ich das makro über fehlermeldungen abbrechen
        Exit Sub
    End If
    
    diesen_wert_als_string_zum_weiterarbeiten = Funktion1 & Funktion2 'liefert nur eine funktion ein ergebnis...
    MsgBox diesen_wert_als_string_zum_weiterarbeiten
    
End Sub

Public Function getprojnr()
    Dim objRegEx As Object
    Dim mymatch As Object
    Dim Betreff As String
    Dim Betreffkurz As String
    Dim SpeicherProjNr As String
    '###
    getprojnr = ""
    '###
    Betreff = Range("Betreff").Value
    Betreffkurz = Left(Betreff, 16)
    '// Objekt für reguläre Ausdrücke erzeugen
    Set objRegEx = CreateObject("vbscript.regexp")
    With objRegEx
        .Global = True
        .IgnoreCase = True
        '// Suchmuster angeben
        .Pattern = "\d{2}-\d{4}"
        '// Zeichenkette durchsuchen
        Set mymatch = objRegEx.Execute(Betreffkurz)
        '// Wenn es einen Treffer gab, den ersten Treffer ausgeben
        If mymatch.Count > 0 Then getprojnr = mymatch.Item(0)
    End With
End Function



Public Function getAprojnr()
    Dim objRegEx As Object
    Dim mymatch As Object
    Dim Betreff As String
    Dim Betreffkurz As String
    Dim SpeicherProjNr As String
    '###
    getAprojnr = ""
    '###
    Betreff = Range("Betreff").Value
    Betreffkurz = Left(Betreff, 16)
    '// Objekt für reguläre Ausdrücke erzeugen
    Set objRegEx = CreateObject("vbscript.regexp")
    With objRegEx
        .Global = True
        .IgnoreCase = True
        '// Suchmuster angeben
        .Pattern = "\d{2}-A\d{3}"
        '// Zeichenkette durchsuchen
        Set mymatch = objRegEx.Execute(Betreffkurz)
        '// Wenn es einen Treffer gab, den ersten Treffer ausgeben
        If mymatch.Count > 0 Then getAprojnr = mymatch.Item(0)
    End With
End Function


ransi
Anzeige
AW: Ergebnisse von Funktionen in Makro verwenden
16.10.2016 12:37:36
Funktionen
Ja danke, genau das habe ich gesucht!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige