Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1456to1460
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

Code vereinfachen

Code vereinfachen
12.11.2015 18:50:49
Fabi
Hallo,
Vielleicht kann mir ja jemand helfen.
Das Ganze ist nur ein Ausschnitt aus meiner Original Datei
Ich habe eine UserForm mit 3 Optionbutton.
Wenn ich ein Button auswähle, dann schreibt er den Namen (oder Text) in die Zelle wo ich gerade bin – wenn ich noch einmal auswähle dann schreibt er den nächste Namen in die Zelle.
Das funktioniert alles soweit ganz gut, wie ich es mir gedacht habe.
Meine Frage an die Excel-Profis:
Kann man den Code den ich dafür verwende auch kleiner schreiben – also irgendwie vereinfachen ?
mir erscheint das ganze als zu umständlich so wie ich dies geschrieben habe.
Datei:
https://www.herber.de/bbs/user/101475.xlsm
Danke an alle
Fabi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code vereinfachen
12.11.2015 19:02:46
Daniel
Hi
ist die Reihenfolge wichtig oder reicht es, wenn der nächste Text angehängt wird?
Gruß Daniel

AW: Code vereinfachen
12.11.2015 19:10:50
Fabi
Hey Daniel,
die Reihenfolge muss so eingehalten werden.
grüße Fabi

AW: Code vereinfachen
12.11.2015 19:24:49
Daniel
Hi
1. entferne die Optionbuttons und ersetze sie durch eine Single-Select-Listbox.
2. befüllte die Listbox mit den Texten im Activate-Event:
Private Sub UserForm_Activate()
With ListBox1
.AddItem "1A"
.AddItem "2A"
.AddItem "3A"
End With
3. verwende diesen Code für den Button:
Private Sub CommandButton1_Click()
Dim i As Long
Dim strZelle As String
Dim strErg As String
If ListBox1.ListIndex > -1 Then
strZelle = ActiveCell.Value
For i = 0 To ListBox1.ListCount - 1
If ListBox1.ListIndex = i Or InStr(strZelle, ListBox1.List(i))  0 Then
strErg = strErg & vbLf & ListBox1.List(i)
End If
Next
If strErg  "" Then ActiveCell.Value = Mid(strErg, 2)
End If
Unload Me
End Sub
Gruß Daniel

Anzeige
AW: Code vereinfachen
12.11.2015 19:53:39
Fabi
Hey Daniel,
danke dir -
so ist es wirklich einfacher bzw. leichter
grüße
Fabi

AW: Code vereinfachen
12.11.2015 20:28:36
Fabi
Hey
Gibt es auch eine Möglichkeit mit OptionButtons ?
Grüße fabi

AW: Code vereinfachen
12.11.2015 21:59:11
Daniel
H
Ja geht auch, aber warum?
Es sollte dich einfach werden.
Ansonsten
Statt dieser schleife:
 For i = 0 To ListBox1.ListCount - 1
If ListBox1.ListIndex = i Or InStr(strZelle, ListBox1.List(i))  0 Then
strErg = strErg & vbLf & ListBox1.List(i)
End If
Next
Für jeden Optionbutton folgendes
If Optionbutton1 = Or InStr(strZelle, OptionButton1.Caption)  0 Then
strErg = strErg & vbLf & Optionbutton1.Caption
Gruss Daniel

Anzeige
AW: Code vereinfachen
13.11.2015 17:27:16
Fabi
Hey Daniel,
Danke dir -- so gefällt es mir besser
Danke
Fabi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige