Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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

mehrere Werte einer Variable zuordnen

mehrere Werte einer Variable zuordnen
13.01.2020 15:44:24
Albert
Hallo Gemeinde, habe folgenden Code. Dabei sollen gewisse Ereignisse ausgeführt werden, bei bestimmter Anzahl an Ebenen. Aus diesen Grund habe ich die Makros aufgeteilt(unten drei Ebenen bsp. 3.3.222).
Ich habe nun folgendes Problem, dass ich noch !2! weitere Ebenen dazu programmieren muss (insgesamt 5). Dies ergibt aufgrund des Potenzierens eine extrem hohe Anzahl an Variablen. Gibt es die Möglichkeit dies evtl. mit Variablen mit mehreren Werten zu kürzen? Vielen Dank.
Bsp.:
3.34.555.66.33
2.111.22.333
333.4.333.22.2
7.555.44.555
Hier ein Teil aus dem Code
Sub ()
'******************************************drei Ebenen
For i = 3 To 1000
If Cells(i, 1) Like "#.#" _
Or Cells(i, 1) Like "#.##" _
Or Cells(i, 1) Like "#.###" _
Or Cells(i, 1) Like "##.#" _
Or Cells(i, 1) Like "##.##" _
Or Cells(i, 1) Like "##.###" _
Or Cells(i, 1) Like "###.#" _
Or Cells(i, 1) Like "###.##" _
Or Cells(i, 1) Like "###.##" Then
For m = 0 To 1000
If Cells(i + 1 + m, 1) Like "#.#" _
Or Cells(i + 1 + m, 1) Like "#.##" _
Or Cells(i + 1 + m, 1) Like "#.###" _
Or Cells(i + 1 + m, 1) Like "##.#" _
Or Cells(i + 1 + m, 1) Like "##.##" _
Or Cells(i + 1 + m, 1) Like "##.###" _
Or Cells(i + 1 + m, 1) Like "###.#" _
Or Cells(i + 1 + m, 1) Like "###.##" _
Or Cells(i + 1 + m, 1) Like "###.###" Then
Exit For
End If
If Cells(i + 1 + m, 1) Like Cells(i, 1) & ".#" _
Or Cells(i + 1 + m, 1) Like Cells(i, 1) & ".##" _
Or Cells(i + 1 + m, 1) Like Cells(i, 1) & ".###" Then
'Ereignis A
End If
Next m
If t = 1 Then
'Ereignis B
End If
End If
Next i
End Sub
Vielen Dank.
Gruß
Albert

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Beispieldatei
13.01.2020 15:49:58
Fennek
Hallo,
zeige bitte eine Beispieldatei mit allen möglichen Varianten im Ist- und Soll-Zustand.
mfg
AW: Beispieldatei
13.01.2020 16:06:19
Albert
Hallo Fennek,
https://www.herber.de/bbs/user/134366.xls
und noch mal als Information, es geht mir jetzt nur um Positionen, bei denen eine vierte bzw. fünfte Ebene vorhanden ist. Bei den anderen ist der Code schon geschrieben. Ich bräuchte sozusagen einen Code für vier Ebenen und einen für fünf. Mir würde auch ein Ansatz reichen.
Vielen Dank!
AW: Beispieldatei
13.01.2020 16:17:45
peterk
Hallo
Hast Du schon einmal an die SPLIT Funktion gedacht?
AW: sorry, unverständlich
13.01.2020 16:36:30
Fennek
Hallo Alexander,
so wie Excel das anzeigt, ist es für mich nicht nachvollziehbar. LO zeigt zwar die alten Inhalte an, das hilft aber auch nicht weiter.
Kann man die Ebene durch die Anzahl der Punkte erkennen? Also "2.333" ist die zweite Ebene, "2.333.22.44" die vierte Ebene.
Die Daten ist wohl mit Excel 2003 erstellt, weder LO noch Xl2016 zeigen ein Gruppierung von Ebenen an.
sorry
mfg
Anzeige
AW: doppelte Schleife?
13.01.2020 16:38:46
Fennek
In der Ausgangsfrage wird ein VBA-Code mit 2 geschachtelten Schleifen 1..1000 gezeigt. Das ist zwar auch nicht nachvollziehbar, muss aber in jedem Fall besser gehen.
AW: doppelte Schleife?
13.01.2020 16:46:31
Albert
das zählen der Punkte ist eine Option. ich weiß gerade nur nicht wie. Aber google hilft mir da bestimmt ;)
danke für die Idee!!
und wegen der geschachtelten Schleife geht es nicht anders. Weil ich einerseits die Obere Ebene ansteuern möchte und anschließend die dazugehörigen Positionen.
Gruß
AW: doppelte Schleife?
13.01.2020 16:55:56
UweD
Hallo
so in Etwa

TText = "123.456.001"
Anz = Len(TText) - Len(Replace(TText, ".", ""))

LG UweD
Anzeige
AW: doppelte Schleife?
13.01.2020 17:02:34
Albert
Hallo UweD
ja das war es... perfekt!!!
Danke für die Rückmeldung. (owT)
14.01.2020 09:48:45
UweD
AW: doppelte Schleife?
13.01.2020 17:13:22
Albert
so sieht jetzt der Code aus:
Sub f()
k = 3
For h = 1 To 5
For i = 3 To 1000
Anz = Len(Cells(i, 1)) - Len(Replace(Cells(i, 1), ".", ""))
If Anz = h Then
Anz = 0
For m = 0 To 1000
Anz = Len(Cells(i + 1 + m, 1)) - Len(Replace(Cells(i + 1 + m, 1), ".", ""))
If Anz = h Then
Exit For
End If
If Cells(i + 1 + m, 1) Like Cells(i, 1) & ".#" _
Or Cells(i + 1 + m, 1) Like Cells(i, 1) & ".##" _
Or Cells(i + 1 + m, 1) Like Cells(i, 1) & ".###" Then
Next m
If t = 1 Then
End If
End If
Next i
Next h
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige