Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Platzhalter für Inputbox?

Betrifft: Platzhalter für Inputbox? von: pims
Geschrieben am: 17.08.2008 19:17:55

Hallo,

habe folgendes Problem:

Lasse mir nach Eingabe des Gewerks in einer Inputbox aus einer Tabelle per Zufallsgenerator sieben Firmen für ein bestimmtes Gewerk anzeigen. Die Gewerke, die eine Firma anbietet, stehen durch Komma getrennt in einer Zelle. Bei Firmen, die nur ein Gewerk anbieten, ist das kein Problem, wie kann ich aber Firmen, die mehrere Gewerke anbieten, anzeigen lassen (wo also das gesuchte Gewerk nach dem ersten oder zweiten Komma in der Zelle steht)? Geht das mit einem Platzhalter, wenn ja, wie?

Hier der Code:

option Explicit

Sub Zufallsauswahl()
Randomize Timer

Dim Zeile As Integer
Dim i As Integer, AnzNam As Integer
Dim allezahlen As Integer
Dim ziehung As Integer
Dim gezogen As Integer
Dim endeindex As Integer

Zeile = Range("B65535").End(xlUp).Row
ReDim Nam(Zeile) As String
ReDim Gew(Zeile) As String
For i = 1 To Zeile
Nam(i) = Cells(i, 2).Value
Gew(i) = Cells(i, 3).Value
Next i

Gew(0) = InputBox("Welches Gewerk")
For i = 1 To Zeile
If Gew(0) = Gew(i) Then
Exit For
Else
If Gew(0) <> Gew(i) And i = Zeile Then
MsgBox ("Dieses Gewerk gibt es nicht!")
Exit Sub
Else: End If
End If
Next i
Nam(0) = 7 'InputBox("Wieviele Firmen sollen ausgesucht werden?")
If Nam(0) > Zeile Then MsgBox ("Soviele Firmen sind für dieses Gewerk nicht vorhanden!"): Exit   _
 _
_
Sub
AnzNam = 0
For i = 1 To Zeile
If Gew(0) = Gew(i) Then
AnzNam = AnzNam + 1
Nam(AnzNam) = Nam(i)
Else: End If
Next i

ReDim zuzahl(AnzNam) As Integer
ReDim zahl(Nam(0)) As Integer

endeindex = AnzNam
For allezahlen = 1 To AnzNam
zuzahl(allezahlen) = allezahlen
Next allezahlen

Sheets("Zufallsgenerator").Cells(ziehung + 1, 1) = Gew(0)
'Cells(ziehung + 2, 5) = Nam(0)
For ziehung = 1 To Nam(0)
gezogen = Int(Rnd * endeindex) + 1
zahl(ziehung) = zuzahl(gezogen)
zuzahl(gezogen) = zuzahl(endeindex)
endeindex = endeindex - 1
ReDim Preserve zuzahl(endeindex)
Sheets("Zufallsgenerator").Cells(ziehung + 1, 1) = Nam(zahl(ziehung))
Next ziehung
End Sub



Stehe total auf dem Schlauch. Kann mir bitte jemand helfen!

Danke im voraus

Pims

  

Betrifft: AW: Platzhalter für Inputbox? von: Ramses
Geschrieben am: 17.08.2008 19:33:12

Hallo

"...Stehe total auf dem Schlauch..."

Ich auch, ich kann mir beim besten Willen nicht vorstellen wie das aussehen soll, und was du unter

"..wo also das gesuchte Gewerk nach dem ersten oder zweiten Komma in der Zelle steht).."

verstehst.
Allenfalls würde ich jetzt aus der Hüfte heraus mal auf die Funktionen INSTR(); LEFT() und RIGHT() tippen.
Erläuterungen dazu in der VBA-Online Hilfe

Gruss Rainer


  

Betrifft: AW: Platzhalter für Inputbox? von: Gerd L
Geschrieben am: 17.08.2008 19:55:00

Hallo Pims!

Sub Schlauch()
dim i as integer
For i = 1 to Ubound(Split(Cells(1,1), ",")
Msgbox Split(Cells(1,1), ",") (i)
Next
End Sub



Gruß Gerd


 

Beiträge aus den Excel-Beispielen zum Thema "Platzhalter für Inputbox?"