Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1160to1164
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

Text und Variablen verknüpft aus externer Quelle?

Text und Variablen verknüpft aus externer Quelle?
Sven
Hallo Herber-Gemeinde,
gibt es eine Option um Textblöcke mit Variablen in der Art
"Ich bin ein String und habe " & Variable1 &" Zeichen"

aus einer externen Quelle in ein VBA Script zur Laufzeit einzulesen - und zwar so, dass die Variable als solche erkannt wird?
Ein Versuch so etwas in einer Zelle abzulegen und dann von dort einzulesen endet in exakt obiger Ausgabe - die Variable wird nicht erkannt.
Es geht um die Generierung eines Email-Body den ich gerne mehrsprachig hätte und es wäre wenig schön, diesen mehrfach zu hinterlegen und aus einzelnen Fragmenten zusammen zu setzen.
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 11:21:05
Oberschlumpf
Hi Sven
Um was für eine ext. Quelle handelt es sich denn?
Ist es vllt möglich, die Variable der Quelle mit einer DOS-Batch-Datei aus Excel heraus ins Excel reinzubekommen?
Ciao
Thorsten
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 11:28:09
Sven
Hallo und vielen Dank für die schnelle Reaktion. Eigentlich wäre es mir am liebsten wenn das direkt aus einem Arbeitsblatt innerhalb der Datei gehen würde - aber eine Textdatei wäre auch möglich.
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 11:31:53
Oberschlumpf
Hmm...
Hi
Und um welche ext. Quelle handelt es sich nun?
Das mit der Batch-Datei war nur ne Idee. Ob es überhaupt machbar ist, weiß ich noch gar nicht.
Und sollte die ext. Quelle ein Programm sein, welches auf meinem PC gar nicht vorhanden ist, dann werde ich wohl auch gar nicht helfen können.
Ciao
Thorsten
Anzeige
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 11:36:05
Sven
Wie gesagt, diese Quelle ist noch frei definierbar.
Ich habe, zur Verdeutlichung, einen Emailtext in den ich ca 20 Variablen einbinde.
Um das Ganze mehrsprachig gestalten zu können, möchte ich die Texte eben nicht 'hart' im Quellcode einbauen sondern irgendwo ablegen und vom Code einlesen lassen - abhängig von der gewählten Sprache.
Dabei stellt sich eben das Problem, dass ich eine Verknüpfung aus String und Variable, so wie im ersten Posting, auf diese Weise nicht realisieren kann weil das dann als kompletter String interpretiert wird.
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 11:50:49
Oberschlumpf
auch du darfst mich ruhig in jedem Beitrag begrüßen...
Hi Sven
Und so lange ich nicht weiß, um was für eine Quelle es sich handelt, weiß ich leider auch nicht, wo ich mit einer Lösung noch ansetzen kann/soll.
Meinst du mit ext. Quelle einfach nur eine andere Excel-Datei oder ein ganz anderes Programm?
Wenn du das selbst noch nicht weißt, welche ext. Quellen (was immer das auch ist) kommen denn in Frage?
Und ne Bsp-Datei wäre auch schön - denn weder ich noch irgdwer anders weiss, wie deine Datei mit den ganzen Variablen aufgebaut ist.
Ciao
Thorsten
Anzeige
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 12:41:39
Sven
Hallo Thorsten *grüß*
es wäre vermutlich etwas kompliziert hier eine komplette Beispieldatei anzuhängen, sie wäre eh nicht lauffähig wenn sie nicht aus ihrem angestammten Ordner heraus gestartet würde.
Hier einfach mal ein kurze Codebeispiel:
Sub beispiel
Dim ichbintext1, ichbintext2 as string
Dim ichbinvar as integer
ichbintext = "Ich bin ein Text und habe "
ichbintext2 = " Zeichen"
ichbinvar = 32
Msgbox = "ichbintext1 & ichbinvar & ichbintext2
End sub

So weit in etwa das Prinzip das ich derzeit verwende.
Nun würde ich aber gerne etwas in der Art machen:
MsgBox Sheets(1).Cells(1,1).Value

wobei in Zelle 1,1 dann steht:
Ich bin ein Text und habe & ichbinvar & Zeichen

Das funktioniert aber nicht da in dem fall die Variable nicht als solche erkannt wird.
Natürlich könnte ich
MsgBox Sheets(1).Cells(1,1).Value &ichbinvar &Sheets(1).Cells(1,2).Value

machen und in Zelle 1,1 eben den ersten String und in Zelle 1,2 den zweiten string einsetzen - nur ist das bei einem längeren Text mit ~20 Variablen nicht eben komfortabel.
Und jetzt kommt erneut die eigentlich einfache Frage:
Geht das in irgendeiner anderen Form?
Anzeige
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 12:00:39
fcs
Hallo Sven,
das funktioniert dann evtl. durch eine entsprechende Textanalyse, mit der der Text und die Variable von einander getrennt werden. Das Makro orientiert sich dabei an den im Text enthaltenen &-Zeichen.
Nachfolgend ein Testbeispiel.
Test ist hier die Variable, in die der Text aus der externen Quelle eingelesen wird.
Ob das so dann für deine Gesamtprozedur zum Ziel führt?
Gruß
Franz
Sub Mailtext()
Dim Test
Dim Variable1, Variable2, Variable3
Dim Ergebnis, s1 As String, s2 As String, sVariable As String
'Eingelesener Text aus externer Quelle
Test = "Ich bin ein String und habe "" & Variable1 & "" Zeichen" 'testzeile
Variable1 = 10
'Entweder - Name der Variablen im Text ist bekannt
If IsolateVariable_1(sVariable:="Variable1", sText:=Test, sText1:=s1, sText2:=s2) = True Then
Ergebnis = s1 & Variable1 & s2
Else
Ergebnis = Test
End If
MsgBox Ergebnis
'oder - Name der Variablen im Text ist einer von mehreren möglichen
Variable1 = 10
Variable2 = 20
Variable3 = 30
sVariable = IsolateVariable_2(sText:=Test, sText1:=s1, sText2:=s2)
Select Case sVariable
Case "Variable1"
Ergebnis = s1 & Variable1 & s2
Case "Variable2"
Ergebnis = s1 & Variable2 & s2
Case "Variable3"
Ergebnis = s1 & Variable3 & s2
Case "Keine Variable"
Ergebnis = "Keine Variable in " & Test
Case Else
Ergebnis = "Für """ & sVariable & """ ist noch keine Case-Zeile definiert"
End Select
MsgBox Ergebnis
End Sub
Function IsolateVariable_1(sVariable As String, ByVal sText As String, sText1, sText2 As String) _
As Boolean
'Bei vorgegebenem Variablen-Namen Text links und rechts der Variablen zurückgeben
If InStr(1, sText, sVariable) > 0 Then
sText1 = Left(sText, InStr(1, sText, "&") - 1)
sText2 = Mid(sText, InStr(Len(sText1) + 1 + Len(sVariable), sText, "&") + 1)
sText1 = Trim(sText1)
sText1 = Left(sText1, Len(sText1) - 1)
sText2 = Trim(sText2)
sText2 = Mid(sText2, 2)
IsolateVariable_1 = True
Else
IsolateVariable_1 = False
End If
End Function
Function IsolateVariable_2(ByVal sText As String, sText1 As String, sText2 As String) As String
'Namen der Variablen und Text links und rechts der Variablen zurückgeben
If Len(sText) - Len(Replace(sText, "&", "")) >= 2 Then
sText1 = Left(sText, InStr(1, sText, "&") - 1)
IsolateVariable_2 = Mid(sText, Len(sText1) + 2)
IsolateVariable_2 = Mid(IsolateVariable_2, 1, InStr(1, IsolateVariable_2, "&") - 1)
IsolateVariable_2 = Trim(IsolateVariable_2)
sText2 = Mid(sText, InStr(Len(sText1) + 1 + Len(IsolateVariable_2), sText, "&") + 1)
sText1 = Trim(sText1)
sText1 = Left(sText1, Len(sText1) - 1)
sText2 = Trim(sText2)
sText2 = Mid(sText2, 2)
Else
IsolateVariable_2 = "keine Variable"
End If
End Function

Anzeige
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 12:59:24
Sven
Hallo Franz,
das sieht schon sehr nett aus, ich fürchte nur, dass dies hier:
    .Subject = "Ein Alert mit der ID: " & qi_id & " wurde von " & Erfasstvon & " geloggt" ' _
Betreffzeile
.body = "Hallo " & mailadresse & Chr(10) & "Bitte diesen Alert bearbeiten (ID: " & qi_id & " _
)" & Chr(10) & Chr(13) & _
"Kategorieauswahl: " & vorkat.Value & " " & vorkat2.Value & Chr(10) & Chr(13) & " _
Artikelnummer: " _
& Artikelnummer.Value & Chr(10) & "Produkttyp: " & Produkttyp.Caption & Chr(10) & " _
Artikelbezeichnung: " _
& Artikeltext.Value & Chr(10) & "Charge: " & Charge.Value & Chr(10) & "Betroffene Menge: "  _
_
& Betrmenge.Value & " " & Einheit.Value & Chr(10) & "Auftragsmenge: " & Auftragsmenge.Value  _
& Chr(10) _
& "Abteilung: " & Abteilung.Value & Chr(10) & "Kommentar: " & Kommentar2.Value & Chr(10)
If foto.Value = True Then
.body = .body & "Es sind Anhänge zum Alert vorhanden. Diese befinden sich im Ordner:  _
file:///" & ort & "infos%20zu%20alerts\0002%20fy%2009-10\" & qi_id & Chr(10) & Chr(10)
Else
.body = .body & "Es sind noch keine Anhänge zum Alert vorhanden." & Chr(10) & Chr(10)
End If
.body = .body & "Hier der Link zur Datenbank: file:///l:\alert-daten\QI_Bearbeitung.xls" &  _
Chr(10) & Chr(10) _
& "Sollte ihr Name nur in CC stehen so ist diese Benachrichtigung nur informativ" 'Sendetext

den Rahmen wohl ziemlich sprengen wird... Das ist der komplette einzulesende Text inkl. aller Variablen.
Anzeige
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 15:28:12
fcs
Hallo Sven,
das wird in der Tat schon sehr komplex mit meinem Vorschlag, da hier ja auch noch jede Menge Ausnahmen für die Zeilenschaltungen berücksichtigt werden müssten.
Wenn du die E-Mail-Texte abhängig von der Sprache des Empfängers unterschiedlich gestalten willst, dann solltest du die Variablen Texte in einer Exceltabelle speichern, am besten in der Datei, die du für den E-Mail-Versand nutzt, ist aber kein muss. Jede Sprache in einer eigenen Spalte.
Diese Daten liest du in ein Array ein und verwendest dann die Array-Werte um die Mailtexte zu generieren.
Hier ein Beispiel mit Deutsch und Englisch.
https://www.herber.de/bbs/user/69961.xls
Gruß
Franz
Anzeige
AW: Text und Variablen verknüpft aus externer Quelle?
08.06.2010 15:37:21
Sven
Super! Vielen, vielen Dank!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige