ComboBox

Hallo
Ich lerne seit ein paar tagen Visual Basic und habe bisher noch nichts über die ComboBox erfahren. Ich habe es sch9on verushct aber nicht hinbekommen: Wie kann man mehrere Wörter zum auswählen in die ComboBox reinmachen ? Gibt es da irgendein Menü ?
Danke schonmal im vorraus

mfg nickey

Hallo,
hoffe hab dich richtig verstanden …
unter eigenschaftsfenster
List kannste eintragen

Lg
udo

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Danke genau das meinte ich aber wen ich das programm ausführe steht am anfang noch combo eins und wen ich dan wo draufklicke und dan auf den pfeil runter (sodass die liste geöffnet wird) steht es nicht dabei kann man da acuh schon etwas eintragen (da wo combo 1 steht)? ich weiß man kann es aber dan wird es doch wieder gelöscht oder ?

Sorry für den spam aber:
ich habe einen boutton und möchte ihm eine aufgabe geben. Bisher kenne ich nur End aber ich möchte, dass sich ein neues fenster öffnet. wie muss ich den code schreiben ?

das mit der comboboxfrage hat sich erledigt

Achja ich hab doh noch was vergessen *schähm* ich suche eine seite wo beschrieben ist, wie man sich einen login vbereich erstellt (also eine passwortgeschützte seite)

Hallo Nickey.

Ein konkreter Befehl zum Öffnen eines neuen Fensters lautet (Prinzip):

Form1.Show

Dies funktioniert aber nur, wenn das Formular den Namen „Form1“ hat.

Es wäre schon wichtig, daß das Problem oder das Ziel genau beschrieben wird.

Möchtest Du mit diesem neuen Fenster einen Dialog öffnen?
Möchtest Du ein bereits angezeigtes Formular noch ein zweites Mal anzeigen, so wie man in Excel immer neue Dateien öffnen kann?

Viele Grüße
Carsten

Ich meinte das so, dass wen man als beispiel ein fenster hat und das man dan auf einen knopf drückt, dass das alte fenster sich schließt und an der stelle ein neues fenster geöffnet wird. Und dan hab ich nochmal ne frage: Also ich mache ein fenster mit einem label, indem steht: Geben sie ihren ´vornamen ein. dan ist dort ein feld zum eingeben. dan kommt geben sie ihren nachnamen ein. dan is da ein feld zum eingeben. dan klickt man auf einen button und ein neues fenster öffnet sich. Dort wird dan angezeigt: Ihr Name ist … (was man eingegeben hat) Ich weiß das man es mit variablen machen muss aber nicht genau wie.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Nickey.

Für Deine beschriebene Aufgabe kannst Du die „vorgefertigten“ Eingabedialoge (InputBox) und Meldedialoge (MessageBox) verwenden.

Hier mal ein kleines Beispiel dazu:

Private Vorname As String 'dimensioniere die private Variable "Vorname" als DatenTyp Zeichenfolge
Private Nachname As String 'dimensioniere die private Variable "Nachmname" als Daten-Typ Zeichenfolge
 
Private Sub Form1\_Click()
 Vorname = InputBox("Bitte geben Sie Ihren Vornamen ein", App.Title)
 If Len(Vorname) = 0 Then Exit Sub
 'Wenn die Länge der Zeichenfolge 0 ist, soll die Prozedur verlassen werden.
 'Die Länge ist auch 0 Zeichen, wenn der Benutzer auf "Abbrechen" klickt.
 
 Nachname = InputBox("Bitte geben Sie Ihren Nachnamen ein", App.Title)
 If Len(Nachname) = 0 Then Exit Sub
 
 MsgBox "Sie heißen also " & Vorname & " " & Nachname & "."
End Sub

Du kannst dieses Beispiel ausprobieren, indem Du den Code in das leere Codefenster eines Formulares mit dem Namen ‚Form1‘ einfügst. Starte dann das Project (F5) und klick mit der Maus auf das Formular.

Wenn Du dieses Beispiel lieber mir eigenen Formularen programmieren möchtest, dann wird es ein bißchen komplizierter (aber nicht extrem). Du benötigst dann drei Formulare und ein Modul.

Soweit erst einmal.

Viele Grüße
Carsten

Hallo Nickey,

man sagt das aller Anfang schwer ist. Wenn du wirklich das Programmieren erlenen möchtest, so fange mit etwas einfachen an und erweitere es immer weiter. Mit neuen Steuerelementen , Klassen, Collection etc.
Schaue dir die Eigenschaften der Objekte an und verstelle sie. Schaue dir an was passiert :smile: So wirst du dann eines Tages mal ein lauffaehiges Programm auf die Beine stellen :wink:

Auch ein Buch zur Programmiersprache ist nicht schlecht. Ok diese Lektuere sind rel. teuer aber teilweise gibt es etwas im Internet zum Kostenlosen download.

Aber nun zu deinen Problemen.

Erstelle ein neues Project. Füge mal ein Modul hinzu, Dazu noch 2 Formen! Die Formen haben dann den Namen Form1 und Form 2
Auf die Form 1 setze mal 3 Comboboxen!
Bei der ersten Combobox stelle die Eigenschaft Style auf 0, bei der zweiten Combobox stellen die Eigenschaft Style auf 1 und bei der 3 Combobox die Eigenschaft Style auf den Wert 2.

Setze dazu noch 2 Labels auf die Form

Die Eigenschat Caption von Label1 setzt du auf Vorname
Dahinter setzt du eine textbox. Der Name ist Text1, den wir so lassen

Die Eigenschat Caption von Label2 setzt du auf Password
Dahinter setzt du eine textbox. Der Name ist Text2, den wir so lassen
Die Eigenschaft Passwordchar setzt du auf *

Nun setze mal noch 2 Schaltflächen ( Command1 und Command2 ) auf die Form. Die Caption Eigenschaft der Buttons setzt du auf " Password anzeigen und Listeintrag.

Auf die Form 2 setzt du einfach nur ein Label und mehr nicht.

Nun kopiere mal folgenden Code in die Form 1

Option Explicit

Private Sub Command1\_Click() 'Password anzeigen
 Action = False
 vData = "Vorname: " & Text1 & vbNewLine & "Password: " & Text2
 Form2.Show
End Sub

Private Sub Command2\_Click()
Action = True
vData = "Wert Combo1: " & Combo1.Text & vbNewLine & "Wert Combo2: " & Combo2.Text & vbNewLine & "Wert Combo3:" & Combo3.List(Combo3.ListIndex)
Form2.Show
End Sub

Private Sub Form\_Load()
Dim i As Long
 For i = 1 To 500
 Combo1.AddItem i
 Combo2.AddItem i \* CInt(i \* Rnd) + 1
 Combo3.AddItem "Eintrag: " & i
 Next i
 Combo1.ListIndex = 15
 Combo2.ListIndex = 0
 Combo3.ListIndex = 127
End Sub

Erklärung Form1:
Option Explicit -> JEde Variable muss declariert werden und es wird überprüft ob dies der Fall ist, ansonsten schimpft VB. Ergo … immer mit hinschreiben :smile:

Private Sub Command1_Click() 'Password anzeigen
Diese Sub wird ausgeführt wenn du auf Command1 klickst :wink:

Action = False
Die Variable die Öffentlich declariert ist als Boolean( kann „wahr“(true) und Falsch(false) anehmen. Wahr = -1, Falsch =0) wird
der Wert False (0, Falsch) zugewiesen.( Variable = Zuweisungswert)

vData = "Vorname: " & Text1 & vbNewLine & "Password: " & Text2
Die Variable vData die Öffentlich als String declariert ist wird ein Wert zugewiesen
Du kannst Wert miteinander verbinden durch das zeichen & . Zeichenfolgenden muessen immer in „“ stehen.
Wenn Comboboxen den Style Eigenschaft auf 0 oder 1 haben, so kannst du dich der Eigenschaft „Text“ bedienen. Das ist der Text den du liest. Hat sie aber den Style auf 2, so geht das net mehr. In dem Fall bekommst du wert folgendermassen.
Die Eigenschat List(x) liefert dir den Wert an Stelle x. Listindex liefert dir die aktuelle Position. In dem Falle also Combo2.list(combo2.listindex )
vbnewline ist eine Konstante in VB die ein Zeilenumbruch darstellt. Alternativ kannst du auch chr(13) & chr(10) nehmen oder vbcrlf.

Form2.Show
Das Formular mit dem Namen Form 2 wird nun angezeigt!

End Sub

Die Sub ist zu ende :smile:

Die Sub Private Sub Command2_Click()erklärt sich ja nun von selbst :smile:

und den Code in die Form 2

Option Explicit

Private Sub Form\_Load()
If Action Then
 Me.Caption = "Aufruf von Command2"
Else
 Me.Caption = "Aufruf von Command1"
End If
Label1.Caption = vData
End Sub

Erklärung:

Private Sub Form_Load()
Diese Sub wird beim laden des Formulares aufgerufen

If Action Then
Me.Caption = „Aufruf von Command2“
Else
Me.Caption = „Aufruf von Command1“
End If

if Action ist das selbe wie if Action=true
Wenn Action den Wert True hat so wird dieser Teil ausgeführt, anderfalls der Abschnitt unter Else
Ein if Abschnitt geht immer von If Vergleichsausdruck bis Else, Elseif Vergleichausdruck oder wenn dies nicht angeben bis End if

Mit Me können wir das aktive Formular ansprechen. In dem Fall Form2. Die Eigenschaft Caption setzt den text in der Titelleiste!

In dem Fall wird angezeigt je nachdem ob Action true oder false ist, das der Aufruf von Command1 oder command 2 erfolgt ist.

Label1.Caption = vData
Dem Label wird der Eigenschaft Caption , der Wert der in vdata steht zugewiesen und angezeigt.

End Sub
Die Sub ist zu ende :smile:

den Code in das Modul

Option Explicit

Private PW As String 
Public Action As Boolean
Public vData As String

Erklärung:

Private PW As String
Es wird eine Variable PW declariert die Private ist. Dies bedeutet das sie nur in dem Modul zur verfügung steht!
Ich habe das mal zu Testzwecken geschrieben!

Ein Zuweisung in der Form 1 von PW = text2 würde zu einem Fehler führen!

Public Action As Boolean
Es wird eine Variable Action erstellt vom Datentyp Boolean.
Boolean kann 0 oder -1 erhalten. Das war das mit dem true und False :wink: Desweiteren ist diese Variable öffentlich. Das heisst, egal wo man sich im Programm befindet. Es kann immer darauf zugegriffen werden.

Public vData As String
Es wird eine Variable vData erstellt die eine Zeichenfolge erhalten kann :smile: Über die Länge der Zeichenfolge streitet man sich immer. die eine Sagen 2 GByte, die anderen, das was der rechner hergibt! Ich selbst tendiere zu den 2 GByte. Aber soviel an Daten wirst du sicherlich nicht zusammenbekommen *zwinker*

Nun starte mal das prog und schaue was passiert. Du kannst das programm auch im Debug modus laufen lassen. druecke dazu einfach nur F8 immer und immer wieder :wink:

Da siehst du was passiert , vielleicht verstehst du es dann ein wenig mehr.

So ich hoffe ich konnte dir das VB ein wenig naeher zu bringen :smile:
Ein kleiner Tipp noch. Versuche mal das Notepad nachzu bauen. So habe ich damals angefangen. Dabei lernt man viel und rasch. Somal man das bis ins unendliche erweitern kann :wink:

MfG Alex

Hallo Anno,

Auch ein Buch zur Programmiersprache ist nicht schlecht. Ok
diese Lektuere sind rel. teuer aber teilweise gibt es etwas im
Internet zum Kostenlosen download.

die sind nicht rel. teuer, die kosten abs. immer 100 DM oder 50 € :frowning:
Aber, Pdf oder Doc hin oder her, ich habe lieber ein Buch in der Hand,
Das am Bildschirm ist mir zu unübersichtlich, ich will altmodisch blättern und nicht scrollen.
okay, habe wenig Geld, deshalb kaufe ich jetzt z.B. Bücher preiswert zu VBA für XL97, auch wenn jetzt schon XL2007 beta auf dem Markt ist, zum Lernen langt das dicke, kostet mich pro Buch 5-10 Eus, Bücher für XL2007 50…
Gilt sicher auch für euer Vbx.
Ansonsten haste Recht, learning by doing *g
Btw, du bist nicht zufällig in der Lage einen Html-Frame einer Webseite auszulesen und noch wichtiger in einen anderen Frame der gleichen Seite einen Text „reinzuschicken“ ? Fenstertitel, Frameadressen, hwnd, SessID usw. sind bekannt.
Problem ist wohl, ist kein „fester“ Frame sonder n ein Chatfenster wo laufend neue Einträge kommen:frowning:
Gruß
Reinhard

Hallo Reinhard,

verstehe ich das richtig. Du hast ein HTML File. Dieser besteht aus x Frames. Sagen wir mal Frame „Inhalt“, Frame „Top“, Frame „Fussnote“ und Frame „Haupt“
Du möchtest nun bsp. das Frame „Haupt“ auslesen?

Wenn ja, dann ist das realisierbar :wink: Ist eigentlich auch nicht sehr viel Code.

Problematisch wird das einfügen. Dazu müsstest du das File lokal auf den Rechner speichern. Dann die Daten an gewünschter Position eintragen und das File auf dem Server löschen und erneut einen Upload machen. Eigentlich müsste das so funktionieren. Aber die Prozeduren dauern dann halt arg lange und du müsstest die Zugangsdaten zu dem Server (Webspace) haben.
Da du geschrieben hast, das es sich um einen Chat handelt. Müsstest du die Daten aller xyz Sekunden herunterladen. Ändern -> Hochladen und das wäre arg heftig und würde zu rucklern führen!

Anders waere es, je nach Aufbau des Chat’s. Wenn ein User Daten absendet, werden sie dann mit der POST Message abgesendet oder handelt es sich um ein Chat unter Java?

Man müsste mal den Quelltext des Chates sehen, zumindest was passiert wenn man Daten absendet. Dann könnte man noch etwas anderes machen :wink:

Möglichkeiten gibt es viele und realisierbar ist alles :smile: Zur Not halt eine Schnittstelle zum Chat basteln und diese dann nutzen.
Es ist nur eine Frage des Aufwandes.

MfG Alex

Hallo Alex,
vor 3 Jahren landete ich in dem Chat und es existierte eine Exceldatei zur Auswertung eines Quizzes was dort allabendlich stattfindet.
Die bekam ich und staunte was das Ding ist, da ich zwar Excel hatte aber noch nie benutzt hatte. Naja, dann habe ich ein paar Mal ein kwiss gewertet und sellte Mängel in der Tabelle fest. So begann ich mich mit Excel zu beschäftigen. Nach einigen Monaten erfuhr ich dass es Vba gibt, also beschäftigte ich mich damit. Und siehe da, das was ich mir jetzt sehnlichst erwünsche klappte, trotz Nullkenntnis von Html und weniger vba-Wissen als jetzt schaffte ich es, mir ein Html-Fenster zu basteln (indem ich die Original-html-Seite des Chats kopierte, alles was ich nicht brauchte rausschmiss und paar Pfade umbog) und ich konnte mittels dieses Fensters in die Original-webseite Daten „reinschiessen“ und auch Frames auslesen.
Leider haben die Blödis dort vor 2 jahren irgendwas am Seitenaufbau geändert, k.A. Java, css, sonstwas, jedenfalls, seitdem klappte es nicht mehr mit Excel-Vba mit der Seite zu kommunizieren :frowning:
Und das möchte ich unbedingt, in Frames reinschreiben und sie auslesen.
Der Chat den ich meine ist http://www.kilahu.de
Gehe mal bitte da in einen beliebigen Raum und versuche per Excel-Vba was reinzuschreiben bzw die Textmeldungen dort auszulesen.
Programmiersprache ist mir egal, klar Excel-Vba am liebsten, also auch ein C-Programm was ich aus Excel heraus mit Shellexecute o.ä. starte und dem ich hwnd, Fenstertitel o.ä. mitgebe als Parameter wäre mir recht.
Gruß
Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]