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

Einzelnen Wert aus Variable auslesen

Einzelnen Wert aus Variable auslesen
03.03.2019 17:57:44
reiner
Hallo Leute,
der Inhalt der Variablen:"TagVorhanden" enthält z.B. folgende Einträge: ",3,4,5,6,9,10,13,16,17,18,20,24,25,26,27,30"
Nun will ich nacheinander den Inhalt auslesen und den jeweiligen Wert (zwischen zwei Kommas, von links) an die "VariableTag" übergeben. Beim ersten Durchlauf soll lediglich eine "3" in "VariableTag" geschrieben werden. Beim nächsten Durchlauf soll dort "4" stehen, usw. bis beim letzten Durchlauf die "30" übergeben wird.
In einem anderen Projekt habe ich seinerzeit diverse Zelladressen mit Spalten- und Zeilenadressierung aus einer Variablen ausgelesen nach dem folgenden Programmcode und damit die jeweiligen Zellen markiert:
Private Sub VariableAuslesen()
Dim Markierung$, AddString As String, TeilString As Variant, VariableTag%
Markierung = Mid(TagVorhanden, 3)
AddString = Markierung
For Each TeilString In Split(AddString, ",")
'   Intersect(Range(TeilString).EntireRow, Range("A:H")).Font.Bold = True
mit vorstehender Zeile war es möglich Zelladressen auszulesen und in der Tabelle zu markieren.
Next
End Sub
Im aktuellen Projekt soll lediglich ein Zahlenwert wie oben beschrieben extrahiert und an anderer Stelle im Makro verarbeitet werden.
Meine Frage lautet: Wie muss der Programmcode umgeschrieben werden damit die "VariableTag" mit Inhalt gefüllt wird?
mfg
reiner

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einzelnen Wert aus Variable auslesen
03.03.2019 18:06:08
Hajo_Zi
Hallo Reiner,
Option Explicit
Sub Trennen()
Dim StWert As String
Dim Loi As Long
StWert = ",3,4,5,6,9,10,13,16,17,18,20,24,25,26,27,30"
StWert = Mid(StWert, 2)
For Loi = 1 To Len(StWert)
MsgBox Left(StWert, InStr(StWert, ",") - 1)
StWert = Mid(StWert, InStr(StWert, ",") + 1)
If InStr(StWert, ",") = 0 Then
MsgBox "Letzter Wert " & StWert
Exit For
End If
Next Loi
End Sub


Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
oder kürzer
03.03.2019 18:16:53
Hajo_Zi

Sub Trennen2()
Dim StWert As String
Dim Loi As Long
Dim ArrWert
StWert = ",3,4,5,6,9,10,13,16,17,18,20,24,25,26,27,30"
StWert = Mid(StWert, 2)
ArrWert = Split(StWert, ",")
For Loi = 0 To UBound(ArrWert)
MsgBox ArrWert(Loi)
Next Loi
End Sub

Gruß Hajo
AW: oder kürzer
03.03.2019 18:57:00
reiner
Hallo Hajo,
das klapptschon wunderbar,
aber eine Frage habe ich noch obwohl ich sie vorhin nicht gestellt habe;
das Problem habe ich eben erst beim Testen erkannt.
Bei deinem Vorschlag wird jeweils ein Wert nach dem anderen in der MsgBox angezeigt bis die Variable ausgelesen (leer) ist.
Bei mir wird der Programmcode nach jedem Durchlauf verlassen und danach erneut aufgerufen.
Somit müsste der gerade angezeigte Wert aus der Variablen nach dem Auslesen bewusst herausgelöscht werden.
Hast du bitte für diesen Zusatzwunsch noch einen Vorschlag?
danke
Anzeige
AW: oder kürzer
03.03.2019 18:59:14
Hajo_Zi
bei mir wird der Code nur einmal ausgeführt.
dazu kann ich nichts schreiben, was wohl daran liegt das ich nicht auf fremde Rechner schaue.
Gruß Hajo
AW: oder kürzer
03.03.2019 19:06:24
reiner
ich habe mich da wohl unklar ausgedrückt
was ich sagen wollte: nach jedem Anzeigen des Werts in der MsgBox wird bei mir der Wert in eine Variable übergeben, deine Routine verlassen und die gerade gefüllte Variable im vorhandenen Makro ausgeführt.
Danach wird deine Routine erneut aufgerufen um den 2. Wert auszulesen.. usw. bis alles ausgelesen ist.
Anzeige
AW: oder kürzer
03.03.2019 19:28:11
Hajo_Zi
keine Ahnug wqarum du meine Prozedur mehrmals ausfürst.
Ich kann Dire Leider nicht helfen, was ich ja schon mitgeteilt habe.
Ich bin dan raus.
Noch viel Erfolg.
Gruß Hajo
AW: oder kürzer
04.03.2019 10:12:39
Nepumuk
Hallo Reiner,
warum willst du die Routine verlassen? Rufe das andere Makro aus der Schleife heraus auf und übergib den Wert als Parameter. So nach dem Muster:
Sub ErstesMakro
For Each x in y
Call AnderesMakro(x)
Next
End Sub
Sub AnderesMakro(x As Variant)
MsgBox x
End Sub

Gruß
Nepumuk
Anzeige
AW: oder kürzer
04.03.2019 11:18:22
reiner
Hallo Nepumuk
gute Idee, danke
mfG
reiner
AW: oder kürzer
03.03.2019 19:49:54
onur
Hallo Hajo,
Nix für Ungut, aber solange du deine Standard-Floskel "was wohl daran liegt das ich nicht auf fremde Rechner schaue" benutzt statt klipp und klar zu sagen: "solange du nicht endlich die Datei bzw den kompletten Code postest", musst du damit rechnen, daß du nicht immer auf Anhieb verstanden wirst.
Gruß
Onur

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige