PDA

Vollständige Version anzeigen : Felder auswerten


Deichhuhnumsetzer
25.03.2009, 18:53
Moin zusammen,

ich habe sechs Felder, die entweder mit A , B, C gefüllt sind.

Ich möchte in einem weiteren Feld den am häufigsten vorkommenden Buchstaben darstellen. In Excel selbst habe das hinbekommen, aber we geht das mit VBA ?

Danke

pefeu
25.03.2009, 19:54
Moin alleine,

angenommen deine 6 Felder sind A1:A6 in denen die 3 Buchstaben A, B, oder C stehen, das Ergebnis erscheint in B1
<FONT FACE="Arial,FixedSys"Size=2>
<Blockquote>
<FONT COLOR=#0000FF>Option Explicit</FONT>

<FONT COLOR=#0000FF>Public Sub</FONT>&nbsp;Maximum()

<FONT COLOR=#0000FF>Dim</FONT>&nbsp;vWerte&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As Variant</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;iIndex&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As Integer</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;aTemp(2)&nbsp;&nbsp;<FONT COLOR=#0000FF>As Integer</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;iMax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As Integer</FONT>

&nbsp;&nbsp;&nbsp;Range("B1").Value&nbsp;=&nbsp;""
&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Erase</FONT>&nbsp;aTemp

&nbsp;&nbsp;&nbsp;vWerte&nbsp;=&nbsp;Range("A1:A6").Value
&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>For</FONT>&nbsp;iIndex&nbsp;=&nbsp;1&nbsp;<FONT COLOR=#0000FF>To</FONT>&nbsp;6
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Select Case</FONT>&nbsp;UCase(vWerte(iIndex,&nbsp;1))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Case</FONT>&nbsp;"A":&nbsp;aTemp(0)&nbsp;=&nbsp;aTemp(0)&nbsp;+&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Case</FONT>&nbsp;"B":&nbsp;aTemp(1)&nbsp;=&nbsp;aTemp(1)&nbsp;+&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Case</FONT>&nbsp;"C":&nbsp;aTemp(2)&nbsp;=&nbsp;aTemp(2)&nbsp;+&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End Select</FONT>
&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Next</FONT>&nbsp;iIndex

&nbsp;&nbsp;&nbsp;iMax&nbsp;=&nbsp;WorksheetFunction.Max(aTemp)

&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>For</FONT>&nbsp;iIndex&nbsp;=&nbsp;0&nbsp;<FONT COLOR=#0000FF>To</FONT>&nbsp;2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;aTemp(iIndex)&nbsp;=&nbsp;iMax&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;Range("B1").Value&nbsp;=&nbsp;""&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Range("B1").Value&nbsp;=&nbsp;Chr(Asc("A")&nbsp;+&nbsp;iIndex)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Else</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Range("B1").Value&nbsp;=&nbsp;Range("B1")&nbsp;&amp;&nbsp;"&nbsp;/&nbsp;"&nbsp;&amp;&nbsp;Chr(Asc("A")&nbsp;+&nbsp;iIndex)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End If</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End If</FONT>
&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Next</FONT>&nbsp;iIndex

<FONT COLOR=#0000FF>End Sub</FONT>&nbsp;

</Blockquote>
<FONT FACE="Courier New,FixedSys"Size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Code eingefügt mit <b><a href="http://rtsoftwaredevelopment.de" target="_blank">Syntaxhighlighter 4.4</a></b></FONT>
<FONT FACE="Arial,FixedSys"Size=2>
Gruß Peter

Deichhuhnumsetzer
25.03.2009, 20:18
Das geht klasse ! Vielen Dank


Allerdings ist mir jetzt aufgefallen, dass als Ergebnis nur ein Buchstabe herauskommen darf. Kann man dem Ganzen noch mitgeben, dass bei gleicher Anzahl von zwei Buchstaben der im Alphabet zuerst vorkommende genommen wird ?

und

Angenommen ich implementiere die Felder in ein Userform

Textfeld 1
Textfeld 2
Textfeld 3
Textfeld 4
Textfeld 5
Textfeld 6

und will das Ergebnis in Textfeld 7 ausgeben.

Wie bezeichnet man dann den Bereich aus denen der Wert ausgewählt werden soll ?

Für mich irgendwie noch ein Buch mit sieben Siegeln .... hmmm

pefeu
25.03.2009, 20:23
Moin,

hier noch meine Test-Mappe mit Dokumentation des Makros.

Gruß Peter

pefeu
25.03.2009, 20:26
Moin,

wenn das aus TextBoxes kommt, gibt es keinen Bereich,
dann musst du (falls du mit Array arbeiten möchtest) die einzelnen TextBoxes in einer Schleife in den Array einstellen.

Gruß Peter

Deichhuhnumsetzer
25.03.2009, 20:30
... für deine Hilfe. Ich glaube dass kann ich aus den vielen Büchern, die ich hier habe vielleicht selbst ermitteln :)

Gute Nacht

pefeu
25.03.2009, 20:47
Moin,

hier noch eine Variante mit TextBoxes in einem UserForm.

Gruß Peter

Deichhuhnumsetzer
26.03.2009, 06:25
Guten Morgen Peter,

das ist genau das, was ich gesucht habe. Ich danke dir für deine großartige Hilfe.

LG