<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Clever-Excel-Forum - Komplettlösungen]]></title>
		<link>https://www.clever-excel-forum.de/</link>
		<description><![CDATA[Clever-Excel-Forum - https://www.clever-excel-forum.de]]></description>
		<pubDate>Fri, 08 May 2026 07:52:08 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Internationale Feiertage]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Internationale-Feiertage</link>
			<pubDate>Sun, 22 Mar 2026 23:05:39 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=25609">Ralf A</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Internationale-Feiertage</guid>
			<description><![CDATA[Hi,<br /><br />es gibt ja immer wieder mal Vorschläge für Dauer-, Ferien- oder Feiertagskalender. Z. Bsp. den von <a href="https://www.clever-excel-forum.de/Thread-Dauerkalender" target="_blank" rel="noopener" class="mycode_url">@PIVPQ</a> oder <a href="https://www.clever-excel-forum.de/Thread-Kalender-Ferien-und-Feiertage" target="_blank" rel="noopener" class="mycode_url">@Schauan</a> oder vielen anderen. Daher wäre es müßig einen weiteren anzuhängen. <br />Meist berücksichtigen die jedoch nur die deutschen Feiertage. Die richtig guten sogar sind sogar erweiterbar (neu sind ja der Intern. Frauentag in Berlin und MV oder der Kindertag in Thüringen) und berücksichtigen die Feiertage sogar in Abhängigkeit vom Bundesland. <br />Aber sobald man über die bundesdeutsche Grenze schaut, wird es schon dünn. Noch dünner, wenn man nach weltweiten Feiertagen sucht.<br />Bei <a href="https://github.com/FotMac/powerquery-public-holidays-gr" target="_blank" rel="noopener" class="mycode_url">Github</a> bin ich auf die griechischen Feiertage gestoßen und von da ausgehend auf die internationalen, die ich Euch für die schnelle Recherche in einer PQ Lösung bereitstelle.<br />Die Datei beinhaltet Makros. Wer keine Makros mag, kann sie deaktivieren, muss dann aber die Auswahl und Aktualisierung der Parameter- und Ergebnistabellen per Hand ausfüllen/anstoßen.<br />Mit Makro genügt ein Klick in eine beliebige Zelle der Auswahltabelle (linke Seite)<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsm.png" title="" border="0" alt=".xlsm" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=57391" target="_blank" title="23.03.2026, 01:00">InternationaleFeiertage.xlsm</a> (Größe: 38,27 KB / Downloads: 5)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Hi,<br /><br />es gibt ja immer wieder mal Vorschläge für Dauer-, Ferien- oder Feiertagskalender. Z. Bsp. den von <a href="https://www.clever-excel-forum.de/Thread-Dauerkalender" target="_blank" rel="noopener" class="mycode_url">@PIVPQ</a> oder <a href="https://www.clever-excel-forum.de/Thread-Kalender-Ferien-und-Feiertage" target="_blank" rel="noopener" class="mycode_url">@Schauan</a> oder vielen anderen. Daher wäre es müßig einen weiteren anzuhängen. <br />Meist berücksichtigen die jedoch nur die deutschen Feiertage. Die richtig guten sogar sind sogar erweiterbar (neu sind ja der Intern. Frauentag in Berlin und MV oder der Kindertag in Thüringen) und berücksichtigen die Feiertage sogar in Abhängigkeit vom Bundesland. <br />Aber sobald man über die bundesdeutsche Grenze schaut, wird es schon dünn. Noch dünner, wenn man nach weltweiten Feiertagen sucht.<br />Bei <a href="https://github.com/FotMac/powerquery-public-holidays-gr" target="_blank" rel="noopener" class="mycode_url">Github</a> bin ich auf die griechischen Feiertage gestoßen und von da ausgehend auf die internationalen, die ich Euch für die schnelle Recherche in einer PQ Lösung bereitstelle.<br />Die Datei beinhaltet Makros. Wer keine Makros mag, kann sie deaktivieren, muss dann aber die Auswahl und Aktualisierung der Parameter- und Ergebnistabellen per Hand ausfüllen/anstoßen.<br />Mit Makro genügt ein Klick in eine beliebige Zelle der Auswahltabelle (linke Seite)<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsm.png" title="" border="0" alt=".xlsm" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=57391" target="_blank" title="23.03.2026, 01:00">InternationaleFeiertage.xlsm</a> (Größe: 38,27 KB / Downloads: 5)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Date-Picker (Kalendersteuerelement) mit KW]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Date-Picker-Kalendersteuerelement-mit-KW</link>
			<pubDate>Thu, 14 Aug 2025 07:22:09 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=21763">Egon12</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Date-Picker-Kalendersteuerelement-mit-KW</guid>
			<description><![CDATA[Hallo Miteinander,<br /><br />den Simple Datepicker hier noch um die Anzeige der Kalenderwoche erweitert. <br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsm.png" title="" border="0" alt=".xlsm" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=56104" target="_blank" title="14.08.2025, 09:20">Stand Alone Simple Datepicker+KW.xlsm</a> (Größe: 128,38 KB / Downloads: 12)
<!-- end: postbit_attachments_attachment --><br /><br />Gruß Uwe]]></description>
			<content:encoded><![CDATA[Hallo Miteinander,<br /><br />den Simple Datepicker hier noch um die Anzeige der Kalenderwoche erweitert. <br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsm.png" title="" border="0" alt=".xlsm" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=56104" target="_blank" title="14.08.2025, 09:20">Stand Alone Simple Datepicker+KW.xlsm</a> (Größe: 128,38 KB / Downloads: 12)
<!-- end: postbit_attachments_attachment --><br /><br />Gruß Uwe]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Dynamische Userform - schnelle Auswahlbox]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Dynamische-Userform-schnelle-Auswahlbox</link>
			<pubDate>Mon, 04 Aug 2025 12:09:32 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Dynamische-Userform-schnelle-Auswahlbox</guid>
			<description><![CDATA[Liebe Leserin, lieber Leser,<br /><br />für die schnelle Auswahl eines oder mehrerer Elemente aus einem Elementensatz könnte man bequem eine Auswahlbox mit Radio- oder Checkboxen nutzen.<br /><br />Hierzu gibt es hier im Forum im Bereich "Beispiele und Workshops" ja auch schon Beiträge, z.B. der Umbau einer Inputbox usw.<br /><br />Wer kein API-Freund ist und lieber bei den Excelmöglichkeiten bleiben möchte, der kann sich ja eine Userform dafür hernehmen.<br /><br />Heute wollen wir uns für diese Aufgabe eine dynamische Userform bauen, die programmatisch erstellt, angezeigt und nach Benutzung wieder gelöscht wird.<br /><br />Der nachfolgende Beispielcode erstellt eine Auswahlbox mit folgenden Eigenschaften:<br /><ul><li>Einfach- oder Mehrfachauswahl mittels Radiobuttons oder Checkboxen</li><li>Elementübergabe mittels String, Array, Range oder Objekt</li><li>Anzeigeposition zentriert, an vorgegebener Position oder an Mausposition z.B. bei Rechtsklick</li><li>Anzeige mit oder ohne Schaltflächen, für eine kleine Box mit schneller Auswahl</li><li>und weiteres</li></ul><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=56039" target="_blank" title="04.08.2025, 14:01">Userform_AuswahlBox.png</a> (Größe: 7,28 KB / Downloads: 37)
<!-- end: postbit_attachments_attachment --><br /><br />Zur besseren Demonstration verschiedenster Versionen lade Dir die anliegende Datei herunter....<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=56040" target="_blank" title="04.08.2025, 14:01">Dynamische Userform.xlsb</a> (Größe: 41,07 KB / Downloads: 13)
<!-- end: postbit_attachments_attachment --><br /><br /><!--- erstellt am 04.08.2025 13:55:10 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1160px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus135510' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA135510' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=#00a000>' #### &quot;Zugriff auf das VBA-Projektobjektmoddel vertrauen&quot; muss im Trustcenter aktiviert sein ####</font><br><br><font color=#00a000>' Auswahl zwischen mehreren Begriffen auf der Basis einer tempor&auml;ren UserForm</font><br><font color=#00a000>' entweder als Radio-Button (nur ein Eintrag ausw&auml;hlbar) oder als Checkbox (mehrere Eintr&auml;ge ausw&auml;hlbar)</font><br><br><font color=#00a000>' Beim Aufruf von &quot;GetAuswahl&quot; sind folgende Parameter mitzugeben:</font><br><font color=#00a000>'</font><br><font color=#00a000>' 1:&nbsp;&nbsp;&nbsp;&nbsp;Ein Array oder ein kommagetrennter String oder ein Excel-Range mit den Begriffen</font><br><br><font color=#00a000>' alle anderen Parameter sind optional</font><br><font color=#00a000>' 2.&nbsp;&nbsp;&nbsp;&nbsp;Titeltext (Caption der Userform)</font><br><font color=#00a000>' 3:&nbsp;&nbsp;&nbsp;&nbsp;MultiSelect:</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; True&nbsp;&nbsp;&nbsp;&nbsp; Anzeige als Checkbox-Buttons</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False&nbsp;&nbsp;&nbsp;&nbsp;Anzeige als Radio-Buttons</font><br><font color=#00a000>' 4:&nbsp;&nbsp;&nbsp;&nbsp;Prompt:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Default: &quot;Bitte triff Deine Auswahl!&quot;</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optional: ein beliebiger Text</font><br><font color=#00a000>' 5, 6: Position</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; einer 0&nbsp;&nbsp;Anzeige zentriert</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; beide &gt;0 Anzeige der Userform an dieser Position</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; beide -1 Anzeige an der Mausposition</font><br><br><font color=#00a000>' R&uuml;ckgabe: Kommagetrennter String, der durch den User durch Split bei Bedarf in ein Aray transferiert werden kann</font><br><br><font color=blue>Option Explicit</font><br><font color=blue>Option Compare Text</font><br><font color=blue>Option Base</font> <font color=#ff6060>1</font><br><br><font color=#00a000>' Private Const csPrompt As String = &quot;Bitte triff Deine Auswahl!&quot; ' Wenn leer, dann kein Prompt</font><br><font color=blue>Private Const</font> <font color=#d000d0>csPrompt</font> <font color=blue>As String</font> = &quot;<font color=red></font>&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Wenn leer, dann kein Prompt, kein Frame</font><br><font color=blue>Private Const</font> <font color=#d000d0>ccUmrech</font> <font color=blue>As Currency</font> = <font color=#ff6060>5.5</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Zur Ermittlung der UF-Breite anhand des Textes</font><br><font color=blue>Private Const</font> <font color=#d000d0>csSep</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font> = &quot;<font color=red>,</font>&quot;<br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetCursorPos</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpPoint <font color=blue>As POINTAPI</font>) <font color=blue>As Long</font><br><font color=blue>Private Type POINTAPI</font><br>&nbsp;&nbsp;&nbsp;&nbsp;x <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;y <font color=blue>As Long</font><br><font color=blue>End Type</font><br><br><font color=blue>Public</font> gvErg() <font color=blue>As Variant</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' gvErg(1) ist die R&uuml;ckgabevariable</font><br><br><strong><font color=blue>Public Function</font> GetAuswahl(<font color=blue>ByVal</font> Items <font color=blue>As Variant</font>, <font color=blue>Optional ByVal</font> Titel <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> MultiSel <font color=blue>As Boolean</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> MsgTxt <font color=blue>As String</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> xPos <font color=blue>As Long</font>, <font color=blue>Optional ByVal</font> yPos <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> NoButtons <font color=blue>As Boolean</font>) <font color=blue>As Variant</font><br><br>&nbsp;&nbsp;<font color=blue>Dim</font> oUF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Object</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> PT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As POINTAPI</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> oFrm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Object</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> bFrame&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Boolean</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sCtrlTyp&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sUFName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iCtrPos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>, iAnz&nbsp;&nbsp;<font color=blue>As Long</font>, iNr <font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iUFBreite&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> yPosInUF&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ciBtnLinks</font> <font color=blue>As Long</font> = <font color=#ff6060>5</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ciBtnBreit</font> <font color=blue>As Long</font> = <font color=#ff6060>65</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ciBtnAbst</font>&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>15</font><br><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>IsObject</font>(Items) <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iAnz = Items.Count<br>&nbsp;&nbsp;<font color=blue>ElseIf</font> <font color=#5050f0>IsArray</font>(Items) <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iAnz = <font color=#5050f0>UBound</font>(Items)<br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> Items = <font color=#a000c0>vbNullString</font> <font color=blue>Then Exit Function</font><br>&nbsp;&nbsp;&nbsp;&nbsp; Items = <font color=#5050f0>Split</font>(<font color=#d000d0>csSep</font> & Items, <font color=#d000d0>csSep</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp; iAnz = <font color=#5050f0>UBound</font>(Items)<br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<font color=blue>ReDim</font> gvErg(iAnz)<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;bFrame = <font color=blue>True</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Mit oder ohne Gruppenrahmen</font><br>&nbsp;&nbsp;yPosInUF = <font color=#ff6060>5</font><br><br><font color=#00a000>' Userformbreite ermitteln</font><br>&nbsp;&nbsp;<font color=blue>If</font> MultiSel <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iUFBreite = (<font color=#d000d0>ciBtnLinks</font> + <font color=#d000d0>ciBtnBreit</font>) <font color=blue>*</font> <font color=#ff6060>2</font> + <font color=#d000d0>ciBtnAbst</font> + <font color=#ff6060>12</font><br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iUFBreite = <font color=#d000d0>ciBtnLinks</font> <font color=blue>*</font> <font color=#ff6060>2</font> + <font color=#d000d0>ciBtnBreit</font> + <font color=#ff6060>40</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>Len</font>(Titel) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> <font color=blue>*</font> <font color=#ff6060>1.2</font> &gt; iUFBreite <font color=blue>Then</font> iUFBreite = <font color=#5050f0>Len</font>(Titel) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> <font color=blue>*</font> <font color=#ff6060>1.2</font><br>&nbsp;&nbsp;<font color=blue>If</font> MsgTxt = &quot;<font color=red></font>&quot; <font color=blue>Then</font> MsgTxt = <font color=#d000d0>csPrompt</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>Len</font>(MsgTxt) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> &gt; iUFBreite <font color=blue>Then</font> iUFBreite = <font color=#5050f0>Len</font>(MsgTxt) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font><br>&nbsp;&nbsp;<font color=blue>For</font> iNr = <font color=#ff6060>1</font> <font color=blue>To</font> iAnz<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>Len</font>(Items(iNr)) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> &gt; iUFBreite <font color=blue>Then</font> iUFBreite = <font color=#5050f0>Len</font>(Items(iNr)) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font><br>&nbsp;&nbsp;<font color=blue>Next</font> iNr<br>&nbsp;&nbsp;<br><font color=#00a000>' Userform erstellen</font><br>&nbsp;&nbsp;<font color=blue>If</font> Titel = &quot;<font color=red></font>&quot; <font color=blue>Then</font> Titel = <font color=#5050f0>Split</font>(ActiveWorkbook.<font color=blue>Name</font>, &quot;<font color=red>.</font>&quot;)(<font color=#ff6060>0</font>)<br>&nbsp;&nbsp;<font color=blue>Set</font> oUF = ThisWorkbook.VBProject.VBComponents.Add(<font color=#ff6060>3</font>)<br>&nbsp;&nbsp;<font color=blue>With</font> oUF<br>&nbsp;&nbsp;&nbsp;&nbsp; .Properties(&quot;<font color=red>Width</font>&quot;) = iUFBreite&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Breite der Userform setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; .Properties(&quot;<font color=red>Caption</font>&quot;) = Titel<br>&nbsp;&nbsp;<font color=blue>End With</font><br><br><font color=#00a000>' Label anlegen</font><br>&nbsp;&nbsp;<font color=blue>If</font> MsgTxt &lt;&gt; &quot;<font color=red></font>&quot; <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.Label.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>Label1</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = MsgTxt<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = iUFBreite - <font color=#ff6060>20</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Height = <font color=#ff6060>10</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TextAlign = <font color=#ff6060>2</font><font color=#00a000>&nbsp;'fmTextAlignCenter</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Font.Bold = <font color=blue>True</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yPosInUF = yPosInUF + .Height + <font color=#ff6060>5</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; bFrame = <font color=blue>False</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Optional einen Frame f&uuml;r die Controls anlegen</font><br>&nbsp;&nbsp;<font color=blue>If</font> bFrame = <font color=blue>True Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Set</font> oFrm = oUF.Designer.Controls.Add(&quot;<font color=red>Forms.Frame.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oFrm<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>Frame1</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = iUFBreite - <font color=#ff6060>20</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iCtrPos = <font color=#ff6060>5</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Beginnposition Controls</font><br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Set</font> oFrm = oUF.Designer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Keinen Frame anlegen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iCtrPos = yPosInUF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Beginnposition Controls</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Mehrere gleichartige Controls anlegen</font><br>&nbsp;&nbsp;sCtrlTyp = <font color=#5050f0>IIf</font>(MultiSel, &quot;<font color=red>CheckBox</font>&quot;, &quot;<font color=red>OptionButton</font>&quot;)<br>&nbsp;&nbsp;<font color=blue>For</font> iNr = <font color=#ff6060>1</font> <font color=blue>To</font> iAnz<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> oFrm.Controls.Add(&quot;<font color=red>Forms.</font>&quot; & sCtrlTyp & &quot;<font color=red>.1</font>&quot;, sCtrlTyp & iNr, <font color=blue>True</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Name = sCtrlTyp & iNr<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Caption = Items(iNr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Top = iCtrPos<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Width = iUFBreite - <font color=#ff6060>20</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Height = <font color=#ff6060>15</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCtrPos = iCtrPos + .Height + <font color=#ff6060>5</font><br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;ControlClick </font>&quot; & .Name & &quot;<font color=red>, </font>&quot; & iNr & &quot;<font color=red>¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<font color=blue>Next</font> iNr<br><br><font color=#00a000>' Sammel-Sub Code f&uuml;r die Controls schreiben</font><br>&nbsp;&nbsp;sCode = sCode & &quot;<font color=red>Private Sub ControlClick(oCtrl as Object, iNr as Integer)¶</font>&quot;<br>&nbsp;&nbsp;<font color=blue>If</font> MultiSel <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode & &quot;<font color=red>&nbsp;&nbsp;gvErg(iNr) = IIf(oCtrl.Value = True, oCtrl.Caption, '')¶&quot;</font>&quot;<br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;gvErg(1) = oCtrl.Caption¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;Unload Me¶</font>&quot;<br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;sCode = sCode & &quot;<font color=red>End Sub¶¶</font>&quot;<br><br>&nbsp;&nbsp;<font color=blue>If</font> bFrame <font color=blue>Then</font> oFrm.Height = iCtrPos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Frameh&ouml;he anpassen an Controlanzahl</font><br>&nbsp;&nbsp;yPosInUF = yPosInUF + (iAnz <font color=blue>*</font> <font color=#ff6060>20</font>) + <font color=#5050f0>IIf</font>(bFrame, <font color=#ff6060>10</font>, <font color=#ff6060>5</font>)&nbsp;&nbsp; <font color=#00a000>&nbsp;' Position f&uuml;r die Buttons festlegen</font><br><br>&nbsp;&nbsp;<font color=blue>If</font> NoButtons = <font color=blue>True Then GoTo</font> SetzeCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Es werden keine Buttons gew&uuml;nscht, damit UF klein bleibt</font><br><br><font color=#00a000>' Abbrechen-Button erstellen</font><br>&nbsp;&nbsp;<font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.CommandButton.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Name = &quot;<font color=red>Abbrechen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Caption = &quot;<font color=red>Abbrechen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Left = <font color=#5050f0>IIf</font>(MultiSel, <font color=#d000d0>ciBtnLinks</font> + <font color=#d000d0>ciBtnBreit</font> + <font color=#d000d0>ciBtnAbst</font>, iUFBreite &bsol; <font color=#ff6060>2</font> - <font color=#d000d0>ciBtnBreit</font> &bsol; <font color=#ff6060>2</font> - <font color=#ff6060>4</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Width = <font color=#d000d0>ciBtnBreit</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Height = <font color=#ff6060>25</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .BackColor = <font color=#5050f0>RGB</font>(<font color=#ff6060>255</font>, <font color=#ff6060>200</font>, <font color=#ff6060>200</font>)<br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;gvErg(1)=vbNullString¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;Unload Me¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> MultiSel <font color=blue>Then</font><br>&nbsp;&nbsp; sCode = &quot;<font color=red>Dim bAll as Boolean¶¶</font>&quot; & sCode<br><font color=#00a000>' &Uuml;bernahme-Button erstellen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.CommandButton.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>Uebernehmen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = &quot;<font color=red>&Uuml;bernehmen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = <font color=#d000d0>ciBtnBreit</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Height = <font color=#ff6060>25</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BackColor = <font color=#5050f0>RGB</font>(<font color=#ff6060>100</font>, <font color=#ff6060>255</font>, <font color=#ff6060>100</font>)<br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Dim i As Long, Werte As String¶¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;For i = 1 To UBound(gvErg)¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If gvErg(i) &lt;&gt; vbNullString Then Werte = Werte & gvErg(i) & ','¶&quot; _</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Next i¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;If Werte = vbNullString Then¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; With Label1¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = 'Keine Auswahl getroffen'¶&quot; _</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TextAlign = fmTextAlignCenter¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BackColor = RGB(255,255,100)¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Font.Bold = True¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; End With¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Else¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; gvErg(1) = Left(Werte, Len(Werte) - 1)¶¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; Unload Me¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;End If¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br><br><font color=#00a000>' SetzeAlle-Button erstellen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.CommandButton.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>ButtonAlle</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = &quot;<font color=red>Alle ausw&auml;hlen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF + <font color=#ff6060>35</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = <font color=#d000d0>ciBtnBreit</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Height = <font color=#ff6060>25</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BackColor = <font color=#5050f0>RGB</font>(<font color=#ff6060>255</font>, <font color=#ff6060>255</font>, <font color=#ff6060>100</font>)<br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Dim i As Long, iChk As Long¶¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;bAll = Not bAll¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;iChk = bAll And 1¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;For i = 1 To UBound(gvErg)¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gvErg(i) = Controls('</font>&quot; & sCtrlTyp & &quot;<font color=red>' & i).Caption¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Controls('</font>&quot; & sCtrlTyp & &quot;<font color=red>' & i).Value = iChk¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Next i¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp; yPosInUF = yPosInUF + <font color=#ff6060>40</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;yPosInUF = yPosInUF + <font color=#ff6060>40</font><br>&nbsp;&nbsp;<br><b><font color=black>SetzeCode:</font></b><br><font color=#00a000>' Erstellten Code ins Modul einf&uuml;gen</font><br>&nbsp;&nbsp;oUF.CodeModule.InsertLines <font color=#ff6060>1</font>, <font color=#5050f0>Replace</font>(<font color=blue>Replace</font>(sCode, &quot;<font color=red>'</font>&quot;, <font color=#5050f0>Chr</font>(<font color=#ff6060>34</font>)), &quot;<font color=red>¶</font>&quot;, <font color=#a000c0>vbLf</font>)<br>&nbsp;&nbsp;oUF.Properties(&quot;<font color=red>Height</font>&quot;) = yPosInUF + <font color=#ff6060>25</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Userform positionieren</font><br>&nbsp;&nbsp;<font color=blue>If</font> xPos &lt; <font color=#ff6060>0</font> <font color=blue>And</font> yPos &lt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>GetCursorPos</font> PT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Mausposition holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; xPos = PT.x / <font color=#ff6060>1.67</font>: yPos = PT.y / <font color=#ff6060>1.67</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<font color=blue>If</font> xPos &gt; <font color=#ff6060>0</font> <font color=blue>And</font> yPos &gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; oUF.Properties(&quot;<font color=red>Left</font>&quot;) = xPos<br>&nbsp;&nbsp;&nbsp;&nbsp; oUF.Properties(&quot;<font color=red>Top</font>&quot;) = yPos<br>&nbsp;&nbsp;<font color=blue>End If</font><br><br><font color=#00a000>' Userform anzeigen</font><br>&nbsp;&nbsp;<font color=blue>Set</font> oUF = CallByName(UserForms, &quot;<font color=red>Add</font>&quot;, VbMethod, oUF.Name)<br>&nbsp;&nbsp;sUFName = oUF.Name<br>&nbsp;&nbsp;oUF.Show<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;GetAuswahl = <font color=#5050f0>Replace</font>(gvErg(<font color=#ff6060>1</font>), &quot;<font color=red>,</font>&quot;, <font color=#d000d0>csSep</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Auswahl zur&uuml;ckgeben</font><br><font color=#00a000>' Exit Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Aktivieren, wenn Userform erhalten bleiben soll</font><br><br><font color=#00a000>' Userform entfernen</font><br>&nbsp;&nbsp;<font color=blue>With</font> ActiveWorkbook.VBProject<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>For Each</font> oUF <font color=blue>In</font> .VBComponents<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> oUF.Type = <font color=#ff6060>3</font> <font color=blue>And</font> oUF.Name <font color=blue>Like</font> sUFName <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.VBComponents.Remove oUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Next</font> oUF<br>&nbsp;&nbsp;<font color=blue>End With</font><br><strong><font color=blue>End Function</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></description>
			<content:encoded><![CDATA[Liebe Leserin, lieber Leser,<br /><br />für die schnelle Auswahl eines oder mehrerer Elemente aus einem Elementensatz könnte man bequem eine Auswahlbox mit Radio- oder Checkboxen nutzen.<br /><br />Hierzu gibt es hier im Forum im Bereich "Beispiele und Workshops" ja auch schon Beiträge, z.B. der Umbau einer Inputbox usw.<br /><br />Wer kein API-Freund ist und lieber bei den Excelmöglichkeiten bleiben möchte, der kann sich ja eine Userform dafür hernehmen.<br /><br />Heute wollen wir uns für diese Aufgabe eine dynamische Userform bauen, die programmatisch erstellt, angezeigt und nach Benutzung wieder gelöscht wird.<br /><br />Der nachfolgende Beispielcode erstellt eine Auswahlbox mit folgenden Eigenschaften:<br /><ul><li>Einfach- oder Mehrfachauswahl mittels Radiobuttons oder Checkboxen</li><li>Elementübergabe mittels String, Array, Range oder Objekt</li><li>Anzeigeposition zentriert, an vorgegebener Position oder an Mausposition z.B. bei Rechtsklick</li><li>Anzeige mit oder ohne Schaltflächen, für eine kleine Box mit schneller Auswahl</li><li>und weiteres</li></ul><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=56039" target="_blank" title="04.08.2025, 14:01">Userform_AuswahlBox.png</a> (Größe: 7,28 KB / Downloads: 37)
<!-- end: postbit_attachments_attachment --><br /><br />Zur besseren Demonstration verschiedenster Versionen lade Dir die anliegende Datei herunter....<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=56040" target="_blank" title="04.08.2025, 14:01">Dynamische Userform.xlsb</a> (Größe: 41,07 KB / Downloads: 13)
<!-- end: postbit_attachments_attachment --><br /><br /><!--- erstellt am 04.08.2025 13:55:10 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1160px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus135510' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA135510' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=#00a000>' #### &quot;Zugriff auf das VBA-Projektobjektmoddel vertrauen&quot; muss im Trustcenter aktiviert sein ####</font><br><br><font color=#00a000>' Auswahl zwischen mehreren Begriffen auf der Basis einer tempor&auml;ren UserForm</font><br><font color=#00a000>' entweder als Radio-Button (nur ein Eintrag ausw&auml;hlbar) oder als Checkbox (mehrere Eintr&auml;ge ausw&auml;hlbar)</font><br><br><font color=#00a000>' Beim Aufruf von &quot;GetAuswahl&quot; sind folgende Parameter mitzugeben:</font><br><font color=#00a000>'</font><br><font color=#00a000>' 1:&nbsp;&nbsp;&nbsp;&nbsp;Ein Array oder ein kommagetrennter String oder ein Excel-Range mit den Begriffen</font><br><br><font color=#00a000>' alle anderen Parameter sind optional</font><br><font color=#00a000>' 2.&nbsp;&nbsp;&nbsp;&nbsp;Titeltext (Caption der Userform)</font><br><font color=#00a000>' 3:&nbsp;&nbsp;&nbsp;&nbsp;MultiSelect:</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; True&nbsp;&nbsp;&nbsp;&nbsp; Anzeige als Checkbox-Buttons</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; False&nbsp;&nbsp;&nbsp;&nbsp;Anzeige als Radio-Buttons</font><br><font color=#00a000>' 4:&nbsp;&nbsp;&nbsp;&nbsp;Prompt:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Default: &quot;Bitte triff Deine Auswahl!&quot;</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; optional: ein beliebiger Text</font><br><font color=#00a000>' 5, 6: Position</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; einer 0&nbsp;&nbsp;Anzeige zentriert</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; beide &gt;0 Anzeige der Userform an dieser Position</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; beide -1 Anzeige an der Mausposition</font><br><br><font color=#00a000>' R&uuml;ckgabe: Kommagetrennter String, der durch den User durch Split bei Bedarf in ein Aray transferiert werden kann</font><br><br><font color=blue>Option Explicit</font><br><font color=blue>Option Compare Text</font><br><font color=blue>Option Base</font> <font color=#ff6060>1</font><br><br><font color=#00a000>' Private Const csPrompt As String = &quot;Bitte triff Deine Auswahl!&quot; ' Wenn leer, dann kein Prompt</font><br><font color=blue>Private Const</font> <font color=#d000d0>csPrompt</font> <font color=blue>As String</font> = &quot;<font color=red></font>&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Wenn leer, dann kein Prompt, kein Frame</font><br><font color=blue>Private Const</font> <font color=#d000d0>ccUmrech</font> <font color=blue>As Currency</font> = <font color=#ff6060>5.5</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Zur Ermittlung der UF-Breite anhand des Textes</font><br><font color=blue>Private Const</font> <font color=#d000d0>csSep</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font> = &quot;<font color=red>,</font>&quot;<br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetCursorPos</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpPoint <font color=blue>As POINTAPI</font>) <font color=blue>As Long</font><br><font color=blue>Private Type POINTAPI</font><br>&nbsp;&nbsp;&nbsp;&nbsp;x <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;y <font color=blue>As Long</font><br><font color=blue>End Type</font><br><br><font color=blue>Public</font> gvErg() <font color=blue>As Variant</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' gvErg(1) ist die R&uuml;ckgabevariable</font><br><br><strong><font color=blue>Public Function</font> GetAuswahl(<font color=blue>ByVal</font> Items <font color=blue>As Variant</font>, <font color=blue>Optional ByVal</font> Titel <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> MultiSel <font color=blue>As Boolean</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> MsgTxt <font color=blue>As String</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> xPos <font color=blue>As Long</font>, <font color=blue>Optional ByVal</font> yPos <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> NoButtons <font color=blue>As Boolean</font>) <font color=blue>As Variant</font><br><br>&nbsp;&nbsp;<font color=blue>Dim</font> oUF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Object</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> PT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As POINTAPI</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> oFrm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Object</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> bFrame&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Boolean</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sCtrlTyp&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sUFName&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iCtrPos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>, iAnz&nbsp;&nbsp;<font color=blue>As Long</font>, iNr <font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iUFBreite&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> yPosInUF&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ciBtnLinks</font> <font color=blue>As Long</font> = <font color=#ff6060>5</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ciBtnBreit</font> <font color=blue>As Long</font> = <font color=#ff6060>65</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ciBtnAbst</font>&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>15</font><br><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>IsObject</font>(Items) <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iAnz = Items.Count<br>&nbsp;&nbsp;<font color=blue>ElseIf</font> <font color=#5050f0>IsArray</font>(Items) <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iAnz = <font color=#5050f0>UBound</font>(Items)<br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> Items = <font color=#a000c0>vbNullString</font> <font color=blue>Then Exit Function</font><br>&nbsp;&nbsp;&nbsp;&nbsp; Items = <font color=#5050f0>Split</font>(<font color=#d000d0>csSep</font> & Items, <font color=#d000d0>csSep</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp; iAnz = <font color=#5050f0>UBound</font>(Items)<br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<font color=blue>ReDim</font> gvErg(iAnz)<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;bFrame = <font color=blue>True</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Mit oder ohne Gruppenrahmen</font><br>&nbsp;&nbsp;yPosInUF = <font color=#ff6060>5</font><br><br><font color=#00a000>' Userformbreite ermitteln</font><br>&nbsp;&nbsp;<font color=blue>If</font> MultiSel <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iUFBreite = (<font color=#d000d0>ciBtnLinks</font> + <font color=#d000d0>ciBtnBreit</font>) <font color=blue>*</font> <font color=#ff6060>2</font> + <font color=#d000d0>ciBtnAbst</font> + <font color=#ff6060>12</font><br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iUFBreite = <font color=#d000d0>ciBtnLinks</font> <font color=blue>*</font> <font color=#ff6060>2</font> + <font color=#d000d0>ciBtnBreit</font> + <font color=#ff6060>40</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>Len</font>(Titel) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> <font color=blue>*</font> <font color=#ff6060>1.2</font> &gt; iUFBreite <font color=blue>Then</font> iUFBreite = <font color=#5050f0>Len</font>(Titel) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> <font color=blue>*</font> <font color=#ff6060>1.2</font><br>&nbsp;&nbsp;<font color=blue>If</font> MsgTxt = &quot;<font color=red></font>&quot; <font color=blue>Then</font> MsgTxt = <font color=#d000d0>csPrompt</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>Len</font>(MsgTxt) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> &gt; iUFBreite <font color=blue>Then</font> iUFBreite = <font color=#5050f0>Len</font>(MsgTxt) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font><br>&nbsp;&nbsp;<font color=blue>For</font> iNr = <font color=#ff6060>1</font> <font color=blue>To</font> iAnz<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>Len</font>(Items(iNr)) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font> &gt; iUFBreite <font color=blue>Then</font> iUFBreite = <font color=#5050f0>Len</font>(Items(iNr)) <font color=blue>*</font> <font color=#d000d0>ccUmrech</font><br>&nbsp;&nbsp;<font color=blue>Next</font> iNr<br>&nbsp;&nbsp;<br><font color=#00a000>' Userform erstellen</font><br>&nbsp;&nbsp;<font color=blue>If</font> Titel = &quot;<font color=red></font>&quot; <font color=blue>Then</font> Titel = <font color=#5050f0>Split</font>(ActiveWorkbook.<font color=blue>Name</font>, &quot;<font color=red>.</font>&quot;)(<font color=#ff6060>0</font>)<br>&nbsp;&nbsp;<font color=blue>Set</font> oUF = ThisWorkbook.VBProject.VBComponents.Add(<font color=#ff6060>3</font>)<br>&nbsp;&nbsp;<font color=blue>With</font> oUF<br>&nbsp;&nbsp;&nbsp;&nbsp; .Properties(&quot;<font color=red>Width</font>&quot;) = iUFBreite&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Breite der Userform setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; .Properties(&quot;<font color=red>Caption</font>&quot;) = Titel<br>&nbsp;&nbsp;<font color=blue>End With</font><br><br><font color=#00a000>' Label anlegen</font><br>&nbsp;&nbsp;<font color=blue>If</font> MsgTxt &lt;&gt; &quot;<font color=red></font>&quot; <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.Label.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>Label1</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = MsgTxt<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = iUFBreite - <font color=#ff6060>20</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Height = <font color=#ff6060>10</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TextAlign = <font color=#ff6060>2</font><font color=#00a000>&nbsp;'fmTextAlignCenter</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Font.Bold = <font color=blue>True</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yPosInUF = yPosInUF + .Height + <font color=#ff6060>5</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; bFrame = <font color=blue>False</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Optional einen Frame f&uuml;r die Controls anlegen</font><br>&nbsp;&nbsp;<font color=blue>If</font> bFrame = <font color=blue>True Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Set</font> oFrm = oUF.Designer.Controls.Add(&quot;<font color=red>Forms.Frame.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oFrm<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>Frame1</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = iUFBreite - <font color=#ff6060>20</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iCtrPos = <font color=#ff6060>5</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Beginnposition Controls</font><br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Set</font> oFrm = oUF.Designer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Keinen Frame anlegen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; iCtrPos = yPosInUF&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Beginnposition Controls</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Mehrere gleichartige Controls anlegen</font><br>&nbsp;&nbsp;sCtrlTyp = <font color=#5050f0>IIf</font>(MultiSel, &quot;<font color=red>CheckBox</font>&quot;, &quot;<font color=red>OptionButton</font>&quot;)<br>&nbsp;&nbsp;<font color=blue>For</font> iNr = <font color=#ff6060>1</font> <font color=blue>To</font> iAnz<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> oFrm.Controls.Add(&quot;<font color=red>Forms.</font>&quot; & sCtrlTyp & &quot;<font color=red>.1</font>&quot;, sCtrlTyp & iNr, <font color=blue>True</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Name = sCtrlTyp & iNr<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Caption = Items(iNr)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Top = iCtrPos<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Width = iUFBreite - <font color=#ff6060>20</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Height = <font color=#ff6060>15</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; iCtrPos = iCtrPos + .Height + <font color=#ff6060>5</font><br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;ControlClick </font>&quot; & .Name & &quot;<font color=red>, </font>&quot; & iNr & &quot;<font color=red>¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<font color=blue>Next</font> iNr<br><br><font color=#00a000>' Sammel-Sub Code f&uuml;r die Controls schreiben</font><br>&nbsp;&nbsp;sCode = sCode & &quot;<font color=red>Private Sub ControlClick(oCtrl as Object, iNr as Integer)¶</font>&quot;<br>&nbsp;&nbsp;<font color=blue>If</font> MultiSel <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode & &quot;<font color=red>&nbsp;&nbsp;gvErg(iNr) = IIf(oCtrl.Value = True, oCtrl.Caption, '')¶&quot;</font>&quot;<br>&nbsp;&nbsp;<font color=blue>Else</font><br>&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;gvErg(1) = oCtrl.Caption¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;Unload Me¶</font>&quot;<br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;sCode = sCode & &quot;<font color=red>End Sub¶¶</font>&quot;<br><br>&nbsp;&nbsp;<font color=blue>If</font> bFrame <font color=blue>Then</font> oFrm.Height = iCtrPos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Frameh&ouml;he anpassen an Controlanzahl</font><br>&nbsp;&nbsp;yPosInUF = yPosInUF + (iAnz <font color=blue>*</font> <font color=#ff6060>20</font>) + <font color=#5050f0>IIf</font>(bFrame, <font color=#ff6060>10</font>, <font color=#ff6060>5</font>)&nbsp;&nbsp; <font color=#00a000>&nbsp;' Position f&uuml;r die Buttons festlegen</font><br><br>&nbsp;&nbsp;<font color=blue>If</font> NoButtons = <font color=blue>True Then GoTo</font> SetzeCode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Es werden keine Buttons gew&uuml;nscht, damit UF klein bleibt</font><br><br><font color=#00a000>' Abbrechen-Button erstellen</font><br>&nbsp;&nbsp;<font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.CommandButton.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Name = &quot;<font color=red>Abbrechen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Caption = &quot;<font color=red>Abbrechen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Left = <font color=#5050f0>IIf</font>(MultiSel, <font color=#d000d0>ciBtnLinks</font> + <font color=#d000d0>ciBtnBreit</font> + <font color=#d000d0>ciBtnAbst</font>, iUFBreite &bsol; <font color=#ff6060>2</font> - <font color=#d000d0>ciBtnBreit</font> &bsol; <font color=#ff6060>2</font> - <font color=#ff6060>4</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Width = <font color=#d000d0>ciBtnBreit</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Height = <font color=#ff6060>25</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .BackColor = <font color=#5050f0>RGB</font>(<font color=#ff6060>255</font>, <font color=#ff6060>200</font>, <font color=#ff6060>200</font>)<br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;gvErg(1)=vbNullString¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>&nbsp;&nbsp;Unload Me¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; & &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> MultiSel <font color=blue>Then</font><br>&nbsp;&nbsp; sCode = &quot;<font color=red>Dim bAll as Boolean¶¶</font>&quot; & sCode<br><font color=#00a000>' &Uuml;bernahme-Button erstellen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.CommandButton.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>Uebernehmen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = &quot;<font color=red>&Uuml;bernehmen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = <font color=#d000d0>ciBtnBreit</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Height = <font color=#ff6060>25</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BackColor = <font color=#5050f0>RGB</font>(<font color=#ff6060>100</font>, <font color=#ff6060>255</font>, <font color=#ff6060>100</font>)<br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Dim i As Long, Werte As String¶¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;For i = 1 To UBound(gvErg)¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If gvErg(i) &lt;&gt; vbNullString Then Werte = Werte & gvErg(i) & ','¶&quot; _</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Next i¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;If Werte = vbNullString Then¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; With Label1¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = 'Keine Auswahl getroffen'¶&quot; _</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.TextAlign = fmTextAlignCenter¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BackColor = RGB(255,255,100)¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Font.Bold = True¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; End With¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Else¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; gvErg(1) = Left(Werte, Len(Werte) - 1)¶¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp; Unload Me¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;End If¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br><br><font color=#00a000>' SetzeAlle-Button erstellen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> oUF.Designer.Controls.Add(&quot;<font color=red>Forms.CommandButton.1</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Name = &quot;<font color=red>ButtonAlle</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Caption = &quot;<font color=red>Alle ausw&auml;hlen</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Left = <font color=#d000d0>ciBtnLinks</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Top = yPosInUF + <font color=#ff6060>35</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Width = <font color=#d000d0>ciBtnBreit</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Height = <font color=#ff6060>25</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BackColor = <font color=#5050f0>RGB</font>(<font color=#ff6060>255</font>, <font color=#ff6060>255</font>, <font color=#ff6060>100</font>)<br><font color=#00a000>' Code dazu</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCode = sCode _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>Private Sub </font>&quot; & .Name & &quot;<font color=red>_Click()¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Dim i As Long, iChk As Long¶¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;bAll = Not bAll¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;iChk = bAll And 1¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;For i = 1 To UBound(gvErg)¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;gvErg(i) = Controls('</font>&quot; & sCtrlTyp & &quot;<font color=red>' & i).Caption¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Controls('</font>&quot; & sCtrlTyp & &quot;<font color=red>' & i).Value = iChk¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>&nbsp;&nbsp;Next i¶</font>&quot; _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& &quot;<font color=red>End Sub¶¶</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp; yPosInUF = yPosInUF + <font color=#ff6060>40</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;yPosInUF = yPosInUF + <font color=#ff6060>40</font><br>&nbsp;&nbsp;<br><b><font color=black>SetzeCode:</font></b><br><font color=#00a000>' Erstellten Code ins Modul einf&uuml;gen</font><br>&nbsp;&nbsp;oUF.CodeModule.InsertLines <font color=#ff6060>1</font>, <font color=#5050f0>Replace</font>(<font color=blue>Replace</font>(sCode, &quot;<font color=red>'</font>&quot;, <font color=#5050f0>Chr</font>(<font color=#ff6060>34</font>)), &quot;<font color=red>¶</font>&quot;, <font color=#a000c0>vbLf</font>)<br>&nbsp;&nbsp;oUF.Properties(&quot;<font color=red>Height</font>&quot;) = yPosInUF + <font color=#ff6060>25</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Userform positionieren</font><br>&nbsp;&nbsp;<font color=blue>If</font> xPos &lt; <font color=#ff6060>0</font> <font color=blue>And</font> yPos &lt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>GetCursorPos</font> PT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Mausposition holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; xPos = PT.x / <font color=#ff6060>1.67</font>: yPos = PT.y / <font color=#ff6060>1.67</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<font color=blue>If</font> xPos &gt; <font color=#ff6060>0</font> <font color=blue>And</font> yPos &gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; oUF.Properties(&quot;<font color=red>Left</font>&quot;) = xPos<br>&nbsp;&nbsp;&nbsp;&nbsp; oUF.Properties(&quot;<font color=red>Top</font>&quot;) = yPos<br>&nbsp;&nbsp;<font color=blue>End If</font><br><br><font color=#00a000>' Userform anzeigen</font><br>&nbsp;&nbsp;<font color=blue>Set</font> oUF = CallByName(UserForms, &quot;<font color=red>Add</font>&quot;, VbMethod, oUF.Name)<br>&nbsp;&nbsp;sUFName = oUF.Name<br>&nbsp;&nbsp;oUF.Show<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;GetAuswahl = <font color=#5050f0>Replace</font>(gvErg(<font color=#ff6060>1</font>), &quot;<font color=red>,</font>&quot;, <font color=#d000d0>csSep</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Auswahl zur&uuml;ckgeben</font><br><font color=#00a000>' Exit Function&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Aktivieren, wenn Userform erhalten bleiben soll</font><br><br><font color=#00a000>' Userform entfernen</font><br>&nbsp;&nbsp;<font color=blue>With</font> ActiveWorkbook.VBProject<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>For Each</font> oUF <font color=blue>In</font> .VBComponents<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> oUF.Type = <font color=#ff6060>3</font> <font color=blue>And</font> oUF.Name <font color=blue>Like</font> sUFName <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.VBComponents.Remove oUF<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Next</font> oUF<br>&nbsp;&nbsp;<font color=blue>End With</font><br><strong><font color=blue>End Function</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Link zum Beitrag: Power Queries ferngesteuert aktualisieren]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Link-zum-Beitrag-Power-Queries-ferngesteuert-aktualisieren</link>
			<pubDate>Tue, 01 Jul 2025 09:48:01 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=25819">ws-53</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Link-zum-Beitrag-Power-Queries-ferngesteuert-aktualisieren</guid>
			<description><![CDATA[Hier geht es zum entsprechendem Beitrag, der auch Fragen und Antworten zulässt.<br /><br /><a href="https://www.clever-excel-forum.de/Thread-Power-Queries-ferngesteuert-aktualisieren" target="_blank" rel="noopener" class="mycode_url">https://www.clever-excel-forum.de/Thread...ualisieren</a>]]></description>
			<content:encoded><![CDATA[Hier geht es zum entsprechendem Beitrag, der auch Fragen und Antworten zulässt.<br /><br /><a href="https://www.clever-excel-forum.de/Thread-Power-Queries-ferngesteuert-aktualisieren" target="_blank" rel="noopener" class="mycode_url">https://www.clever-excel-forum.de/Thread...ualisieren</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Adresssuche mit Fuzzy-Logik - Entwickelt mit Power Query]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Adresssuche-mit-Fuzzy-Logik-Entwickelt-mit-Power-Query--42335</link>
			<pubDate>Sun, 18 May 2025 13:42:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=25819">ws-53</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Adresssuche-mit-Fuzzy-Logik-Entwickelt-mit-Power-Query--42335</guid>
			<description><![CDATA[Da hier keine Fragen stellen kann und ich auch keine Updates einstellen kann, habe ich den Beitrag im normalen Excel-Forum eingestellt.<br /><br />Damit der Beitrag aber schneller gefunden werden kann, hier an dieser Stelle nur ein Link zum Thema.<br /><br /><a href="https://www.clever-excel-forum.de/Thread-Adresssuche-mit-Fuzzy-Logik-entwickelt-mit-Power-Query" target="_blank" rel="noopener" class="mycode_url">https://www.clever-excel-forum.de/Thread...ower-Query</a>]]></description>
			<content:encoded><![CDATA[Da hier keine Fragen stellen kann und ich auch keine Updates einstellen kann, habe ich den Beitrag im normalen Excel-Forum eingestellt.<br /><br />Damit der Beitrag aber schneller gefunden werden kann, hier an dieser Stelle nur ein Link zum Thema.<br /><br /><a href="https://www.clever-excel-forum.de/Thread-Adresssuche-mit-Fuzzy-Logik-entwickelt-mit-Power-Query" target="_blank" rel="noopener" class="mycode_url">https://www.clever-excel-forum.de/Thread...ower-Query</a>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[API-Viewer - Update -]]></title>
			<link>https://www.clever-excel-forum.de/Thread-API-Viewer-Update</link>
			<pubDate>Mon, 24 Feb 2025 18:28:12 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-API-Viewer-Update</guid>
			<description><![CDATA[Wer's brauchen kann...<br /><br />Hallo Forum,<br /><br />ich musste meinen API-Viewer aus dem Jahre 2022 mal wieder updaten. Es wurden einige neue Daten hinzugefügt..<br /><br />Diese Version unterstützt jetzt aber nur noch "neues" Excel mit VBA7 (32/64 Bit).<br />Mit den alten Excelversionen wird kaum noch jemand unterwegs sein.<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54954" target="_blank" title="24.02.2025, 20:26">API_Viewer_KHV.png</a> (Größe: 297,05 KB / Downloads: 43)
<!-- end: postbit_attachments_attachment --><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="AddIn" border="0" alt=".xlam" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54955" target="_blank" title="24.02.2025, 20:26">API_Viewer_KHV_CEF.xlam</a> (Größe: 317,46 KB / Downloads: 8)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54956" target="_blank" title="24.02.2025, 20:26">API_Viewer_KHV_CEF.xlsb</a> (Größe: 351,13 KB / Downloads: 8)
<!-- end: postbit_attachments_attachment --><br /><br />Viel Erfolg damit<br /><br />Gruß<br />Karl-Heinz]]></description>
			<content:encoded><![CDATA[Wer's brauchen kann...<br /><br />Hallo Forum,<br /><br />ich musste meinen API-Viewer aus dem Jahre 2022 mal wieder updaten. Es wurden einige neue Daten hinzugefügt..<br /><br />Diese Version unterstützt jetzt aber nur noch "neues" Excel mit VBA7 (32/64 Bit).<br />Mit den alten Excelversionen wird kaum noch jemand unterwegs sein.<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54954" target="_blank" title="24.02.2025, 20:26">API_Viewer_KHV.png</a> (Größe: 297,05 KB / Downloads: 43)
<!-- end: postbit_attachments_attachment --><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="AddIn" border="0" alt=".xlam" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54955" target="_blank" title="24.02.2025, 20:26">API_Viewer_KHV_CEF.xlam</a> (Größe: 317,46 KB / Downloads: 8)
<!-- end: postbit_attachments_attachment --><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54956" target="_blank" title="24.02.2025, 20:26">API_Viewer_KHV_CEF.xlsb</a> (Größe: 351,13 KB / Downloads: 8)
<!-- end: postbit_attachments_attachment --><br /><br />Viel Erfolg damit<br /><br />Gruß<br />Karl-Heinz]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[TreeView - Elemente des VBE auslesen]]></title>
			<link>https://www.clever-excel-forum.de/Thread-TreeView-Elemente-des-VBE-auslesen</link>
			<pubDate>Tue, 04 Feb 2025 22:04:45 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-TreeView-Elemente-des-VBE-auslesen</guid>
			<description><![CDATA[Liebe Leserin, lieber Leser,<br /><br />wer's brauchen kann.<br /><br />Die Elemente eines TreeView lassen sich u.a. mit der Windows-API auslesen.<br />Das u.a. Beispiel schreibt alle momentan vorhandene Elementtexte des Visual Basic Editors (VBE) in ein Excelblatt.<br /><br />Erstaunlicherweise werden auch die Elemente eines passwortgeschützten VBA-Projektes hier aufgeführt.<br /><br />Viel Spaß beim Ausprobieren....<br /><br /><!--- erstellt am 04.02.2025 23:03:02 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1030px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus230302' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA230302' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>FindWindowA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> lpClassName <font color=blue>As String</font>, <font color=blue>ByVal</font> lpWindowName <font color=blue>As String</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>FindWindowExA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hWndParent <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> hWndChildAfter <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> lpszClass <font color=blue>As String</font>, <font color=blue>ByVal</font> lpszWindow <font color=blue>As String</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SendMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hWnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> Msg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, lParam <font color=blue>As Any</font>) <font color=blue>As LongPtr</font><br>&nbsp;<br><font color=#00a000>' Konstanten f&uuml;r TreeView-Operationen</font><br><font color=blue>Private Const</font> <font color=#d000d0>TV_FIRST</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>&H1100</font><br><font color=blue>Private Const</font> <font color=#d000d0>TVM_GETCOUNT</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#d000d0>TV_FIRST</font> + <font color=#ff6060>5</font><br><font color=blue>Private Const</font> <font color=#d000d0>TVM_GETNEXTITEM</font> <font color=blue>As Long</font> = <font color=#d000d0>TV_FIRST</font> + <font color=#ff6060>10</font><br><font color=blue>Private Const</font> <font color=#d000d0>TVM_GETITEM</font>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font> = <font color=#d000d0>TV_FIRST</font> + <font color=#ff6060>12</font><br>&nbsp;<br><font color=blue>Private Type TVITEM</font><br>&nbsp;&nbsp;&nbsp;&nbsp;mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;hItem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;&nbsp;&nbsp;STATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;statemask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;pszText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font><br>&nbsp;&nbsp;&nbsp;&nbsp;cchTextMax&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;iImage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;iSelectedImage <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;cChildren&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;lParam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As LongPtr</font><br><font color=blue>End Type</font><br><font color=blue>Dim</font> mTVI&nbsp;&nbsp; <font color=blue>As TVITEM</font><br><font color=blue>Dim</font> mhTree <font color=blue>As LongPtr</font>, miZeile <font color=blue>As Long</font>, miAnz <font color=blue>As Long</font><br><font color=blue>Dim</font> mWSh&nbsp;&nbsp; <font color=blue>As</font> Worksheet<br>&nbsp;<br><strong><font color=blue>Sub</font> ErmittleTreeViewElemente()</strong><br>&nbsp;&nbsp;<font color=blue>Dim</font> hWnd&nbsp;&nbsp; <font color=blue>As LongPtr</font>, hItem <font color=blue>As LongPtr</font>, hItem2 <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iAnz <font color=blue>As Long</font>, iAnzMax <font color=blue>As Long</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>Set</font> mWSh = Tabelle1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' &lt;&lt;&lt;Zielblatt vorgeben &gt;&gt;&gt;</font><br>&nbsp;<br><font color=#00a000>' Handle der App ermitteln</font><br>&nbsp;&nbsp;hWnd = <font color=#d000d0>FindWindowA</font>(&quot;<font color=red>wndclass_desked_gsk</font>&quot;, <font color=#a000c0>vbNullString</font>)&nbsp;&nbsp;<font color=#00a000>&nbsp;' Handle des VBE-Editor holen</font><br>&nbsp;&nbsp;hWnd = <font color=#d000d0>FindWindowExA</font>(hWnd, <font color=#ff6060>0</font>, &quot;<font color=red>PROJECT</font>&quot;, <font color=#a000c0>vbNullString</font>)&nbsp;&nbsp; <font color=#00a000>&nbsp;' Projekt-Handle</font><br>&nbsp;&nbsp;<font color=blue>If</font> hWnd = <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>MsgBox</font> &quot;<font color=red>Die gew&uuml;nschte App wurde nicht gefunden!</font>&quot;, <font color=#a000c0>vbCritical</font>, &quot;<font color=red>TreeView</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Exit Sub</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br><br><font color=#00a000>' TreeView vorhanden?</font><br>&nbsp;&nbsp;mhTree = <font color=#d000d0>FindWindowExA</font>(hWnd, <font color=#ff6060>0</font>, &quot;<font color=red>SysTreeView32</font>&quot;, <font color=#a000c0>vbNullString</font>)<br>&nbsp;&nbsp;<font color=blue>If</font> mhTree = <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>MsgBox</font> &quot;<font color=red>Die App enth&auml;lt kein TreeView-Element!</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Exit Sub</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;iAnzMax = <font color=#5050f0>CLng</font>(<font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETCOUNT</font>, <font color=#ff6060>0</font>, <font color=blue>ByVal</font> <font color=#ff6060>0&</font>))<font color=#00a000>&nbsp;' Anzahl der Elemente</font><br>&nbsp;&nbsp;miZeile = <font color=#ff6060>1</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Root-Knoten abrufen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &H0 = TVGN_ROOT</font><br>&nbsp;&nbsp;hItem = <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETNEXTITEM</font>, <font color=#ff6060>&H0</font>, <font color=blue>ByVal</font> <font color=#ff6060>0&</font>)<br>&nbsp;&nbsp;<font color=blue>If</font> hItem = <font color=#ff6060>0</font> <font color=blue>Then Exit Sub</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;mWSh.Cells.Clear&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Altdaten l&ouml;schen</font><br>&nbsp;&nbsp;SchreibeElemente hItem, <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Daten schreiben</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>MsgBox</font> (miZeile - <font color=#ff6060>1</font>) & &quot;<font color=red> von</font>&quot; & <font color=#5050f0>Str</font>(iAnzMax) & _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red> Elementen wurden eingef&uuml;gt!</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>TreeView</font>&quot;<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Private Sub</font> SchreibeElemente(<font color=blue>ByVal</font> hItem <font color=blue>As LongPtr</font>, iSp <font color=blue>As Long</font>)</strong><br><font color=#00a000>' Schreibt den Elementtext in ein Excelblatt</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> hChild <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> hItem &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Do While</font> hItem &lt;&gt; <font color=#ff6060>0</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> mTVI<font color=#00a000>&nbsp;' &H1 = TVIF_TEXT</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.mask = <font color=#ff6060>&H1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hItem = hItem<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.pszText = <font color=#5050f0>String</font>(<font color=#ff6060>256</font>, <font color=#a000c0>vbNullChar</font>)&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Puffer initialisieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cchTextMax = <font color=#ff6060>256</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETITEM</font>, <font color=#ff6060>0</font>, mTVI) &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mWSh.Cells(miZeile, iSp).Value = <font color=#5050f0>Left</font>(.pszText, <font color=#5050f0>InStr</font>(.pszText, <font color=#a000c0>vbNullChar</font>) - <font color=#ff6060>1</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;miZeile = miZeile + <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H4 = TVGN_CHILD</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hChild = <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETNEXTITEM</font>, <font color=#ff6060>&H4</font>, <font color=blue>ByVal</font> hItem)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> hChild &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SchreibeElemente hChild, iSp + <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End If</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H1 = TVGN_NEXT</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hItem = <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETNEXTITEM</font>, <font color=#ff6060>&H1</font>, <font color=blue>ByVal</font> hItem)<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Loop</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></description>
			<content:encoded><![CDATA[Liebe Leserin, lieber Leser,<br /><br />wer's brauchen kann.<br /><br />Die Elemente eines TreeView lassen sich u.a. mit der Windows-API auslesen.<br />Das u.a. Beispiel schreibt alle momentan vorhandene Elementtexte des Visual Basic Editors (VBE) in ein Excelblatt.<br /><br />Erstaunlicherweise werden auch die Elemente eines passwortgeschützten VBA-Projektes hier aufgeführt.<br /><br />Viel Spaß beim Ausprobieren....<br /><br /><!--- erstellt am 04.02.2025 23:03:02 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1030px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus230302' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA230302' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>FindWindowA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> lpClassName <font color=blue>As String</font>, <font color=blue>ByVal</font> lpWindowName <font color=blue>As String</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>FindWindowExA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hWndParent <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> hWndChildAfter <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> lpszClass <font color=blue>As String</font>, <font color=blue>ByVal</font> lpszWindow <font color=blue>As String</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SendMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hWnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> Msg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, lParam <font color=blue>As Any</font>) <font color=blue>As LongPtr</font><br>&nbsp;<br><font color=#00a000>' Konstanten f&uuml;r TreeView-Operationen</font><br><font color=blue>Private Const</font> <font color=#d000d0>TV_FIRST</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>&H1100</font><br><font color=blue>Private Const</font> <font color=#d000d0>TVM_GETCOUNT</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#d000d0>TV_FIRST</font> + <font color=#ff6060>5</font><br><font color=blue>Private Const</font> <font color=#d000d0>TVM_GETNEXTITEM</font> <font color=blue>As Long</font> = <font color=#d000d0>TV_FIRST</font> + <font color=#ff6060>10</font><br><font color=blue>Private Const</font> <font color=#d000d0>TVM_GETITEM</font>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font> = <font color=#d000d0>TV_FIRST</font> + <font color=#ff6060>12</font><br>&nbsp;<br><font color=blue>Private Type TVITEM</font><br>&nbsp;&nbsp;&nbsp;&nbsp;mask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;hItem&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;&nbsp;&nbsp;STATE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;statemask&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;pszText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As String</font><br>&nbsp;&nbsp;&nbsp;&nbsp;cchTextMax&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;iImage&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;iSelectedImage <font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;cChildren&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;&nbsp;&nbsp;lParam&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As LongPtr</font><br><font color=blue>End Type</font><br><font color=blue>Dim</font> mTVI&nbsp;&nbsp; <font color=blue>As TVITEM</font><br><font color=blue>Dim</font> mhTree <font color=blue>As LongPtr</font>, miZeile <font color=blue>As Long</font>, miAnz <font color=blue>As Long</font><br><font color=blue>Dim</font> mWSh&nbsp;&nbsp; <font color=blue>As</font> Worksheet<br>&nbsp;<br><strong><font color=blue>Sub</font> ErmittleTreeViewElemente()</strong><br>&nbsp;&nbsp;<font color=blue>Dim</font> hWnd&nbsp;&nbsp; <font color=blue>As LongPtr</font>, hItem <font color=blue>As LongPtr</font>, hItem2 <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iAnz <font color=blue>As Long</font>, iAnzMax <font color=blue>As Long</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>Set</font> mWSh = Tabelle1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' &lt;&lt;&lt;Zielblatt vorgeben &gt;&gt;&gt;</font><br>&nbsp;<br><font color=#00a000>' Handle der App ermitteln</font><br>&nbsp;&nbsp;hWnd = <font color=#d000d0>FindWindowA</font>(&quot;<font color=red>wndclass_desked_gsk</font>&quot;, <font color=#a000c0>vbNullString</font>)&nbsp;&nbsp;<font color=#00a000>&nbsp;' Handle des VBE-Editor holen</font><br>&nbsp;&nbsp;hWnd = <font color=#d000d0>FindWindowExA</font>(hWnd, <font color=#ff6060>0</font>, &quot;<font color=red>PROJECT</font>&quot;, <font color=#a000c0>vbNullString</font>)&nbsp;&nbsp; <font color=#00a000>&nbsp;' Projekt-Handle</font><br>&nbsp;&nbsp;<font color=blue>If</font> hWnd = <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>MsgBox</font> &quot;<font color=red>Die gew&uuml;nschte App wurde nicht gefunden!</font>&quot;, <font color=#a000c0>vbCritical</font>, &quot;<font color=red>TreeView</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Exit Sub</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br><br><font color=#00a000>' TreeView vorhanden?</font><br>&nbsp;&nbsp;mhTree = <font color=#d000d0>FindWindowExA</font>(hWnd, <font color=#ff6060>0</font>, &quot;<font color=red>SysTreeView32</font>&quot;, <font color=#a000c0>vbNullString</font>)<br>&nbsp;&nbsp;<font color=blue>If</font> mhTree = <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>MsgBox</font> &quot;<font color=red>Die App enth&auml;lt kein TreeView-Element!</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Exit Sub</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;iAnzMax = <font color=#5050f0>CLng</font>(<font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETCOUNT</font>, <font color=#ff6060>0</font>, <font color=blue>ByVal</font> <font color=#ff6060>0&</font>))<font color=#00a000>&nbsp;' Anzahl der Elemente</font><br>&nbsp;&nbsp;miZeile = <font color=#ff6060>1</font><br>&nbsp;&nbsp;<br><font color=#00a000>' Root-Knoten abrufen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &H0 = TVGN_ROOT</font><br>&nbsp;&nbsp;hItem = <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETNEXTITEM</font>, <font color=#ff6060>&H0</font>, <font color=blue>ByVal</font> <font color=#ff6060>0&</font>)<br>&nbsp;&nbsp;<font color=blue>If</font> hItem = <font color=#ff6060>0</font> <font color=blue>Then Exit Sub</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;mWSh.Cells.Clear&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Altdaten l&ouml;schen</font><br>&nbsp;&nbsp;SchreibeElemente hItem, <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Daten schreiben</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>MsgBox</font> (miZeile - <font color=#ff6060>1</font>) & &quot;<font color=red> von</font>&quot; & <font color=#5050f0>Str</font>(iAnzMax) & _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red> Elementen wurden eingef&uuml;gt!</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>TreeView</font>&quot;<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Private Sub</font> SchreibeElemente(<font color=blue>ByVal</font> hItem <font color=blue>As LongPtr</font>, iSp <font color=blue>As Long</font>)</strong><br><font color=#00a000>' Schreibt den Elementtext in ein Excelblatt</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> hChild <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> hItem &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Do While</font> hItem &lt;&gt; <font color=#ff6060>0</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> mTVI<font color=#00a000>&nbsp;' &H1 = TVIF_TEXT</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.mask = <font color=#ff6060>&H1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hItem = hItem<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.pszText = <font color=#5050f0>String</font>(<font color=#ff6060>256</font>, <font color=#a000c0>vbNullChar</font>)&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Puffer initialisieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cchTextMax = <font color=#ff6060>256</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETITEM</font>, <font color=#ff6060>0</font>, mTVI) &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mWSh.Cells(miZeile, iSp).Value = <font color=#5050f0>Left</font>(.pszText, <font color=#5050f0>InStr</font>(.pszText, <font color=#a000c0>vbNullChar</font>) - <font color=#ff6060>1</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;miZeile = miZeile + <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H4 = TVGN_CHILD</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hChild = <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETNEXTITEM</font>, <font color=#ff6060>&H4</font>, <font color=blue>ByVal</font> hItem)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> hChild &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SchreibeElemente hChild, iSp + <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End If</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H1 = TVGN_NEXT</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hItem = <font color=#d000d0>SendMessageA</font>(mhTree, <font color=#d000d0>TVM_GETNEXTITEM</font>, <font color=#ff6060>&H1</font>, <font color=blue>ByVal</font> hItem)<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Loop</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Range2HTML - EMail mit HTML-Text und Bildern]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Range2HTML-EMail-mit-HTML-Text-und-Bildern</link>
			<pubDate>Fri, 17 Jan 2025 10:25:08 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Range2HTML-EMail-mit-HTML-Text-und-Bildern</guid>
			<description><![CDATA[Hallo,<br /><br />heute stelle ich mal mein Range2HTML hier zur weiteren Verwendung bereit.<br /><br />Das alte im Netz zu findende RangeToHTML ist größer und m.E. ohne Bilderverarbeitung.<br /><br />Natürlich lassen sich Tabellenbereiche und Bilder auch über .Paste in Mails einfügen, aber das soll in anderen Artikeln behandelt werden.<br /><br /><!--- erstellt am 17.01.2025 11:18:19 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 770px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus111819' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA111819' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><strong><font color=blue>Private Sub</font> Mail_BereichalsBereich_Range2HTML()</strong><br><font color=#00a000>' Sendet Mail mit integriertem Bereich mit Signatur</font><br><font color=#00a000>' Bereich wird &uuml;ber Range2HTML bereitgestellt</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> WSh1 <font color=blue>As</font> Worksheet, WSh2 <font color=blue>As</font> Worksheet<br>&nbsp;&nbsp;<font color=blue>Dim</font> sMailtext <font color=blue>As String</font>, sBer <font color=blue>As String</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;sBer = &quot;<font color=red>A1:J20</font>&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Kopierbereich</font><br>&nbsp;&nbsp;<font color=blue>Set</font> WSh1 = ThisWorkbook.Sheets(&quot;<font color=red>Tabelle1</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Blatt mit Maildaten</font><br>&nbsp;&nbsp;<font color=blue>Set</font> WSh2 = ThisWorkbook.Sheets(&quot;<font color=red>Tabelle2</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Datenblatt</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>With</font> <font color=#5050f0>CreateObject</font>(&quot;<font color=red>Outlook.Application</font>&quot;).<font color=blue>CreateItem</font>(<font color=#ff6060>0</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BodyFormat = <font color=#ff6060>2</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' HTML-Format, Angabe optional</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subject = WSh1.Range(&quot;<font color=red>A2</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Betreff</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.To = WSh1.Range(&quot;<font color=red>A3</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Empf&auml;nger</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cc = WSh1.Range(&quot;<font color=red>A4</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Kopie an</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp; .Bcc = WSh1.Range(&quot;A4&quot;).Value</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMailtext = WSh1.Range(&quot;<font color=red>A5</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Mailtext</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.GetInspector&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Signatur</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HTMLBody = <font color=#5050f0>Replace</font>(sMailtext, <font color=#a000c0>vbLf</font>, &quot;<font color=red>&lt;br&gt;</font>&quot;) _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& Range2Html(WSh2.Range(sBer)) & .HTMLBody<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Display<br>&nbsp;&nbsp;<font color=blue>End With</font><br><br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Private Function</font> Range2Html(oBereich <font color=blue>As</font> Range) <font color=blue>As String</font></strong><br><font color=#00a000>' Gibt den angegebenen Bereich als HTML zur&uuml;ck, incl.Bilder</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sTmpDatei <font color=blue>As String</font>, sTmp <font color=blue>As String</font>, sTmpVz <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iff <font color=blue>As Integer</font>, P <font color=blue>As Long</font><br><br><font color=#00a000>' Bereich in Datei exportieren</font><br>&nbsp;&nbsp;<font color=blue>With</font> oBereich<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sTmpVz = <font color=#5050f0>Environ&#36;</font>(&quot;<font color=red>temp</font>&quot;) & &quot;<font color=red>&bsol;</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sTmpDatei = sTmpVz & <font color=#5050f0>Format</font>(<font color=blue>Now</font>, &quot;<font color=red>ddmmyy</font>&quot; & <font color=#5050f0>Int</font>(<font color=blue>Timer</font>) <font color=blue>*</font> <font color=#ff6060>10</font>) & &quot;<font color=red>.htm</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Parent.Parent.PublishObjects.Add( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SourceType:=xlSourceRange, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filename:=sTmpDatei, Sheet:=.Parent.Name, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source:=.Address, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HtmlType:=xlHtmlStatic).Publish Create:=True<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iff = <font color=blue>FreeFile</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Open</font> sTmpDatei <font color=blue>For Input As</font> iff<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Range2Html = <font color=#5050f0>Replace</font>(<font color=blue>Input</font>(<font color=blue>LOF</font>(iff), iff), &quot;<font color=red>align=center x:publishsource=</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red>align=left x:publishsource=</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Close</font> iff<br><br><font color=#00a000>' Feststellen, ob auch Bilder im Bereich sind</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P = <font color=#5050f0>InStr</font>(<font color=#ff6060>1</font>, Range2Html, &quot;<font color=red>&lt;link rel=File-List href=</font>&quot;) + <font color=#ff6060>26</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> P &gt; <font color=#ff6060>26</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sTmp = <font color=#5050f0>Mid&#36;</font>(Range2Html, P, <font color=#5050f0>InStr</font>(P, Range2Html, &quot;<font color=red>/filelist.xml</font>&quot;) - P)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Range2Html = <font color=#5050f0>Replace</font>(Range2Html, sTmp, sTmpVz & sTmp)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>On Error Resume Next</font><br>&nbsp;&nbsp;<font color=blue>Kill</font> sTmpDatei<br>&nbsp;&nbsp;<font color=blue>Kill</font> sTmpVz & sTmp<br><br><strong><font color=blue>End Function</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></description>
			<content:encoded><![CDATA[Hallo,<br /><br />heute stelle ich mal mein Range2HTML hier zur weiteren Verwendung bereit.<br /><br />Das alte im Netz zu findende RangeToHTML ist größer und m.E. ohne Bilderverarbeitung.<br /><br />Natürlich lassen sich Tabellenbereiche und Bilder auch über .Paste in Mails einfügen, aber das soll in anderen Artikeln behandelt werden.<br /><br /><!--- erstellt am 17.01.2025 11:18:19 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 770px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus111819' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA111819' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><strong><font color=blue>Private Sub</font> Mail_BereichalsBereich_Range2HTML()</strong><br><font color=#00a000>' Sendet Mail mit integriertem Bereich mit Signatur</font><br><font color=#00a000>' Bereich wird &uuml;ber Range2HTML bereitgestellt</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> WSh1 <font color=blue>As</font> Worksheet, WSh2 <font color=blue>As</font> Worksheet<br>&nbsp;&nbsp;<font color=blue>Dim</font> sMailtext <font color=blue>As String</font>, sBer <font color=blue>As String</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;sBer = &quot;<font color=red>A1:J20</font>&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Kopierbereich</font><br>&nbsp;&nbsp;<font color=blue>Set</font> WSh1 = ThisWorkbook.Sheets(&quot;<font color=red>Tabelle1</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Blatt mit Maildaten</font><br>&nbsp;&nbsp;<font color=blue>Set</font> WSh2 = ThisWorkbook.Sheets(&quot;<font color=red>Tabelle2</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Datenblatt</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>With</font> <font color=#5050f0>CreateObject</font>(&quot;<font color=red>Outlook.Application</font>&quot;).<font color=blue>CreateItem</font>(<font color=#ff6060>0</font>)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.BodyFormat = <font color=#ff6060>2</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' HTML-Format, Angabe optional</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Subject = WSh1.Range(&quot;<font color=red>A2</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Betreff</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.To = WSh1.Range(&quot;<font color=red>A3</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Empf&auml;nger</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Cc = WSh1.Range(&quot;<font color=red>A4</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Kopie an</font><br><font color=#00a000>'&nbsp;&nbsp;&nbsp;&nbsp; .Bcc = WSh1.Range(&quot;A4&quot;).Value</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sMailtext = WSh1.Range(&quot;<font color=red>A5</font>&quot;).Value&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Mailtext</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.GetInspector&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Signatur</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.HTMLBody = <font color=#5050f0>Replace</font>(sMailtext, <font color=#a000c0>vbLf</font>, &quot;<font color=red>&lt;br&gt;</font>&quot;) _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;& Range2Html(WSh2.Range(sBer)) & .HTMLBody<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Display<br>&nbsp;&nbsp;<font color=blue>End With</font><br><br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Private Function</font> Range2Html(oBereich <font color=blue>As</font> Range) <font color=blue>As String</font></strong><br><font color=#00a000>' Gibt den angegebenen Bereich als HTML zur&uuml;ck, incl.Bilder</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> sTmpDatei <font color=blue>As String</font>, sTmp <font color=blue>As String</font>, sTmpVz <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iff <font color=blue>As Integer</font>, P <font color=blue>As Long</font><br><br><font color=#00a000>' Bereich in Datei exportieren</font><br>&nbsp;&nbsp;<font color=blue>With</font> oBereich<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sTmpVz = <font color=#5050f0>Environ&#36;</font>(&quot;<font color=red>temp</font>&quot;) & &quot;<font color=red>&bsol;</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sTmpDatei = sTmpVz & <font color=#5050f0>Format</font>(<font color=blue>Now</font>, &quot;<font color=red>ddmmyy</font>&quot; & <font color=#5050f0>Int</font>(<font color=blue>Timer</font>) <font color=blue>*</font> <font color=#ff6060>10</font>) & &quot;<font color=red>.htm</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Parent.Parent.PublishObjects.Add( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SourceType:=xlSourceRange, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Filename:=sTmpDatei, Sheet:=.Parent.Name, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Source:=.Address, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HtmlType:=xlHtmlStatic).Publish Create:=True<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iff = <font color=blue>FreeFile</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Open</font> sTmpDatei <font color=blue>For Input As</font> iff<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Range2Html = <font color=#5050f0>Replace</font>(<font color=blue>Input</font>(<font color=blue>LOF</font>(iff), iff), &quot;<font color=red>align=center x:publishsource=</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red>align=left x:publishsource=</font>&quot;)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Close</font> iff<br><br><font color=#00a000>' Feststellen, ob auch Bilder im Bereich sind</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P = <font color=#5050f0>InStr</font>(<font color=#ff6060>1</font>, Range2Html, &quot;<font color=red>&lt;link rel=File-List href=</font>&quot;) + <font color=#ff6060>26</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> P &gt; <font color=#ff6060>26</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sTmp = <font color=#5050f0>Mid&#36;</font>(Range2Html, P, <font color=#5050f0>InStr</font>(P, Range2Html, &quot;<font color=red>/filelist.xml</font>&quot;) - P)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Range2Html = <font color=#5050f0>Replace</font>(Range2Html, sTmp, sTmpVz & sTmp)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>On Error Resume Next</font><br>&nbsp;&nbsp;<font color=blue>Kill</font> sTmpDatei<br>&nbsp;&nbsp;<font color=blue>Kill</font> sTmpVz & sTmp<br><br><strong><font color=blue>End Function</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Anzeigebox mit bis zu 10 Schaltflächen]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Anzeigebox-mit-bis-zu-10-Schaltflaechen</link>
			<pubDate>Wed, 04 Dec 2024 21:51:21 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Anzeigebox-mit-bis-zu-10-Schaltflaechen</guid>
			<description><![CDATA[Hallo liebe Leserin, lieber Leser,<br /><br />wer's brauchen kann.....<br /><br />Standardmäßig kann man in seiner Msgbox maximal drei Schaltflächen + 1 Hilfebutton anzeigen lassen.<br />Wer mehr möchte, musste bisher andere Wege gehen, z.B. eines der vielen Beispiele hier im Forum nutzen.<br /><br />Aber Windows stellt auch eine MsgBox-Version zur Verfügung, die optional bis zu elf Buttons anzeigen kann.<br />Zwei davon sind abweichend und einer schwer zu handeln. Deshalb kann man mit dem hier gezeigten Code nur maximal 10 Buttons anzeigen lassen.<br /><br />Evtl. Anwendungsmöglichkeit: Auswahl aus einer Vielzahl von Optionen.....<br /><br />Diese Minimalversion kann 9 Buttons mit individuellem Buttontext anzeigen lassen und bietet auch eine TimeOut-Möglichkeit.<br /><br /><!--- erstellt am 04.12.2024 22:39:20 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1290px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus223920' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA223920' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SoftModalMessageBox</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (pMsgBoxParams <font color=blue>As MSGBOXDATA</font>) <font color=blue>As Long</font><br><br><font color=blue>Private Type MSGBOXPARAMS</font><br>&nbsp;&nbsp;cbSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;hWndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;hInstance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszCaption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwStyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;hIcon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwContextHelpId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;lpfnMsgBoxCallback <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwLanguageId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br><font color=blue>End Type</font><br>&nbsp;<br><font color=blue>Private Type MSGBOXDATA</font><br>&nbsp;&nbsp;<font color=blue>PARAMS</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As MSGBOXPARAMS</font><br>&nbsp;&nbsp;pwndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwPadding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;wLanguageId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;pidButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Button-IDs)</font><br>&nbsp;&nbsp;ppszButtonText <font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Buttontext)</font><br>&nbsp;&nbsp;cButtons&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Anzahl der Buttons</font><br>&nbsp;&nbsp;defButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Default</font><br>&nbsp;&nbsp;cancelId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Abbruch</font><br>&nbsp;&nbsp;Timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Timeout</font><br>&nbsp;&nbsp;phwndList&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwReserved(<font color=#ff6060>19</font>) <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Reserviert</font><br><font color=blue>End Type</font><br><br><font color=blue>Dim</font> mhTimer <font color=blue>As LongPtr</font>, msArrTxt() <font color=blue>As String</font><br><br><strong><font color=blue>Function</font> MsgboxEx(<font color=blue>ByVal</font> sText <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iStyle <font color=blue>As Long</font> = <font color=#ff6060>0</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sCaption <font color=blue>As String</font> = &quot;<font color=red>Microsoft Excel</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sButtontexte <font color=blue>As String</font> = &quot;<font color=red>OK</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iTimeOut <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iDefBtn <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> bSysKreuz <font color=blue>As Boolean</font>) <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> md <font color=blue>As MSGBOXDATA</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> lArrBtn() <font color=blue>As Long</font>, i <font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_CANCEL</font>&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>2</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>As Long</font> = <font color=#ff6060>32000</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;msArrTxt = <font color=#5050f0>Split</font>(sButtontexte, &quot;<font color=red>,</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte in Array</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>UBound</font>(msArrTxt) &gt; <font color=#ff6060>8</font> <font color=blue>Then Exit Function</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Zu viele Buttontexte</font><br>&nbsp;&nbsp;<font color=blue>ReDim</font> lArrBtn(<font color=blue>UBound</font>(msArrTxt))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' ID-Array dimensionieren</font><br>&nbsp;&nbsp;<font color=blue>For</font> i = <font color=#ff6060>1</font> <font color=blue>To</font> <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lArrBtn(i - <font color=#ff6060>1</font>) = <font color=#5050f0>IIf</font>(i &lt; <font color=#ff6060>8</font>, i, i + <font color=#ff6060>2</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs in Array setzen</font><br>&nbsp;&nbsp;<font color=blue>Next</font> i<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>With</font> md<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> .PARAMS<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cbSize = <font color=#5050f0>LenB</font>(md.PARAMS)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hWndOwner = Application.hwnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Handle</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hInstance = Application.HinstancePtr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Instance</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sText = <font color=#5050f0>Replace</font>(sText, &quot;<font color=red>¶</font>&quot;, <font color=#a000c0>vbLf</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Zeilenumbr&uuml;che einsetzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszText = <font color=#5050f0>StrPtr</font>(sText)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Messagetext (Prompt)</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszCaption = <font color=#5050f0>StrPtr</font>(sCaption)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Titel</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dwStyle = iStyle <font color=blue>Or</font> <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ggf. internes Icon setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpfnMsgBoxCallback = <font color=#ff6060>0</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cancelId = <font color=#5050f0>IIf</font>(bSysKreuz, <font color=#d000d0>ID_CANCEL</font>, <font color=#ff6060>0</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Systemkreuz aktivieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cButtons = <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Anzahl der Buttons &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> iDefBtn = <font color=#ff6060>0</font> <font color=blue>Or</font> iDefBtn &gt; .cButtons <font color=blue>Then</font> iDefBtn = <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.defButton = (iDefBtn - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' DefaultButton-ID</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.pidButton = <font color=#5050f0>VarPtr</font>(lArrBtn(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ppszButtonText = <font color=#5050f0>VarPtr</font>(msArrTxt(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Timeout = (iTimeOut - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timeout setzen, -1 = abgeschaltet</font><br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;i = <font color=#d000d0>SoftModalMessageBox</font>(md)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Jetzt MsgBox anzeigen</font><br>&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> i = <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>Then</font> MsgboxEx = &quot;<font color=red>Timeout</font>&quot;: <font color=blue>Exit Function</font><br>&nbsp;&nbsp;<font color=blue>If</font> i &gt; <font color=#ff6060>8</font> <font color=blue>Then</font> i = i - <font color=#ff6060>2</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Ggf. Korrigierung Button-Nr</font><br>&nbsp;&nbsp;MsgboxEx = <font color=#5050f0>Replace</font>(msArrTxt(i - <font color=#ff6060>1</font>), &quot;<font color=red>&</font>&quot;, &quot;<font color=red></font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ergebnistext zur&uuml;ckgeben</font><br><strong><font color=blue>End Function</font></strong><br><br><font color=#00a000>' Diese Subs sind zum Testen</font><br><font color=#00a000>' Es k&ouml;nnen 1 bis 10 Buttons angezeigt werden =&gt; kommagetrennt angeben</font><br><font color=#00a000>' & vor einem Buchstaben stellt die Shortcut-Taste dar z.B. Alt-S usw.</font><br><font color=#00a000>' ¶ stellt einen Zeilenumbruch dar (vbLf)</font><br><font color=#00a000>' Zur&uuml;ckgegeben wird keine Nummer, sondern der Buttontext des geklickten Buttons</font><br><strong><font color=blue>Sub</font> Test11()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Minimum</font>&quot;)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test12()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information!¶¶Und noch 'ne Zeile&quot;, vbExclamation, &quot;Mein Test&quot;, &quot;Verstanden&quot;)</font>&quot;<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test13()</strong><br>&nbsp;&nbsp;<font color=blue>Call</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information f&uuml;r kurze Zeit!</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>Mein Timeout</font>&quot;, &quot;<font color=red>Schließen</font>&quot;, <font color=#ff6060>2000</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test14()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine¶Option aus!</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>Option 1,Option 2,Option 3</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>2</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test15()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine Option aus oder klicke das Systemkreuz f&uuml;r einen Abbruch an</font>&quot;, <font color=#a000c0>vbExclamation</font>, &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red>O1,O2,O3,O4,O5,O6,O7,O8,O9,O10</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><br /><br />Als zweites zeige ich eine noch umfangreichere Version, die bis zu 10 Buttons, Timeout, eigenes Icon, MsgBox-Positionierung, Individuelle Schriftart und mehr bietet.<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54121" target="_blank" title="04.12.2024, 23:48">Msgbox5Button.png</a> (Größe: 8,17 KB / Downloads: 40)
<!-- end: postbit_attachments_attachment --><br /><br /><!--- erstellt am 04.12.2024 22:41:08 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1160px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus224108' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA224108' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SoftModalMessageBox</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (pMsgBoxParams <font color=blue>As MSGBOXDATA</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>PostMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> wMsg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> lParam <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetCursorPos</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (lpPoint <font color=blue>As POINTAPI</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetWindowRect</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, lpRect <font color=blue>As RECT</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetActiveWindow</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; () <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetWindowPos</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hWndInsertAfter <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> x <font color=blue>As Long</font>, <font color=blue>ByVal</font> y <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> cx <font color=blue>As Long</font>, <font color=blue>ByVal</font> cy <font color=blue>As Long</font>, <font color=blue>ByVal</font> wFlags <font color=blue>As Long</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SendDlgItemMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hDlg <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDDlgItem <font color=blue>As Long</font>, <font color=blue>ByVal</font> wMsg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> lParam <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> uElapse <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpTimerFunc <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>KillTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetSystemMetrics</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> nIndex <font color=blue>As Long</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>DeleteObject</font> <font color=blue>Lib</font> &quot;<font color=red>gdi32</font>&quot; (<font color=blue>ByVal</font> hObject <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>CreateFontA</font> <font color=blue>Lib</font> &quot;<font color=red>gdi32.dll</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> nHeight <font color=blue>As Long</font>, <font color=blue>ByVal</font> nWidth <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> nEscapement <font color=blue>As Long</font>, <font color=blue>ByVal</font> nOrientation <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fnWeight <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwItalic <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwUnderline <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwStrikeOut <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwCharSet <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwOutputPrecision <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwClipPrecision <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwQuality <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwPitchAndFamily <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpszFace <font color=blue>As String</font>) <font color=blue>As LongPtr</font><br><br><font color=blue>Private Type POINTAPI</font><br>&nbsp;&nbsp; x <font color=blue>As Long</font><br>&nbsp;&nbsp; y <font color=blue>As Long</font><br><font color=blue>End Type</font><br><font color=blue>Dim</font> mPtKreuz <font color=blue>As POINTAPI</font><br><font color=blue>Dim</font> mPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As POINTAPI</font><br><br><font color=blue>Private Type RECT</font><br>&nbsp;&nbsp; Left&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp; Top&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp; Right&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp; Bottom <font color=blue>As Long</font><br><font color=blue>End Type</font><br><br><font color=blue>Private Type MSGBOXPARAMS</font><br>&nbsp;&nbsp;cbSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;hWndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;hInstance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszCaption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwStyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;hIcon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><font color=#00a000>&nbsp;' lpszIcon</font><br>&nbsp;&nbsp;dwContextHelpId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;lpfnMsgBoxCallback <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwLanguageId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br><font color=blue>End Type</font><br>&nbsp;<br><font color=blue>Private Type MSGBOXDATA</font><br>&nbsp;&nbsp;<font color=blue>PARAMS</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As MSGBOXPARAMS</font><br>&nbsp;&nbsp;pwndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwPadding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;wLanguageId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;pidButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Button-IDs)</font><br>&nbsp;&nbsp;ppszButtonText <font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Buttontext)</font><br>&nbsp;&nbsp;cButtons&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Anzahl der Buttons</font><br>&nbsp;&nbsp;defButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Default</font><br>&nbsp;&nbsp;cancelId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Abbruch</font><br>&nbsp;&nbsp;Timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Timeout</font><br>&nbsp;&nbsp;phwndList&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwReserved(<font color=#ff6060>19</font>) <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Reserviert</font><br><font color=blue>End Type</font><br><br><font color=blue>Private Type SCHRIFTART_STRUCT</font><br>&nbsp;&nbsp;Groesse&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;Fett&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Boolean</font><br>&nbsp;&nbsp;Kursiv&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Boolean</font><br>&nbsp;&nbsp;Schriftart <font color=blue>As String</font><br><font color=blue>End Type</font><br><font color=blue>Dim</font> mtSCHRIFT <font color=blue>As SCHRIFTART_STRUCT</font><br><br><font color=blue>Dim</font> mhDlg <font color=blue>As LongPtr</font>, mhTimer <font color=blue>As LongPtr</font>, mhIcon <font color=blue>As LongPtr</font>, mhFont <font color=blue>As LongPtr</font><br><font color=blue>Dim</font> msArrTxt() <font color=blue>As String</font><br><br><strong><font color=blue>Function</font> MsgboxEx(<font color=blue>ByVal</font> sText <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iStyle <font color=blue>As Long</font> = <font color=#ff6060>0</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sCaption <font color=blue>As String</font> = &quot;<font color=red>Microsoft Excel</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sButtontexte <font color=blue>As String</font> = &quot;<font color=red>OK</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sIconname <font color=blue>As String</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iTimeOut <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iDefBtn <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> bSysKreuz <font color=blue>As Boolean</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional</font> x <font color=blue>As Long</font> = <font color=#ff6060>0</font>, <font color=blue>Optional</font> y <font color=blue>As Long</font> = <font color=#ff6060>0</font>) <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> md <font color=blue>As MSGBOXDATA</font>, PT <font color=blue>As POINTAPI</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> lArrBtn() <font color=blue>As Long</font>, <font color=blue>i As Long</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_CANCEL</font>&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>2</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>As Long</font> = <font color=#ff6060>32000</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;mPT.x = x: mPT.y = y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox Positionen &uuml;bernehmen</font><br>&nbsp;&nbsp;msArrTxt = <font color=#5050f0>Split</font>(sButtontexte, &quot;<font color=red>,</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte in Array</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>UBound</font>(msArrTxt) &gt; <font color=#ff6060>9</font> <font color=blue>Then Exit Function</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Zu viele Buttontexte</font><br>&nbsp;&nbsp;<font color=blue>ReDim</font> lArrBtn(<font color=blue>UBound</font>(msArrTxt))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' ID-Array dimensionieren</font><br>&nbsp;&nbsp;<font color=blue>For i</font> = <font color=#ff6060>1</font> <font color=blue>To</font> <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lArrBtn(i - <font color=#ff6060>1</font>) = <font color=#5050f0>IIf</font>(i &lt; <font color=#ff6060>8</font>, <font color=blue>i</font>, <font color=blue>i</font> + <font color=#ff6060>2</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs in Array setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If i</font> = <font color=#ff6060>10</font> <font color=blue>Then</font> lArrBtn(i - <font color=#ff6060>1</font>) = <font color=#ff6060>9</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' ID_HELP BtnNr korrigieren</font><br>&nbsp;&nbsp;<font color=blue>Next i</font><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;mhIcon = <font color=#ff6060>0</font>: mhDlg = <font color=#ff6060>0</font>: mhFont = <font color=#ff6060>0</font>: mhTimer = <font color=#ff6060>0</font><br>&nbsp;&nbsp;<font color=blue>If</font> sIconname &lt;&gt; &quot;<font color=red></font>&quot; <font color=blue>Then</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Handle des gefundenen Icons</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>On Error Resume Next</font><br><font color=#00a000>' &lt;&lt;&lt;&lt; Hier den Tabellennamen f&uuml;r die Icons anpassen! &gt;&gt;&gt;&gt;</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mhIcon = Tabelle1.OLEObjects(sIconname).<font color=blue>Object</font>.Picture.handle<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mhIcon &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> iStyle = iStyle <font color=blue>Or</font> <font color=#ff6060>&H40</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MB_ICONINFORMATION = &H40</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>With</font> md<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> .PARAMS<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cbSize = <font color=#5050f0>LenB</font>(md.PARAMS)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hWndOwner = Application.hwnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Handle</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hInstance = Application.HinstancePtr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Instance</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sText = <font color=#5050f0>Replace</font>(sText, &quot;<font color=red>¶</font>&quot;, <font color=#a000c0>vbLf</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Zeilenumbr&uuml;che einsetzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszText = <font color=#5050f0>StrPtr</font>(sText)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Messagetext (Prompt)</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszCaption = <font color=#5050f0>StrPtr</font>(sCaption)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Titel</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dwStyle = iStyle <font color=blue>Or</font> <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ggf. internes Icon setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpfnMsgBoxCallback = GetAddressOf(<font color=blue>AddressOf</font> MsgBoxCallbackProc)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cancelId = <font color=#5050f0>IIf</font>(bSysKreuz, <font color=#d000d0>ID_CANCEL</font>, <font color=#ff6060>0</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Systemkreuz aktivieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cButtons = <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Anzahl der Buttons &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> iDefBtn = <font color=#ff6060>0</font> <font color=blue>Or</font> iDefBtn &gt; .cButtons <font color=blue>Then</font> iDefBtn = <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.defButton = (iDefBtn - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' DefaultButton-ID</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.pidButton = <font color=#5050f0>VarPtr</font>(lArrBtn(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ppszButtonText = <font color=#5050f0>VarPtr</font>(msArrTxt(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Timeout = (iTimeOut - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timeout setzen, -1 = abgeschaltet</font><br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;mhTimer = <font color=#d000d0>SetTimer</font>(<font color=#ff6060>0&</font>, <font color=#ff6060>0&</font>, <font color=#ff6060>25</font>, <font color=blue>AddressOf</font> MsgBoxCallbackProc)<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>i</font> = <font color=#d000d0>SoftModalMessageBox</font>(md)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Jetzt MsgBox anzeigen</font><br>&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> mhFont &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>DeleteObject</font> mhFont&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Font-Objekt l&ouml;schen</font><br>&nbsp;&nbsp;mtSCHRIFT.Groesse = <font color=#ff6060>0</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If i</font> = <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>Then</font> MsgboxEx = &quot;<font color=red>Timeout</font>&quot;: <font color=blue>Exit Function</font><br>&nbsp;&nbsp;<font color=blue>If i</font> &gt; <font color=#ff6060>8</font> <font color=blue>Then i</font> = <font color=blue>i</font> - <font color=#ff6060>2</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Ggf. Korrigierung Button-Nr</font><br>&nbsp;&nbsp;MsgboxEx = <font color=#5050f0>Replace</font>(msArrTxt(i - <font color=#ff6060>1</font>), &quot;<font color=red>&</font>&quot;, &quot;<font color=red></font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ergebnistext zur&uuml;ckgeben</font><br><br><font color=#00a000>' Systemkreuz angeklickt?</font><br>&nbsp;&nbsp;<font color=#d000d0>GetCursorPos</font> PT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Mausposition holen</font><br>&nbsp;&nbsp;<font color=blue>If</font> PT.y &lt; mPtKreuz.y <font color=blue>Then</font> MsgboxEx = &quot;<font color=red>SystemAbbruch</font>&quot;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Systemkreuz angeklickt?</font><br>&nbsp;&nbsp;<br><strong><font color=blue>End Function</font></strong><br><br><strong><font color=blue>Private Function</font> GetAddressOf(<font color=blue>ByVal</font> lpProcAddress <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font></strong><br>&nbsp;&nbsp;GetAddressOf = lpProcAddress<br><strong><font color=blue>End Function</font></strong><br><br><strong><font color=blue>Private Sub</font> MsgBoxCallbackProc()</strong><br><font color=#00a000>' TYPE HELP_INFO abgeschaltet, wird nicht ben&ouml;tigt</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> R <font color=blue>As RECT</font>, lPos <font color=blue>As Long</font>, hFont <font color=blue>As LongPtr</font><br><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> mhTimer &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>KillTimer</font> <font color=#ff6060>0&</font>, mhTimer: mhTimer = <font color=#ff6060>0</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timer l&ouml;schen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mhDlg = <font color=#d000d0>GetActiveWindow</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox-Handle ermitteln</font><br><font color=#00a000>' Icon setzen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &H170=STM_SETICON</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mhIcon &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>SendDlgItemMessageA</font> mhDlg, <font color=#ff6060>20</font>, <font color=#ff6060>&H170</font>, mhIcon, <font color=#ff6060>0</font><br><br><font color=#00a000>' MsgBox positionieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.x &lt; <font color=#ff6060>0</font> <font color=blue>Or</font> mPT.y &lt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>GetCursorPos</font> mPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Mausposition holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.x &gt; <font color=#ff6060>0</font> <font color=blue>And</font> mPT.y &gt; <font color=#ff6060>0</font> <font color=blue>Then</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox-Position setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>GetWindowRect</font> mhDlg, R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Koordinaten der MsgBox holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lPos = <font color=#d000d0>GetSystemMetrics</font>(<font color=#ff6060>0</font>) - (R.Right - R.Left)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' 0=SM_CXSCREEN</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.x &gt; lPos <font color=blue>Then</font> mPT.x = lPos<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lPos = <font color=#d000d0>GetSystemMetrics</font>(<font color=#ff6060>1</font>) - (R.Bottom - R.Top) - <font color=#ff6060>50</font>&nbsp;&nbsp;<font color=#00a000>&nbsp;' 1=SM_CYSCREEN</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.y &gt; lPos <font color=blue>Then</font> mPT.y = lPos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H1=SWP_NOSIZE</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>SetWindowPos</font> mhDlg, <font color=#ff6060>0</font>, mPT.x, mPT.y, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>&H1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' MsgBox positionieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>GetWindowRect</font> mhDlg, R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Koordinaten der MsgBox holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mPtKreuz.y = R.Top + <font color=#ff6060>40</font>:&nbsp;&nbsp; mPtKreuz.x = R.Right - <font color=#ff6060>40</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Position des roten Systemkreuzes</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> mtSCHRIFT<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> .Groesse &gt; <font color=#ff6060>1</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhFont = <font color=#d000d0>CreateFontA</font>(.Groesse, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#5050f0>IIf</font>(.Fett, <font color=#ff6060>700</font>, <font color=#ff6060>400</font>), <font color=#5050f0>IIf</font>(.Kursiv, <font color=#ff6060>1</font>, <font color=#ff6060>0</font>), _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, .Schriftart)<br><font color=#00a000>' Schriftart setzen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Textfeld-ID=65535&nbsp;&nbsp;&H30 = WM_SETFONT</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>SendDlgItemMessageA</font> mhDlg, <font color=#ff6060>65535</font>, <font color=#ff6060>&H30</font>, mhFont, <font color=blue>True</font><font color=#00a000>&nbsp;' Font dem Textfeld zuweisen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>Else</font><br><font color=#00a000>' Help-Button wurde geklickt</font><br>&nbsp;&nbsp;&nbsp;&nbsp; msArrTxt(<font color=#ff6060>1</font>) = msArrTxt(<font color=#ff6060>9</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H10=WM_CLOSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Hilfe-Buttontext f&uuml;r R&uuml;ckgabe &uuml;bernehmen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mhDlg &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>PostMessageA</font> mhDlg, <font color=#ff6060>&H10</font>, <font color=#ff6060>0&</font>, <font color=#ff6060>0&</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox schließen</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br><strong><font color=blue>End Sub</font></strong><br><br><br><font color=#00a000>' Diese Subs sind zum Testen</font><br><font color=#00a000>' Es k&ouml;nnen 1 bis 10 Buttons angezeigt werden =&gt; kommagetrennt angeben</font><br><font color=#00a000>' & vor einem Buchstaben stellt die Shortcut-Taste dar z.B. Alt-S usw.</font><br><font color=#00a000>' ¶ stellt einen Zeilenumbruch dar (vbLf)</font><br><font color=#00a000>' &Uuml;ber x und y kann die Position der MsgBox festgelegt oder an der Mausposition gestartet werden</font><br><font color=#00a000>' Zur&uuml;ckgegeben wird keine Nummer, sondern der Buttontext des geklickten Buttons</font><br><strong><font color=blue>Sub</font> Test1()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Minimum</font>&quot;)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test2()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information!¶¶Und noch 'ne Zeile&quot;, vbExclamation, &quot;Mein Test&quot;, &quot;Verstanden&quot;)</font>&quot;<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test3()</strong><br>&nbsp;&nbsp;<font color=blue>Call</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information f&uuml;r kurze Zeit!</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>Mein Timeout</font>&quot;, &quot;<font color=red>Schließen</font>&quot;, , <font color=#ff6060>2000</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test4()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine¶Option aus!</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>Option 1,Option 2,Option 3</font>&quot;, &quot;<font color=red>Image1</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>2</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test5()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine Option aus oder klicke das Systemkreuz f&uuml;r einen Abbruch an</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>O1,O2,O3,O4,O5,O6,O7,O8,O9,O10</font>&quot;, &quot;<font color=red>Image2</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test6()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Ich bin jetzt ganz wo anders zu finden</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>&Ja,&Nein,&Vielleicht</font>&quot;, &quot;<font color=red>Image3</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=blue>True</font>, <font color=#ff6060>10</font>, <font color=#ff6060>10</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test7()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> mtSCHRIFT<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Schriftart = &quot;<font color=red>Lucida Handwriting</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Groesse = <font color=#ff6060>22</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Fett = <font color=blue>True</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Kursiv = <font color=blue>False</font><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Mich kann man besser lesen als den Standard!</font>&quot;, <font color=#a000c0>vbModal</font>, &quot;<font color=red>Große Schrift</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>Schlumpf &ein,Schlumpf &aus,Schlumpf &um,Ab&schlumpfen,Abbrechen</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red>Image1</font>&quot;)<br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></description>
			<content:encoded><![CDATA[Hallo liebe Leserin, lieber Leser,<br /><br />wer's brauchen kann.....<br /><br />Standardmäßig kann man in seiner Msgbox maximal drei Schaltflächen + 1 Hilfebutton anzeigen lassen.<br />Wer mehr möchte, musste bisher andere Wege gehen, z.B. eines der vielen Beispiele hier im Forum nutzen.<br /><br />Aber Windows stellt auch eine MsgBox-Version zur Verfügung, die optional bis zu elf Buttons anzeigen kann.<br />Zwei davon sind abweichend und einer schwer zu handeln. Deshalb kann man mit dem hier gezeigten Code nur maximal 10 Buttons anzeigen lassen.<br /><br />Evtl. Anwendungsmöglichkeit: Auswahl aus einer Vielzahl von Optionen.....<br /><br />Diese Minimalversion kann 9 Buttons mit individuellem Buttontext anzeigen lassen und bietet auch eine TimeOut-Möglichkeit.<br /><br /><!--- erstellt am 04.12.2024 22:39:20 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1290px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus223920' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA223920' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SoftModalMessageBox</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (pMsgBoxParams <font color=blue>As MSGBOXDATA</font>) <font color=blue>As Long</font><br><br><font color=blue>Private Type MSGBOXPARAMS</font><br>&nbsp;&nbsp;cbSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;hWndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;hInstance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszCaption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwStyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;hIcon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwContextHelpId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;lpfnMsgBoxCallback <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwLanguageId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br><font color=blue>End Type</font><br>&nbsp;<br><font color=blue>Private Type MSGBOXDATA</font><br>&nbsp;&nbsp;<font color=blue>PARAMS</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As MSGBOXPARAMS</font><br>&nbsp;&nbsp;pwndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwPadding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;wLanguageId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;pidButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Button-IDs)</font><br>&nbsp;&nbsp;ppszButtonText <font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Buttontext)</font><br>&nbsp;&nbsp;cButtons&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Anzahl der Buttons</font><br>&nbsp;&nbsp;defButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Default</font><br>&nbsp;&nbsp;cancelId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Abbruch</font><br>&nbsp;&nbsp;Timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Timeout</font><br>&nbsp;&nbsp;phwndList&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwReserved(<font color=#ff6060>19</font>) <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Reserviert</font><br><font color=blue>End Type</font><br><br><font color=blue>Dim</font> mhTimer <font color=blue>As LongPtr</font>, msArrTxt() <font color=blue>As String</font><br><br><strong><font color=blue>Function</font> MsgboxEx(<font color=blue>ByVal</font> sText <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iStyle <font color=blue>As Long</font> = <font color=#ff6060>0</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sCaption <font color=blue>As String</font> = &quot;<font color=red>Microsoft Excel</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sButtontexte <font color=blue>As String</font> = &quot;<font color=red>OK</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iTimeOut <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iDefBtn <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> bSysKreuz <font color=blue>As Boolean</font>) <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> md <font color=blue>As MSGBOXDATA</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> lArrBtn() <font color=blue>As Long</font>, i <font color=blue>As Long</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_CANCEL</font>&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>2</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>As Long</font> = <font color=#ff6060>32000</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;msArrTxt = <font color=#5050f0>Split</font>(sButtontexte, &quot;<font color=red>,</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte in Array</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>UBound</font>(msArrTxt) &gt; <font color=#ff6060>8</font> <font color=blue>Then Exit Function</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Zu viele Buttontexte</font><br>&nbsp;&nbsp;<font color=blue>ReDim</font> lArrBtn(<font color=blue>UBound</font>(msArrTxt))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' ID-Array dimensionieren</font><br>&nbsp;&nbsp;<font color=blue>For</font> i = <font color=#ff6060>1</font> <font color=blue>To</font> <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lArrBtn(i - <font color=#ff6060>1</font>) = <font color=#5050f0>IIf</font>(i &lt; <font color=#ff6060>8</font>, i, i + <font color=#ff6060>2</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs in Array setzen</font><br>&nbsp;&nbsp;<font color=blue>Next</font> i<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>With</font> md<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> .PARAMS<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cbSize = <font color=#5050f0>LenB</font>(md.PARAMS)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hWndOwner = Application.hwnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Handle</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hInstance = Application.HinstancePtr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Instance</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sText = <font color=#5050f0>Replace</font>(sText, &quot;<font color=red>¶</font>&quot;, <font color=#a000c0>vbLf</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Zeilenumbr&uuml;che einsetzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszText = <font color=#5050f0>StrPtr</font>(sText)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Messagetext (Prompt)</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszCaption = <font color=#5050f0>StrPtr</font>(sCaption)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Titel</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dwStyle = iStyle <font color=blue>Or</font> <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ggf. internes Icon setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpfnMsgBoxCallback = <font color=#ff6060>0</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cancelId = <font color=#5050f0>IIf</font>(bSysKreuz, <font color=#d000d0>ID_CANCEL</font>, <font color=#ff6060>0</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Systemkreuz aktivieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cButtons = <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Anzahl der Buttons &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> iDefBtn = <font color=#ff6060>0</font> <font color=blue>Or</font> iDefBtn &gt; .cButtons <font color=blue>Then</font> iDefBtn = <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.defButton = (iDefBtn - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' DefaultButton-ID</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.pidButton = <font color=#5050f0>VarPtr</font>(lArrBtn(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ppszButtonText = <font color=#5050f0>VarPtr</font>(msArrTxt(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Timeout = (iTimeOut - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timeout setzen, -1 = abgeschaltet</font><br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;i = <font color=#d000d0>SoftModalMessageBox</font>(md)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Jetzt MsgBox anzeigen</font><br>&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> i = <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>Then</font> MsgboxEx = &quot;<font color=red>Timeout</font>&quot;: <font color=blue>Exit Function</font><br>&nbsp;&nbsp;<font color=blue>If</font> i &gt; <font color=#ff6060>8</font> <font color=blue>Then</font> i = i - <font color=#ff6060>2</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Ggf. Korrigierung Button-Nr</font><br>&nbsp;&nbsp;MsgboxEx = <font color=#5050f0>Replace</font>(msArrTxt(i - <font color=#ff6060>1</font>), &quot;<font color=red>&</font>&quot;, &quot;<font color=red></font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ergebnistext zur&uuml;ckgeben</font><br><strong><font color=blue>End Function</font></strong><br><br><font color=#00a000>' Diese Subs sind zum Testen</font><br><font color=#00a000>' Es k&ouml;nnen 1 bis 10 Buttons angezeigt werden =&gt; kommagetrennt angeben</font><br><font color=#00a000>' & vor einem Buchstaben stellt die Shortcut-Taste dar z.B. Alt-S usw.</font><br><font color=#00a000>' ¶ stellt einen Zeilenumbruch dar (vbLf)</font><br><font color=#00a000>' Zur&uuml;ckgegeben wird keine Nummer, sondern der Buttontext des geklickten Buttons</font><br><strong><font color=blue>Sub</font> Test11()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Minimum</font>&quot;)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test12()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information!¶¶Und noch 'ne Zeile&quot;, vbExclamation, &quot;Mein Test&quot;, &quot;Verstanden&quot;)</font>&quot;<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test13()</strong><br>&nbsp;&nbsp;<font color=blue>Call</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information f&uuml;r kurze Zeit!</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>Mein Timeout</font>&quot;, &quot;<font color=red>Schließen</font>&quot;, <font color=#ff6060>2000</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test14()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine¶Option aus!</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>Option 1,Option 2,Option 3</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>2</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test15()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine Option aus oder klicke das Systemkreuz f&uuml;r einen Abbruch an</font>&quot;, <font color=#a000c0>vbExclamation</font>, &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red>O1,O2,O3,O4,O5,O6,O7,O8,O9,O10</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><br /><br />Als zweites zeige ich eine noch umfangreichere Version, die bis zu 10 Buttons, Timeout, eigenes Icon, MsgBox-Positionierung, Individuelle Schriftart und mehr bietet.<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54121" target="_blank" title="04.12.2024, 23:48">Msgbox5Button.png</a> (Größe: 8,17 KB / Downloads: 40)
<!-- end: postbit_attachments_attachment --><br /><br /><!--- erstellt am 04.12.2024 22:41:08 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 1160px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus224108' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA224108' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Option Explicit</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SoftModalMessageBox</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (pMsgBoxParams <font color=blue>As MSGBOXDATA</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>PostMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> wMsg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> lParam <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetCursorPos</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (lpPoint <font color=blue>As POINTAPI</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetWindowRect</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, lpRect <font color=blue>As RECT</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetActiveWindow</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; () <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetWindowPos</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; (<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hWndInsertAfter <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> x <font color=blue>As Long</font>, <font color=blue>ByVal</font> y <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> cx <font color=blue>As Long</font>, <font color=blue>ByVal</font> cy <font color=blue>As Long</font>, <font color=blue>ByVal</font> wFlags <font color=blue>As Long</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SendDlgItemMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hDlg <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDDlgItem <font color=blue>As Long</font>, <font color=blue>ByVal</font> wMsg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> lParam <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> uElapse <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpTimerFunc <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>KillTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetSystemMetrics</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> nIndex <font color=blue>As Long</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>DeleteObject</font> <font color=blue>Lib</font> &quot;<font color=red>gdi32</font>&quot; (<font color=blue>ByVal</font> hObject <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>CreateFontA</font> <font color=blue>Lib</font> &quot;<font color=red>gdi32.dll</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> nHeight <font color=blue>As Long</font>, <font color=blue>ByVal</font> nWidth <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> nEscapement <font color=blue>As Long</font>, <font color=blue>ByVal</font> nOrientation <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fnWeight <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwItalic <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwUnderline <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwStrikeOut <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwCharSet <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwOutputPrecision <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwClipPrecision <font color=blue>As Long</font>, <font color=blue>ByVal</font> fdwQuality <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> fdwPitchAndFamily <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpszFace <font color=blue>As String</font>) <font color=blue>As LongPtr</font><br><br><font color=blue>Private Type POINTAPI</font><br>&nbsp;&nbsp; x <font color=blue>As Long</font><br>&nbsp;&nbsp; y <font color=blue>As Long</font><br><font color=blue>End Type</font><br><font color=blue>Dim</font> mPtKreuz <font color=blue>As POINTAPI</font><br><font color=blue>Dim</font> mPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As POINTAPI</font><br><br><font color=blue>Private Type RECT</font><br>&nbsp;&nbsp; Left&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp; Top&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp; Right&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp; Bottom <font color=blue>As Long</font><br><font color=blue>End Type</font><br><br><font color=blue>Private Type MSGBOXPARAMS</font><br>&nbsp;&nbsp;cbSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br>&nbsp;&nbsp;hWndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;hInstance&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszText&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;lpszCaption&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwStyle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;hIcon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font><font color=#00a000>&nbsp;' lpszIcon</font><br>&nbsp;&nbsp;dwContextHelpId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;lpfnMsgBoxCallback <font color=blue>As LongPtr</font><br>&nbsp;&nbsp;dwLanguageId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font><br><font color=blue>End Type</font><br>&nbsp;<br><font color=blue>Private Type MSGBOXDATA</font><br>&nbsp;&nbsp;<font color=blue>PARAMS</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As MSGBOXPARAMS</font><br>&nbsp;&nbsp;pwndOwner&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwPadding&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;wLanguageId&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;pidButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Button-IDs)</font><br>&nbsp;&nbsp;ppszButtonText <font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Array (Buttontext)</font><br>&nbsp;&nbsp;cButtons&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Anzahl der Buttons</font><br>&nbsp;&nbsp;defButton&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Default</font><br>&nbsp;&nbsp;cancelId&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Button-ID Abbruch</font><br>&nbsp;&nbsp;Timeout&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Timeout</font><br>&nbsp;&nbsp;phwndList&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As LongPtr</font>&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Nur intern</font><br>&nbsp;&nbsp;dwReserved(<font color=#ff6060>19</font>) <font color=blue>As Long</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Reserviert</font><br><font color=blue>End Type</font><br><br><font color=blue>Private Type SCHRIFTART_STRUCT</font><br>&nbsp;&nbsp;Groesse&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>As Long</font><br>&nbsp;&nbsp;Fett&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Boolean</font><br>&nbsp;&nbsp;Kursiv&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>As Boolean</font><br>&nbsp;&nbsp;Schriftart <font color=blue>As String</font><br><font color=blue>End Type</font><br><font color=blue>Dim</font> mtSCHRIFT <font color=blue>As SCHRIFTART_STRUCT</font><br><br><font color=blue>Dim</font> mhDlg <font color=blue>As LongPtr</font>, mhTimer <font color=blue>As LongPtr</font>, mhIcon <font color=blue>As LongPtr</font>, mhFont <font color=blue>As LongPtr</font><br><font color=blue>Dim</font> msArrTxt() <font color=blue>As String</font><br><br><strong><font color=blue>Function</font> MsgboxEx(<font color=blue>ByVal</font> sText <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iStyle <font color=blue>As Long</font> = <font color=#ff6060>0</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sCaption <font color=blue>As String</font> = &quot;<font color=red>Microsoft Excel</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sButtontexte <font color=blue>As String</font> = &quot;<font color=red>OK</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> sIconname <font color=blue>As String</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iTimeOut <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> iDefBtn <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional ByVal</font> bSysKreuz <font color=blue>As Boolean</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>Optional</font> x <font color=blue>As Long</font> = <font color=#ff6060>0</font>, <font color=blue>Optional</font> y <font color=blue>As Long</font> = <font color=#ff6060>0</font>) <font color=blue>As String</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> md <font color=blue>As MSGBOXDATA</font>, PT <font color=blue>As POINTAPI</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> lArrBtn() <font color=blue>As Long</font>, <font color=blue>i As Long</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_CANCEL</font>&nbsp;&nbsp;<font color=blue>As Long</font> = <font color=#ff6060>2</font><br>&nbsp;&nbsp;<font color=blue>Const</font> <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>As Long</font> = <font color=#ff6060>32000</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;mPT.x = x: mPT.y = y&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox Positionen &uuml;bernehmen</font><br>&nbsp;&nbsp;msArrTxt = <font color=#5050f0>Split</font>(sButtontexte, &quot;<font color=red>,</font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte in Array</font><br>&nbsp;&nbsp;<font color=blue>If</font> <font color=#5050f0>UBound</font>(msArrTxt) &gt; <font color=#ff6060>9</font> <font color=blue>Then Exit Function</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Zu viele Buttontexte</font><br>&nbsp;&nbsp;<font color=blue>ReDim</font> lArrBtn(<font color=blue>UBound</font>(msArrTxt))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' ID-Array dimensionieren</font><br>&nbsp;&nbsp;<font color=blue>For i</font> = <font color=#ff6060>1</font> <font color=blue>To</font> <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lArrBtn(i - <font color=#ff6060>1</font>) = <font color=#5050f0>IIf</font>(i &lt; <font color=#ff6060>8</font>, <font color=blue>i</font>, <font color=blue>i</font> + <font color=#ff6060>2</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs in Array setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If i</font> = <font color=#ff6060>10</font> <font color=blue>Then</font> lArrBtn(i - <font color=#ff6060>1</font>) = <font color=#ff6060>9</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' ID_HELP BtnNr korrigieren</font><br>&nbsp;&nbsp;<font color=blue>Next i</font><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;mhIcon = <font color=#ff6060>0</font>: mhDlg = <font color=#ff6060>0</font>: mhFont = <font color=#ff6060>0</font>: mhTimer = <font color=#ff6060>0</font><br>&nbsp;&nbsp;<font color=blue>If</font> sIconname &lt;&gt; &quot;<font color=red></font>&quot; <font color=blue>Then</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Handle des gefundenen Icons</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>On Error Resume Next</font><br><font color=#00a000>' &lt;&lt;&lt;&lt; Hier den Tabellennamen f&uuml;r die Icons anpassen! &gt;&gt;&gt;&gt;</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mhIcon = Tabelle1.OLEObjects(sIconname).<font color=blue>Object</font>.Picture.handle<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mhIcon &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> iStyle = iStyle <font color=blue>Or</font> <font color=#ff6060>&H40</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MB_ICONINFORMATION = &H40</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>With</font> md<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> .PARAMS<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cbSize = <font color=#5050f0>LenB</font>(md.PARAMS)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hWndOwner = Application.hwnd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Handle</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.hInstance = Application.HinstancePtr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Excel-Instance</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sText = <font color=#5050f0>Replace</font>(sText, &quot;<font color=red>¶</font>&quot;, <font color=#a000c0>vbLf</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Zeilenumbr&uuml;che einsetzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszText = <font color=#5050f0>StrPtr</font>(sText)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Messagetext (Prompt)</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpszCaption = <font color=#5050f0>StrPtr</font>(sCaption)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Titel</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.dwStyle = iStyle <font color=blue>Or</font> <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ggf. internes Icon setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.lpfnMsgBoxCallback = GetAddressOf(<font color=blue>AddressOf</font> MsgBoxCallbackProc)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cancelId = <font color=#5050f0>IIf</font>(bSysKreuz, <font color=#d000d0>ID_CANCEL</font>, <font color=#ff6060>0</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Systemkreuz aktivieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.cButtons = <font color=#5050f0>UBound</font>(lArrBtn) + <font color=#ff6060>1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Anzahl der Buttons &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> iDefBtn = <font color=#ff6060>0</font> <font color=blue>Or</font> iDefBtn &gt; .cButtons <font color=blue>Then</font> iDefBtn = <font color=#ff6060>1</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.defButton = (iDefBtn - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' DefaultButton-ID</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.pidButton = <font color=#5050f0>VarPtr</font>(lArrBtn(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' IDs &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ppszButtonText = <font color=#5050f0>VarPtr</font>(msArrTxt(<font color=#ff6060>0</font>))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Buttontexte &uuml;bergeben</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Timeout = (iTimeOut - <font color=#ff6060>1</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timeout setzen, -1 = abgeschaltet</font><br>&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;mhTimer = <font color=#d000d0>SetTimer</font>(<font color=#ff6060>0&</font>, <font color=#ff6060>0&</font>, <font color=#ff6060>25</font>, <font color=blue>AddressOf</font> MsgBoxCallbackProc)<br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>i</font> = <font color=#d000d0>SoftModalMessageBox</font>(md)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Jetzt MsgBox anzeigen</font><br>&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> mhFont &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>DeleteObject</font> mhFont&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Font-Objekt l&ouml;schen</font><br>&nbsp;&nbsp;mtSCHRIFT.Groesse = <font color=#ff6060>0</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If i</font> = <font color=#d000d0>ID_TIMEOUT</font> <font color=blue>Then</font> MsgboxEx = &quot;<font color=red>Timeout</font>&quot;: <font color=blue>Exit Function</font><br>&nbsp;&nbsp;<font color=blue>If i</font> &gt; <font color=#ff6060>8</font> <font color=blue>Then i</font> = <font color=blue>i</font> - <font color=#ff6060>2</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Ggf. Korrigierung Button-Nr</font><br>&nbsp;&nbsp;MsgboxEx = <font color=#5050f0>Replace</font>(msArrTxt(i - <font color=#ff6060>1</font>), &quot;<font color=red>&</font>&quot;, &quot;<font color=red></font>&quot;)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Ergebnistext zur&uuml;ckgeben</font><br><br><font color=#00a000>' Systemkreuz angeklickt?</font><br>&nbsp;&nbsp;<font color=#d000d0>GetCursorPos</font> PT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Mausposition holen</font><br>&nbsp;&nbsp;<font color=blue>If</font> PT.y &lt; mPtKreuz.y <font color=blue>Then</font> MsgboxEx = &quot;<font color=red>SystemAbbruch</font>&quot;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Systemkreuz angeklickt?</font><br>&nbsp;&nbsp;<br><strong><font color=blue>End Function</font></strong><br><br><strong><font color=blue>Private Function</font> GetAddressOf(<font color=blue>ByVal</font> lpProcAddress <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font></strong><br>&nbsp;&nbsp;GetAddressOf = lpProcAddress<br><strong><font color=blue>End Function</font></strong><br><br><strong><font color=blue>Private Sub</font> MsgBoxCallbackProc()</strong><br><font color=#00a000>' TYPE HELP_INFO abgeschaltet, wird nicht ben&ouml;tigt</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> R <font color=blue>As RECT</font>, lPos <font color=blue>As Long</font>, hFont <font color=blue>As LongPtr</font><br><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>If</font> mhTimer &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>KillTimer</font> <font color=#ff6060>0&</font>, mhTimer: mhTimer = <font color=#ff6060>0</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timer l&ouml;schen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mhDlg = <font color=#d000d0>GetActiveWindow</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox-Handle ermitteln</font><br><font color=#00a000>' Icon setzen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &H170=STM_SETICON</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mhIcon &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>SendDlgItemMessageA</font> mhDlg, <font color=#ff6060>20</font>, <font color=#ff6060>&H170</font>, mhIcon, <font color=#ff6060>0</font><br><br><font color=#00a000>' MsgBox positionieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.x &lt; <font color=#ff6060>0</font> <font color=blue>Or</font> mPT.y &lt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>GetCursorPos</font> mPT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' Mausposition holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.x &gt; <font color=#ff6060>0</font> <font color=blue>And</font> mPT.y &gt; <font color=#ff6060>0</font> <font color=blue>Then</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox-Position setzen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>GetWindowRect</font> mhDlg, R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Koordinaten der MsgBox holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lPos = <font color=#d000d0>GetSystemMetrics</font>(<font color=#ff6060>0</font>) - (R.Right - R.Left)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' 0=SM_CXSCREEN</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.x &gt; lPos <font color=blue>Then</font> mPT.x = lPos<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lPos = <font color=#d000d0>GetSystemMetrics</font>(<font color=#ff6060>1</font>) - (R.Bottom - R.Top) - <font color=#ff6060>50</font>&nbsp;&nbsp;<font color=#00a000>&nbsp;' 1=SM_CYSCREEN</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mPT.y &gt; lPos <font color=blue>Then</font> mPT.y = lPos&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H1=SWP_NOSIZE</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>SetWindowPos</font> mhDlg, <font color=#ff6060>0</font>, mPT.x, mPT.y, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>&H1</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' MsgBox positionieren</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>GetWindowRect</font> mhDlg, R&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Koordinaten der MsgBox holen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mPtKreuz.y = R.Top + <font color=#ff6060>40</font>:&nbsp;&nbsp; mPtKreuz.x = R.Right - <font color=#ff6060>40</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Position des roten Systemkreuzes</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>With</font> mtSCHRIFT<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>If</font> .Groesse &gt; <font color=#ff6060>1</font> <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhFont = <font color=#d000d0>CreateFontA</font>(.Groesse, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#5050f0>IIf</font>(.Fett, <font color=#ff6060>700</font>, <font color=#ff6060>400</font>), <font color=#5050f0>IIf</font>(.Kursiv, <font color=#ff6060>1</font>, <font color=#ff6060>0</font>), _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, .Schriftart)<br><font color=#00a000>' Schriftart setzen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Textfeld-ID=65535&nbsp;&nbsp;&H30 = WM_SETFONT</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#d000d0>SendDlgItemMessageA</font> mhDlg, <font color=#ff6060>65535</font>, <font color=#ff6060>&H30</font>, mhFont, <font color=blue>True</font><font color=#00a000>&nbsp;' Font dem Textfeld zuweisen</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End If</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>End With</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;<font color=blue>Else</font><br><font color=#00a000>' Help-Button wurde geklickt</font><br>&nbsp;&nbsp;&nbsp;&nbsp; msArrTxt(<font color=#ff6060>1</font>) = msArrTxt(<font color=#ff6060>9</font>)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' &H10=WM_CLOSE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ' Hilfe-Buttontext f&uuml;r R&uuml;ckgabe &uuml;bernehmen</font><br>&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>If</font> mhDlg &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>PostMessageA</font> mhDlg, <font color=#ff6060>&H10</font>, <font color=#ff6060>0&</font>, <font color=#ff6060>0&</font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=#00a000>&nbsp;' MsgBox schließen</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br><strong><font color=blue>End Sub</font></strong><br><br><br><font color=#00a000>' Diese Subs sind zum Testen</font><br><font color=#00a000>' Es k&ouml;nnen 1 bis 10 Buttons angezeigt werden =&gt; kommagetrennt angeben</font><br><font color=#00a000>' & vor einem Buchstaben stellt die Shortcut-Taste dar z.B. Alt-S usw.</font><br><font color=#00a000>' ¶ stellt einen Zeilenumbruch dar (vbLf)</font><br><font color=#00a000>' &Uuml;ber x und y kann die Position der MsgBox festgelegt oder an der Mausposition gestartet werden</font><br><font color=#00a000>' Zur&uuml;ckgegeben wird keine Nummer, sondern der Buttontext des geklickten Buttons</font><br><strong><font color=blue>Sub</font> Test1()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Minimum</font>&quot;)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test2()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information!¶¶Und noch 'ne Zeile&quot;, vbExclamation, &quot;Mein Test&quot;, &quot;Verstanden&quot;)</font>&quot;<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test3()</strong><br>&nbsp;&nbsp;<font color=blue>Call</font> MsgboxEx(&quot;<font color=red>Dies ist eine Information f&uuml;r kurze Zeit!</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>Mein Timeout</font>&quot;, &quot;<font color=red>Schließen</font>&quot;, , <font color=#ff6060>2000</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test4()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine¶Option aus!</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>Option 1,Option 2,Option 3</font>&quot;, &quot;<font color=red>Image1</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>2</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test5()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Bitte w&auml;hle eine Option aus oder klicke das Systemkreuz f&uuml;r einen Abbruch an</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>O1,O2,O3,O4,O5,O6,O7,O8,O9,O10</font>&quot;, &quot;<font color=red>Image2</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=blue>True</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test6()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Ich bin jetzt ganz wo anders zu finden</font>&quot;, , &quot;<font color=red>Meine Auswahl</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>&Ja,&Nein,&Vielleicht</font>&quot;, &quot;<font color=red>Image3</font>&quot;, <font color=#ff6060>0</font>, <font color=#ff6060>0</font>, <font color=blue>True</font>, <font color=#ff6060>10</font>, <font color=#ff6060>10</font>)<br><strong><font color=blue>End Sub</font></strong><br><br><strong><font color=blue>Sub</font> Test7()</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>With</font> mtSCHRIFT<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Schriftart = &quot;<font color=red>Lucida Handwriting</font>&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Groesse = <font color=#ff6060>22</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Fett = <font color=blue>True</font><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .Kursiv = <font color=blue>False</font><br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>End With</font><br>&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>MsgBox</font> MsgboxEx(&quot;<font color=red>Mich kann man besser lesen als den Standard!</font>&quot;, <font color=#a000c0>vbModal</font>, &quot;<font color=red>Große Schrift</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&quot;<font color=red>Schlumpf &ein,Schlumpf &aus,Schlumpf &um,Ab&schlumpfen,Abbrechen</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;<font color=red>Image1</font>&quot;)<br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Verwendete Funktionen aus Power Queries auslesen]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Verwendete-Funktionen-aus-Power-Queries-auslesen</link>
			<pubDate>Fri, 29 Nov 2024 10:00:50 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=25819">ws-53</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Verwendete-Funktionen-aus-Power-Queries-auslesen</guid>
			<description><![CDATA[Da ich keine Berechtigung habe, den vorherigen Beitrag zu ergänzen, muss ich für die Fortführung einen neuen Beitrag erstellen.<br /><br />Die Aussage: "Meine ursprüngliche Idee war, auf diesem Wege Abfragen finden zu können, die eine gesuchte M-Funktion enthalten.", ist natürlich Quatsch,<span style="font-family: Tahoma, sans-serif;" class="mycode_font"> da ich in der Liste ja suchen und filtern kann.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Aber da ich auch einen Überblick haben wollte, welche der verfügbaren Funktionen schon im Fundus meiner Mappen enthalten sind, habe ich mich nun doch noch etwas mit dem Thema beschäftigt und eine für mich halbwegs befriedigende Lösung entwickeln können. Die Einschränkung "befriedigende" deshalb, weil es entweder recht schwierig ist, M-Code mit Power Query zu parsen, oder ich nicht den richtigen Ansatz gefunden habe.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Auf jeden Fall ist es so, dass innerhalb einer ausgelesenen Abfrage, die bei mir alle mit </span><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">"section Section1;" beginnen und einem ";" am am Ende nach "let" enden, die Gesamte Abfrage keine Zeilenumbrüche enthalten muss und somit als Fließtext vorliegen kann,  auch wenn im Standard bei der Erstellung neuer Schritte automatisch Zeilenumbrüche eingefügt werden. Werden diese aber nachträglich entfernt, so werden diese aber immer noch im PQ-Editor korrekt angezeigt. Auch die Verwendung von Funktionsnamen als Schrittbezeichnungen, ist teilweise möglich, führt aber auch zum Teil zu Fehlermeldungen in nachfolgenden Schritten.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Der Code eines Schritts beginnt somit nach dem Ersten "=" nach "let" und endet mit einem ",", nachdem es zu allen öffnenden Klammern, die schließenden vorliegen. In generiertem M-Code liegen Funktionen zwischen einem Leerzeichen und einer sich öffnenden Klammer "(", und können so eigentlich recht leicht extrahiert werden. Durch manuelle Nachbearbeitung des M-Codes können aber vor der öffnenden Klammer mehrere Leerzeichen und Zeilenumbrüche enthalten sein. Dies erschwert dann das Finden von verwendeten Funktionen. </span><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Insgesamt waren somit einige Hand- und Kopfstände erforderlich, um aus Abfragen die benutzten Funktionen und möglichst auch die Schrittnamen zu extrahieren. Dabei werden auch die Funktionen extrahiert, die sich in den meist unsinnigen aus einem Schritt bestehenden Ab fragen befinden. Abhängig davon, ob und wie der M-Code manuell nachbearbeitet wurde, können die Schrittnamen nicht in allen Fällen zuverlässig ermittelt werden.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">In einer weiteren Abfrage wird summarisch ermittelt, welche Funktionen in den ausgelesenen Mappen verwendet werden. Diese Auswertung kann bspw. dazu benutzt werden, um gezielt im Internet nach Beispielen zu Funktionen zu suchen, die bisher noch nicht verwendet werden. Dazu gibt es auch eine summarische PivotTable.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Schön wäre es, wenn der eine oder andere PQ-interessierte bessere Möglichkeiten findet, die Codes zu parsen.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsx.png" title="" border="0" alt=".xlsx" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54072" target="_blank" title="29.11.2024, 11:59">cef - Power Queries aus Mappen auslesen (PQ) - v2.xlsx</a> (Größe: 600,78 KB / Downloads: 4)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Da ich keine Berechtigung habe, den vorherigen Beitrag zu ergänzen, muss ich für die Fortführung einen neuen Beitrag erstellen.<br /><br />Die Aussage: "Meine ursprüngliche Idee war, auf diesem Wege Abfragen finden zu können, die eine gesuchte M-Funktion enthalten.", ist natürlich Quatsch,<span style="font-family: Tahoma, sans-serif;" class="mycode_font"> da ich in der Liste ja suchen und filtern kann.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Aber da ich auch einen Überblick haben wollte, welche der verfügbaren Funktionen schon im Fundus meiner Mappen enthalten sind, habe ich mich nun doch noch etwas mit dem Thema beschäftigt und eine für mich halbwegs befriedigende Lösung entwickeln können. Die Einschränkung "befriedigende" deshalb, weil es entweder recht schwierig ist, M-Code mit Power Query zu parsen, oder ich nicht den richtigen Ansatz gefunden habe.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Auf jeden Fall ist es so, dass innerhalb einer ausgelesenen Abfrage, die bei mir alle mit </span><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">"section Section1;" beginnen und einem ";" am am Ende nach "let" enden, die Gesamte Abfrage keine Zeilenumbrüche enthalten muss und somit als Fließtext vorliegen kann,  auch wenn im Standard bei der Erstellung neuer Schritte automatisch Zeilenumbrüche eingefügt werden. Werden diese aber nachträglich entfernt, so werden diese aber immer noch im PQ-Editor korrekt angezeigt. Auch die Verwendung von Funktionsnamen als Schrittbezeichnungen, ist teilweise möglich, führt aber auch zum Teil zu Fehlermeldungen in nachfolgenden Schritten.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Der Code eines Schritts beginnt somit nach dem Ersten "=" nach "let" und endet mit einem ",", nachdem es zu allen öffnenden Klammern, die schließenden vorliegen. In generiertem M-Code liegen Funktionen zwischen einem Leerzeichen und einer sich öffnenden Klammer "(", und können so eigentlich recht leicht extrahiert werden. Durch manuelle Nachbearbeitung des M-Codes können aber vor der öffnenden Klammer mehrere Leerzeichen und Zeilenumbrüche enthalten sein. Dies erschwert dann das Finden von verwendeten Funktionen. </span><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Insgesamt waren somit einige Hand- und Kopfstände erforderlich, um aus Abfragen die benutzten Funktionen und möglichst auch die Schrittnamen zu extrahieren. Dabei werden auch die Funktionen extrahiert, die sich in den meist unsinnigen aus einem Schritt bestehenden Ab fragen befinden. Abhängig davon, ob und wie der M-Code manuell nachbearbeitet wurde, können die Schrittnamen nicht in allen Fällen zuverlässig ermittelt werden.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">In einer weiteren Abfrage wird summarisch ermittelt, welche Funktionen in den ausgelesenen Mappen verwendet werden. Diese Auswertung kann bspw. dazu benutzt werden, um gezielt im Internet nach Beispielen zu Funktionen zu suchen, die bisher noch nicht verwendet werden. Dazu gibt es auch eine summarische PivotTable.</span><br /><br /><span style="font-family: Tahoma, sans-serif;" class="mycode_font">Schön wäre es, wenn der eine oder andere PQ-interessierte bessere Möglichkeiten findet, die Codes zu parsen.</span><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsx.png" title="" border="0" alt=".xlsx" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=54072" target="_blank" title="29.11.2024, 11:59">cef - Power Queries aus Mappen auslesen (PQ) - v2.xlsx</a> (Größe: 600,78 KB / Downloads: 4)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Power Queries aus Mappen auslesen]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Power-Queries-aus-Mappen-auslesen</link>
			<pubDate>Thu, 24 Oct 2024 07:37:23 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=25819">ws-53</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Power-Queries-aus-Mappen-auslesen</guid>
			<description><![CDATA[Da im Excel-Forum die Frage hochkam, wie die Quellen aller Power Queries ausgelesen werden können, habe ich mich daran erinnert, dass ich vor länger Zeit eine Lösung gefunden hatte, mit der die Oueries einer Mappe bzw. eines Verzeichnisses ausgelesen werden können.<br /><br />In der Mappe, die ich hochlade, ist auch eine Abfrage enthalten, die alle PQ-Funktionen auflistet.<br /><br />Meine ursprüngliche Idee war, auf diesem Wege Abfragen finden zu können, die eine gesuchte M-Funktion enthalten. Wegen einer Reihe offenen Fragen, habe ich diese Idee dann aber verworfen.<br /><br />Aber alleine schon die Möglichkeit zu haben, Abfragen aus Mappen auszulesen, kann nützlich sein. Deswegen stelle ich die Mappe nun hier ein.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsx.png" title="" border="0" alt=".xlsx" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=53691" target="_blank" title="24.10.2024, 09:36">cef - Power Queries aus Mappen auslesen (PQ).xlsx</a> (Größe: 281,54 KB / Downloads: 19)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Da im Excel-Forum die Frage hochkam, wie die Quellen aller Power Queries ausgelesen werden können, habe ich mich daran erinnert, dass ich vor länger Zeit eine Lösung gefunden hatte, mit der die Oueries einer Mappe bzw. eines Verzeichnisses ausgelesen werden können.<br /><br />In der Mappe, die ich hochlade, ist auch eine Abfrage enthalten, die alle PQ-Funktionen auflistet.<br /><br />Meine ursprüngliche Idee war, auf diesem Wege Abfragen finden zu können, die eine gesuchte M-Funktion enthalten. Wegen einer Reihe offenen Fragen, habe ich diese Idee dann aber verworfen.<br /><br />Aber alleine schon die Möglichkeit zu haben, Abfragen aus Mappen auszulesen, kann nützlich sein. Deswegen stelle ich die Mappe nun hier ein.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsx.png" title="" border="0" alt=".xlsx" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=53691" target="_blank" title="24.10.2024, 09:36">cef - Power Queries aus Mappen auslesen (PQ).xlsx</a> (Größe: 281,54 KB / Downloads: 19)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Dateieigenschaften Zeiten ändern]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Dateieigenschaften-Zeiten-aendern</link>
			<pubDate>Fri, 23 Aug 2024 20:56:07 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Dateieigenschaften-Zeiten-aendern</guid>
			<description><![CDATA[wer's brauchen kann....<br /><br />Liebe Leserin, lieber Leser,<br /><br />manchmal möchte man, dass die im Explorer angezeigte Bearbeitungszeit einer Datei individuell verändert werden kann.<br /><br />Nachfolgend findest Du ein einfaches Tool, mit dem Du für einzelne Dateien oder auch für alle Dateien in einem ausgewählten Ordner die Attribute Erstellungszeit, Bearbeitungszeit und letzter Zugriff bequem ändern kannst.<br />Das Tool ist natürlich ohne Gewähr, aber hoffentlich etwas hilfreich.<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=53054" target="_blank" title="23.08.2024, 22:51">DateiDatumÄndern.xlsb</a> (Größe: 62,25 KB / Downloads: 4)
<!-- end: postbit_attachments_attachment --><br /><br />Und nun viel Erfolg und Spaß damit....<br /><br />Gruß aus Hessen<br /><font color=#80000 face="Lucida Handwriting">Karl-Heinz</font>]]></description>
			<content:encoded><![CDATA[wer's brauchen kann....<br /><br />Liebe Leserin, lieber Leser,<br /><br />manchmal möchte man, dass die im Explorer angezeigte Bearbeitungszeit einer Datei individuell verändert werden kann.<br /><br />Nachfolgend findest Du ein einfaches Tool, mit dem Du für einzelne Dateien oder auch für alle Dateien in einem ausgewählten Ordner die Attribute Erstellungszeit, Bearbeitungszeit und letzter Zugriff bequem ändern kannst.<br />Das Tool ist natürlich ohne Gewähr, aber hoffentlich etwas hilfreich.<br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=53054" target="_blank" title="23.08.2024, 22:51">DateiDatumÄndern.xlsb</a> (Größe: 62,25 KB / Downloads: 4)
<!-- end: postbit_attachments_attachment --><br /><br />Und nun viel Erfolg und Spaß damit....<br /><br />Gruß aus Hessen<br /><font color=#80000 face="Lucida Handwriting">Karl-Heinz</font>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Date Picker AddIn und Stand Alone]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Date-Picker-AddIn-und-Stand-Alone</link>
			<pubDate>Thu, 09 May 2024 08:43:07 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=21763">Egon12</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Date-Picker-AddIn-und-Stand-Alone</guid>
			<description><![CDATA[Hallo,<br /> <br />anbei der Simple Date Picker sowohl als AddIn als zum Einbinden in ein Projekt (als Stand Alone benannt).<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51858" target="_blank" title="09.05.2024, 10:40">DatePicker AddIn und Stand Alone.zip</a> (Größe: 183,92 KB / Downloads: 38)
<!-- end: postbit_attachments_attachment --><br /> <br />Gruß Uwe]]></description>
			<content:encoded><![CDATA[Hallo,<br /> <br />anbei der Simple Date Picker sowohl als AddIn als zum Einbinden in ein Projekt (als Stand Alone benannt).<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/zip.png" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51858" target="_blank" title="09.05.2024, 10:40">DatePicker AddIn und Stand Alone.zip</a> (Größe: 183,92 KB / Downloads: 38)
<!-- end: postbit_attachments_attachment --><br /> <br />Gruß Uwe]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Inputbox - mit zwei Textboxen (z.B. Login)]]></title>
			<link>https://www.clever-excel-forum.de/Thread-Inputbox-mit-zwei-Textboxen-z-B-Login</link>
			<pubDate>Tue, 26 Mar 2024 13:28:38 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-Inputbox-mit-zwei-Textboxen-z-B-Login</guid>
			<description><![CDATA[Hallo liebe Leserin, lieber Leser,<br /><br />manchmal benötigt man eine Inputbox, in der in zwei oder mehr Editboxen unterschiedlicher Text eingegeben werden kann. Die normale Inputbox bietet aber nur eine Eingabe an.<br /><br />Wenn mehrere Editboxen gewünscht werden, werden diese meistens in eine Userform eingebettet.<br /><br />Dass es aber auch anders geht, möchte ich mit diesem kleinen Beispiel mal aufzeigen.<br /><br />Als Beispiel erstellen wir uns eine Login-Dialogbox, in der sowohl der Username wie auch das Passwort eingegeben werden kann.<br />Hierzu bauen wir die Standard-Inputbox einfach passend um.<br /><br />Zunächst beschaffen wir uns z.B. über den Timer das Handle (interner Zeiger auf die Inputbox) und können nun loslegen mit unserer Manipulation.<br /><br />Wir fügen zwei Überschriften (Static) und zwei neue Editboxen hinzu und legen sie über die vorher ausgeblendete Editbox.<br />Als Schriftart übernehmen wir den Font aus der Ursprungseditbox. <br />Nach dem Hinzufügen der gewünschten Elemente ist unsere Login-Dialogbox auch schon fertig.<br /><br />Nach einer Eingabe in eines der Editboxen werden beide Inhalte in der Originaleditbox zusammen geführt. Damit überlassen wir der Inputbox das Managen der Rückgabe und haben keine Arbeit damit.<br /><br />Im zweiten Beispiel (in anlegender Datei) fügen wir noch ein ansprechendes Icon hinzu. Da die Editboxen hier untereinander liegen, wird noch die Funktion zur Fenstergrößenanpassung benötigt.<br /><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51368" target="_blank" title="26.03.2024, 15:28">Inputbox_Login.png</a> (Größe: 19,05 KB / Downloads: 71)
<!-- end: postbit_attachments_attachment --><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51366" target="_blank" title="26.03.2024, 15:22">Inputbox_Userpasswort.xlsb</a> (Größe: 52,06 KB / Downloads: 16)
<!-- end: postbit_attachments_attachment --><br /><br />Und nun viel Spaß beim Ausprobieren...<br /><br />Gruß<br />Karl-Heinz]]></description>
			<content:encoded><![CDATA[Hallo liebe Leserin, lieber Leser,<br /><br />manchmal benötigt man eine Inputbox, in der in zwei oder mehr Editboxen unterschiedlicher Text eingegeben werden kann. Die normale Inputbox bietet aber nur eine Eingabe an.<br /><br />Wenn mehrere Editboxen gewünscht werden, werden diese meistens in eine Userform eingebettet.<br /><br />Dass es aber auch anders geht, möchte ich mit diesem kleinen Beispiel mal aufzeigen.<br /><br />Als Beispiel erstellen wir uns eine Login-Dialogbox, in der sowohl der Username wie auch das Passwort eingegeben werden kann.<br />Hierzu bauen wir die Standard-Inputbox einfach passend um.<br /><br />Zunächst beschaffen wir uns z.B. über den Timer das Handle (interner Zeiger auf die Inputbox) und können nun loslegen mit unserer Manipulation.<br /><br />Wir fügen zwei Überschriften (Static) und zwei neue Editboxen hinzu und legen sie über die vorher ausgeblendete Editbox.<br />Als Schriftart übernehmen wir den Font aus der Ursprungseditbox. <br />Nach dem Hinzufügen der gewünschten Elemente ist unsere Login-Dialogbox auch schon fertig.<br /><br />Nach einer Eingabe in eines der Editboxen werden beide Inhalte in der Originaleditbox zusammen geführt. Damit überlassen wir der Inputbox das Managen der Rückgabe und haben keine Arbeit damit.<br /><br />Im zweiten Beispiel (in anlegender Datei) fügen wir noch ein ansprechendes Icon hinzu. Da die Editboxen hier untereinander liegen, wird noch die Funktion zur Fenstergrößenanpassung benötigt.<br /><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/image.gif" title="PNG Image" border="0" alt=".png" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51368" target="_blank" title="26.03.2024, 15:28">Inputbox_Login.png</a> (Größe: 19,05 KB / Downloads: 71)
<!-- end: postbit_attachments_attachment --><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51366" target="_blank" title="26.03.2024, 15:22">Inputbox_Userpasswort.xlsb</a> (Größe: 52,06 KB / Downloads: 16)
<!-- end: postbit_attachments_attachment --><br /><br />Und nun viel Spaß beim Ausprobieren...<br /><br />Gruß<br />Karl-Heinz]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[MsgBox - Buttonbeschriftung, Icon ändern]]></title>
			<link>https://www.clever-excel-forum.de/Thread-MsgBox-Buttonbeschriftung-Icon-aendern</link>
			<pubDate>Tue, 26 Mar 2024 13:20:26 +0000</pubDate>
			<dc:creator><![CDATA[<a href="https://www.clever-excel-forum.de/member.php?action=profile&uid=18350">volti</a>]]></dc:creator>
			<guid isPermaLink="false">https://www.clever-excel-forum.de/Thread-MsgBox-Buttonbeschriftung-Icon-aendern</guid>
			<description><![CDATA[Hallo liebe Leserin, lieber Leser,<br /><br />manchmal möchte man die Schaltflächen in seiner Msgbox individuell beschriften und vielleicht sogar das Icon ändern können.<br /><br />Hierfür gibt es jede Menge Möglichkeiten. Zum Beispiel kann man die Messagebox-Funktion aus der Windows-API verwenden und hier die Buttons ändern.<br />Neben der Beschriftung können natürlich auch die Positionen und Größen der Buttons oder auch der Text und das Icon nachträglich (mehrfach) geändert werden, z.B. für einen Countdown usw.. <br />Ein weites Feld.<br /><br />Heute möchte ich hier aber nur eine Minmalversion unter Benutzung der Excel-MsgBox aufzeigen, die für eine einfache Buttonbeschriftung reicht....<br /><br /><br />Eine Möglichkeit, eine MsgBox mit vier Buttons zu erstellen wurde bereits hier aufgezeigt.<br /><a href="https://www.clever-excel-forum.de/Thread-Msgbox-mit-vier-Button-und-eigenem-Icon" target="_blank" rel="noopener" class="mycode_url">https://www.clever-excel-forum.de/Thread...genem-Icon</a><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51365" target="_blank" title="26.03.2024, 15:18">MsgBoxExMin.xlsb</a> (Größe: 40,77 KB / Downloads: 13)
<!-- end: postbit_attachments_attachment --><br /><br />Und nun viel Spaß beim Ausprobieren...<br /><!--- erstellt am 26.03.2024 12:06:22 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 960px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus120622' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA120622' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> uElapse <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpTimerFunc <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>KillTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetActiveWindow</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; () <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetDlgItemTextA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hDlg <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDDlgItem <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpString <font color=blue>As String</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SendDlgItemMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hDlg <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDDlgItem <font color=blue>As Long</font>, <font color=blue>ByVal</font> wMsg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> lParam <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><br><font color=blue>Dim</font> mhTimer <font color=blue>As LongPtr</font>, mhIcon&nbsp;&nbsp;<font color=blue>As LongPtr</font>, msBtns() <font color=blue>As String</font><br><br><strong><font color=blue>Function</font> MsgboxEx(sText <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> iDlgStyle <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> sCaption <font color=blue>As String</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> sBtnText <font color=blue>As String</font> = &quot;<font color=red>OK</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> sIcon <font color=blue>As String</font>) <font color=blue>As String</font><br>&nbsp;&nbsp;mhIcon = <font color=#ff6060>0</font><br>&nbsp;&nbsp;<font color=blue>If</font> sIcon &lt;&gt; &quot;<font color=red></font>&quot; <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mhIcon = Tabelle2.OLEObjects(sIcon).<font color=blue>Object</font>.Picture.Handle <font color=#00a000>&nbsp;' &lt;&lt;&lt;anpassen&gt;&gt;&gt;</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;msBtns = <font color=#5050f0>Split</font>(&quot;<font color=red>,,,</font>&quot; & sBtnText & &quot;<font color=red>,,</font>&quot;, &quot;<font color=red>,</font>&quot;)<br>&nbsp;&nbsp;msBtns(<font color=#ff6060>1</font>) = msBtns(<font color=#ff6060>3</font>): msBtns(<font color=#ff6060>2</font>) = <font color=#5050f0>IIf</font>(<font color=blue>UBound</font>(msBtns) = <font color=#ff6060>5</font>, msBtns(<font color=#ff6060>1</font>), msBtns(<font color=#ff6060>4</font>))<br>&nbsp;&nbsp;iDlgStyle = (iDlgStyle <font color=blue>And</font> <font color=#ff6060>&HFFFF8</font>) <font color=blue>Or</font> (<font color=blue>UBound</font>(msBtns) - <font color=#ff6060>5</font>)<br><br>&nbsp;&nbsp;mhTimer = <font color=#d000d0>SetTimer</font>(<font color=#ff6060>0&</font>, <font color=#ff6060>0&</font>, <font color=#ff6060>10</font>, <font color=blue>AddressOf</font> SetIconButtontext)<br>&nbsp;&nbsp;MsgboxEx = <font color=#5050f0>Replace</font>(msBtns(<font color=blue>MsgBox</font>(sText, iDlgStyle, sCaption)), &quot;<font color=red>&</font>&quot;, &quot;<font color=red></font>&quot;)<br><strong><font color=blue>End Function</font></strong><br><br><strong><font color=blue>Private Sub</font> SetIconButtontext()</strong><br><font color=#00a000>' Setzt die Button-Texte und das Icon individuell</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iBtn <font color=blue>As Integer</font><br><br>&nbsp;&nbsp;<font color=#d000d0>KillTimer</font> <font color=#ff6060>0&</font>, mhTimer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timer l&ouml;schen,&nbsp;&nbsp; Static-ID=20&nbsp;&nbsp;&H170=STM_SETICON</font><br>&nbsp;&nbsp;<font color=blue>If</font> mhIcon &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>SendDlgItemMessageA</font> <font color=#d000d0>GetActiveWindow</font>, <font color=#ff6060>20</font>, <font color=#ff6060>&H170</font>, mhIcon, <font color=#ff6060>0</font><br>&nbsp;&nbsp;<font color=blue>For</font> iBtn = <font color=#ff6060>1</font> <font color=blue>To</font> <font color=#ff6060>5</font>:&nbsp;&nbsp;<font color=#d000d0>SetDlgItemTextA</font> <font color=#d000d0>GetActiveWindow</font>, iBtn, msBtns(iBtn): <font color=blue>Next</font> iBtn<br><strong><font color=blue>End Sub</font></strong><br><br><font color=#00a000>' ###############################</font><br><strong><font color=blue>Private Sub</font> CommandButton3_Click()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> (MsgboxEx(&quot;<font color=red>Ein Test</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>Meine Msgbox</font>&quot;, &quot;<font color=red>&Nehmen,&Ablehnen</font>&quot;, &quot;<font color=red>Freigericht</font>&quot;))<br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></description>
			<content:encoded><![CDATA[Hallo liebe Leserin, lieber Leser,<br /><br />manchmal möchte man die Schaltflächen in seiner Msgbox individuell beschriften und vielleicht sogar das Icon ändern können.<br /><br />Hierfür gibt es jede Menge Möglichkeiten. Zum Beispiel kann man die Messagebox-Funktion aus der Windows-API verwenden und hier die Buttons ändern.<br />Neben der Beschriftung können natürlich auch die Positionen und Größen der Buttons oder auch der Text und das Icon nachträglich (mehrfach) geändert werden, z.B. für einen Countdown usw.. <br />Ein weites Feld.<br /><br />Heute möchte ich hier aber nur eine Minmalversion unter Benutzung der Excel-MsgBox aufzeigen, die für eine einfache Buttonbeschriftung reicht....<br /><br /><br />Eine Möglichkeit, eine MsgBox mit vier Buttons zu erstellen wurde bereits hier aufgezeigt.<br /><a href="https://www.clever-excel-forum.de/Thread-Msgbox-mit-vier-Button-und-eigenem-Icon" target="_blank" rel="noopener" class="mycode_url">https://www.clever-excel-forum.de/Thread...genem-Icon</a><br /><br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.clever-excel-forum.de/images/attachtypes/xlsb.png" title="" border="0" alt=".xlsb" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=51365" target="_blank" title="26.03.2024, 15:18">MsgBoxExMin.xlsb</a> (Größe: 40,77 KB / Downloads: 13)
<!-- end: postbit_attachments_attachment --><br /><br />Und nun viel Spaß beim Ausprobieren...<br /><!--- erstellt am 26.03.2024 12:06:22 (CEF-Forum) von volti's VBA2HTML ---><div class="codeblock"><div class="title">Code:</div><div style='position: relative; width: 960px; font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; border-width: 2px; border-style: groove; border-color: #ff9966; padding-left: 5px; margin-left: 2px;'><div style='line-height: 5px;'><br></div><div id='PlusMinus120622' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee; height: 400px; width: 99.6%; overflow: auto;&nbsp;&nbsp;position: relative; top:-10px;'><!--- VBA-Code ---><div id='VBA120622' style='font-family: Courier New, Arial; font-size: 10pt; color: #800000; line-height: 16px; font-weight: normal; background-color: #ffffee;'><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> uElapse <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpTimerFunc <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>KillTimer</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hwnd <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDEvent <font color=blue>As LongPtr</font>) <font color=blue>As Long</font><br><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>GetActiveWindow</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; () <font color=blue>As LongPtr</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SetDlgItemTextA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hDlg <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDDlgItem <font color=blue>As Long</font>, <font color=blue>ByVal</font> lpString <font color=blue>As String</font>) <font color=blue>As Long</font><br><font color=blue>Private Declare PtrSafe Function</font> <font color=#d000d0>SendDlgItemMessageA</font> <font color=blue>Lib</font> &quot;<font color=red>user32</font>&quot; ( _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> hDlg <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> nIDDlgItem <font color=blue>As Long</font>, <font color=blue>ByVal</font> wMsg <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>ByVal</font> wParam <font color=blue>As LongPtr</font>, <font color=blue>ByVal</font> lParam <font color=blue>As LongPtr</font>) <font color=blue>As LongPtr</font><br><br><font color=blue>Dim</font> mhTimer <font color=blue>As LongPtr</font>, mhIcon&nbsp;&nbsp;<font color=blue>As LongPtr</font>, msBtns() <font color=blue>As String</font><br><br><strong><font color=blue>Function</font> MsgboxEx(sText <font color=blue>As String</font>, _</strong><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional ByVal</font> iDlgStyle <font color=blue>As Long</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> sCaption <font color=blue>As String</font>, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> sBtnText <font color=blue>As String</font> = &quot;<font color=red>OK</font>&quot;, _<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <font color=blue>Optional</font> sIcon <font color=blue>As String</font>) <font color=blue>As String</font><br>&nbsp;&nbsp;mhIcon = <font color=#ff6060>0</font><br>&nbsp;&nbsp;<font color=blue>If</font> sIcon &lt;&gt; &quot;<font color=red></font>&quot; <font color=blue>Then</font><br>&nbsp;&nbsp;&nbsp;&nbsp; mhIcon = Tabelle2.OLEObjects(sIcon).<font color=blue>Object</font>.Picture.Handle <font color=#00a000>&nbsp;' &lt;&lt;&lt;anpassen&gt;&gt;&gt;</font><br>&nbsp;&nbsp;<font color=blue>End If</font><br>&nbsp;&nbsp;<br>&nbsp;&nbsp;msBtns = <font color=#5050f0>Split</font>(&quot;<font color=red>,,,</font>&quot; & sBtnText & &quot;<font color=red>,,</font>&quot;, &quot;<font color=red>,</font>&quot;)<br>&nbsp;&nbsp;msBtns(<font color=#ff6060>1</font>) = msBtns(<font color=#ff6060>3</font>): msBtns(<font color=#ff6060>2</font>) = <font color=#5050f0>IIf</font>(<font color=blue>UBound</font>(msBtns) = <font color=#ff6060>5</font>, msBtns(<font color=#ff6060>1</font>), msBtns(<font color=#ff6060>4</font>))<br>&nbsp;&nbsp;iDlgStyle = (iDlgStyle <font color=blue>And</font> <font color=#ff6060>&HFFFF8</font>) <font color=blue>Or</font> (<font color=blue>UBound</font>(msBtns) - <font color=#ff6060>5</font>)<br><br>&nbsp;&nbsp;mhTimer = <font color=#d000d0>SetTimer</font>(<font color=#ff6060>0&</font>, <font color=#ff6060>0&</font>, <font color=#ff6060>10</font>, <font color=blue>AddressOf</font> SetIconButtontext)<br>&nbsp;&nbsp;MsgboxEx = <font color=#5050f0>Replace</font>(msBtns(<font color=blue>MsgBox</font>(sText, iDlgStyle, sCaption)), &quot;<font color=red>&</font>&quot;, &quot;<font color=red></font>&quot;)<br><strong><font color=blue>End Function</font></strong><br><br><strong><font color=blue>Private Sub</font> SetIconButtontext()</strong><br><font color=#00a000>' Setzt die Button-Texte und das Icon individuell</font><br>&nbsp;&nbsp;<font color=blue>Dim</font> iBtn <font color=blue>As Integer</font><br><br>&nbsp;&nbsp;<font color=#d000d0>KillTimer</font> <font color=#ff6060>0&</font>, mhTimer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=#00a000>&nbsp;' Timer l&ouml;schen,&nbsp;&nbsp; Static-ID=20&nbsp;&nbsp;&H170=STM_SETICON</font><br>&nbsp;&nbsp;<font color=blue>If</font> mhIcon &lt;&gt; <font color=#ff6060>0</font> <font color=blue>Then</font> <font color=#d000d0>SendDlgItemMessageA</font> <font color=#d000d0>GetActiveWindow</font>, <font color=#ff6060>20</font>, <font color=#ff6060>&H170</font>, mhIcon, <font color=#ff6060>0</font><br>&nbsp;&nbsp;<font color=blue>For</font> iBtn = <font color=#ff6060>1</font> <font color=blue>To</font> <font color=#ff6060>5</font>:&nbsp;&nbsp;<font color=#d000d0>SetDlgItemTextA</font> <font color=#d000d0>GetActiveWindow</font>, iBtn, msBtns(iBtn): <font color=blue>Next</font> iBtn<br><strong><font color=blue>End Sub</font></strong><br><br><font color=#00a000>' ###############################</font><br><strong><font color=blue>Private Sub</font> CommandButton3_Click()</strong><br>&nbsp;&nbsp;<font color=blue>MsgBox</font> (MsgboxEx(&quot;<font color=red>Ein Test</font>&quot;, <font color=#a000c0>vbInformation</font>, &quot;<font color=red>Meine Msgbox</font>&quot;, &quot;<font color=red>&Nehmen,&Ablehnen</font>&quot;, &quot;<font color=red>Freigericht</font>&quot;))<br><strong><font color=blue>End Sub</font></strong></div></div><div style='line-height: 5px;'><br></div></div></div><!--- Signatur ---><div><font size=2 face=Arial>_________<br>viele Gr&uuml;&szlig;e<br><b><span style='font-family: Lucida Calligraphy; color: #802000'>Karl-Heinz</span></b></font></div>]]></content:encoded>
		</item>
	</channel>
</rss>