VBA: Aufzählung mit Komma und "und"

Moderator: ModerationP

VBA: Aufzählung mit Komma und "und"

Beitragvon wasi64 » 20. Sep 2021, 17:07

Hallo zusammen,

ich habe eine Userform in der ich 3 Checkboxen habe.
chk_1, chk_2 und chk_3
Dahinter ist jeweils ein Text zugeordnet.
Je nachdem was der Anwender auswählt, hätte ich gerne eine Textausgabe nach dem Muster:

Text1 und Text2 (wenn 1 und 2 gewählt wurde)

oderText1, Text2 und Text3 (wenn alle 3 gewählt wurden)

Also im Prinzip alle Werte >1 und < Gesamtanzahl sollen mit einem Komma und vor dem letzten mit einem UND ergänzt werden.

Irgendwie muss das wohl mit einer Schleife oder einem Index machbar sein, aber ich bin leider noch nicht drauf gekommen.

Habt ihr eine Idee?

Vielen Dank!
wasi64
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 29. Jun 2005, 15:27

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon Gast » 20. Sep 2021, 17:28

Hallo,

mittlerweile solltest du mitbekommen haben, daß X-Posting nicht gerne gesehen wird, zumindest solltest du es aber kennzeichnen.
https://www.ms-office-forum.net/forum/showthread.php?p=2045719#post2045719
Gast
 

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon 1Matthias » 20. Sep 2021, 19:14

Moin!
Evtl. geht es auch eleganter aber das wäre bspw. eine Lösung. Bei mehreren Boxen wäre es sinnvoller, dass in eine Schleife zu packen. Dann müsst man aber noch ein wenig anpassen. Du müsste noch bei den Teilen, wo in auswahl der Checkboxname eingetragen wird, deinen Text hinterlegen.
In Auswahl wird an Stelle 0 die Anzahl der geklickten Boxen gespeichert und in den Indizes dann der zugehörige Wert. Dabei ist aber der Index nicht unbedingt gleich der Boxnummer sondern entspricht der Anzahl der bisher angeklickten.

Code: Alles auswählen
Dim auswahl(0 To 3)
Dim ausgabe
Dim i As Long

auswahl(0) = 0

'Schleife oder so durchlaufen
If Me.CheckBox1 Then
    auswahl(0) = auswahl(0) + 1
    auswahl(auswahl(0)) = Me.CheckBox1.Name
End If

If Me.CheckBox2 Then
    auswahl(0) = auswahl(0) + 1
    auswahl(auswahl(0)) = Me.CheckBox2.Name
End If

If Me.CheckBox3 Then
    auswahl(0) = auswahl(0) + 1
    auswahl(auswahl(0)) = Me.CheckBox3.Name
End If


'jetzt die Ausgabe
If auswahl(0) = 0 Or auswahl(0) = 1 Then
    MsgBox auswahl(1)
Else
    For i = 1 To auswahl(0) - 1
        ausgabe = ausgabe & auswahl(i) & ","
    Next
   
    ausgabe = Left(ausgabe, Len(ausgabe) - 1)
   
    ausgabe = ausgabe & " und " & auswahl(auswahl(0))
   
    MsgBox ausgabe
   
End If


VG
1Matthias
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 966
Registriert: 15. Aug 2017, 18:36

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon wasi64 » 21. Sep 2021, 08:06

Hallo,

sorry für das X-Posting.

Ich wusste ehrlich gesagt nicht, dass die beiden Foren zusammengehören.

Gruß
wasi
wasi64
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 29. Jun 2005, 15:27

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon DerHoepp » 21. Sep 2021, 09:28

Moinsen,

wasi64 hat geschrieben:Ich wusste ehrlich gesagt nicht, dass die beiden Foren zusammengehören.

dann hast du die Kritik an Crossposting auch noch nicht verstanden. Es geht darum, dass du die Gutmütigkeit mehrerer Menschen unabhängig von einander, ausnutzt um dir einen persönlichen Vorteil zu verschaffen. Eine/einer wird dabei kostenlos und unfreiwillig für die Tonne gearbeitet haben. Der Diskussionsstand zur Anfrage bleibt gleichzeitig unbekannt, relevante Entwicklungen im jeweils anderen Thread werden nicht erkannt. Kurz und gut: Anfragen erwischter Crossposter werden künftig häufig (m. E. zu Recht) ignoriert. Wenn du eine schnelle Lösung benötigst, beauftrage einfach mehrere Programmierer gleichzeitig, die du entsprechend entlohnst.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9738
Registriert: 14. Mai 2013, 11:08

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon wasi64 » 21. Sep 2021, 12:07

Hallo,

ich dachte immer der Sinn der Foren besteht darin, Informationen, Erfahrungen und Tipps auszutauschen bzw. anzufragen.

Die Anmerkung ich würde andere (oder wie genannt: gutmütige) Forenteilnehmer ausnutzen und mir gar einen persönlichen Vorteil verschaffen, finde ich ehrlich gesagt unangebracht. Ich habe lediglich um Rat gefragt und weder etwas gefordert, noch jemanden mit der Lösung beauftragt oder kostenlos bestellt.

Gruß
wasi
wasi64
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 29. Jun 2005, 15:27

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon HKindler » 21. Sep 2021, 12:32

Hi wasi,

da du scheinbar immer noch nicht verstanden hast, um was geht und warum es hier angekreidet wird, möchte ich dich auf eine schöne Zusammenfassung hinweisen, die einer der Helfer dieses und anderer Excel-Foren auf seiner Web-Seite erstellt hat: http://www.excel-ist-sexy.de/crossposting/

Wenn du es dann immer noch nicht kapierst, dann fühle dich weiter beleidigt, aber erwarte keine Hilfe.
Gruß,
Helmut

----------------------------
Windows 10 Enterprise (64 Bit) / Office 365 ProPlus (32 Bit)
Benutzeravatar
HKindler
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6324
Registriert: 04. Jul 2013, 09:02
Wohnort: Schwarzwald

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon wasi64 » 21. Sep 2021, 12:54

Hallo Helmut,

vielen Dank für die Informationen. Ich habs jetzt kapiert und wollte mit meinem letzten Post lediglich zum Ausdruck bringen, dass ich das mit dem Crossposting nicht wusste und dass es von mir keine böse Absicht war sondern meine Unwissenheit.

Ich bin dankbar für jede Hilfe und entschuldige mich hiermit ausdrücklich.

Vielen Dank auch für den Tip von 1Matthias. Das werde ich zeitnah versuchen umzusetzen.

Gruß
wasi
wasi64
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 29. Jun 2005, 15:27

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon DerHoepp » 21. Sep 2021, 13:01

Moin auch noch mal von mir,

ich wollte dir mit meinem Beitrag nicht vor den Kopf stoßen, sondern dir etwas zugespitzt darstellen, was mich (und wahrscheinlich einige andere auch) an Crossposting so stört.

Viele Grüße
derHöpp
DerHoepp
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9738
Registriert: 14. Mai 2013, 11:08

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon wasi64 » 21. Sep 2021, 13:45

Hallo zusammen,

dann ist ja alles soweit geklärt :-)

Gruß
wasi
wasi64
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 29. Jun 2005, 15:27

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon theoS » 25. Sep 2021, 20:45

Hier hast du eine Möglichkeit, die checkboxen zu finden, indem du denen "Tags" verpasst.

Code: Alles auswählen
Private Sub butt_1_Click()
Dim dd1 As Document: Set dd1 = ActiveDocument
Dim ctrL As Control, lngC As Long, strC As String
lngC = 0: strC = ""
For i = 0 To UFO.Controls.Count - 1  'UFO ist die Userform
Set ctrL = UFO.Controls(i)
If ctrL.Tag = "cb" Then

If ctrL.Value = True Then
Debug.Print UFO.Controls(i).Caption
strC = strC & UFO.Controls(i).Caption & ", "
lngC = lngC + 1
End If
Debug.Print ctrL.Value
End If

Next i
If lngC >= 1 Then
strC = Left(strC, Len(strC) - 2)
Debug.Print strC
End If
If lngC >= 2 Then
strC = Left(strC, InStrRev(strC, ",") - 1) & " und " & Right(strC, Len(strC) - InStrRev(strC, ","))
Debug.Print strC
MsgBox strC
End If

Me.Hide


End Sub
theo s.
Benutzeravatar
theoS
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 5725
Registriert: 19. Apr 2008, 00:14

Re: VBA: Aufzählung mit Komma und "und"

Beitragvon wasi64 » 28. Sep 2021, 15:58

Hallo theoS,

vielen Dank für Deine Anregung. Zur Zeit komme ich leider nicht dazu, Deinen Vorschlag zu testen. Aber das kann ich ja nachgelagert immer noch tun.

Gruß
wasi
wasi64
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 18
Registriert: 29. Jun 2005, 15:27


Zurück zu Word Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste