VBA GUI in Excel

Coolzero82

Lt. Junior Grade
Registriert
Okt. 2011
Beiträge
296
Hallo,
ich habe mir mal ein EInsteiger Buch für VBA in Excel gekauft und bin das mal am durcharbeiten, jetzt wollte ich in einem ersten Versuch mal eine "Gui" Bauen die auf eine "Stammdaten" Tabelle zugreift und dann diverse Felder füllt.

Konkret gibt es in der Stammdatentabelle gefüllte Bereiche von A1:H4, wobei A1-H1 die Überschriften sind.

In der Gui sollte man in der ComboBox1 sowohl aus dem PullDown Menü auswählen wie auch eingeben können die Werte aus denn Spalten A und B und bei einem Treffer sollte dann im PullDown der "Wert aus Spalte A Leerstelle Wert aus Spalte B" angezeigt werden.

Daraufhin sollten dann die weiteren Felder gefüllt werden die in den entsprechenden Zeilen stehen.

Ich könnte mir vorstellen das das über eine IF Then Else Anweisung funktionieren könnte je Feld, allerdings stehe ich mir ziemlich auf dem Schlauch einen funktionierenden Ansatz zu finden

Anbei mal ein Entwurf, bzw. wie es grob aussieht , vielleicht wäre einer so nett und könnte mich etwas in die richtige richtung Schubsen.

Danke
 

Anhänge

  • VBA Formular.7z
    13,6 KB · Aufrufe: 213
Magst du das auf github o.ä legen? Niemand lädt sich gerne fremde vba skripte herunter um sie auf dem eigenen rechner mal zu öffnen
 
  • Gefällt mir
Reaktionen: konkretor, Hayda Ministral, wüstenigel und eine weitere Person
@madmax2010 wenn du dein Excel so konfiguriert hast, das Makros nicht sofort aufgerufen werden kannst dir den Code in aller Ruhe ansehen und das was passiert :)
 
  • Gefällt mir
Reaktionen: Coolzero82
madmax2010 schrieb:
Magst du das auf github o.ä legen? Niemand lädt sich gerne fremde vba skripte herunter um sie auf dem eigenen rechner mal zu öffnen
Kann ich gerne machen, aber es steht auch eigentlich keinerlei Code drin, nur 3 Zeilen Brainstorming.....:-(
Code:
Private Sub ComboBox1_Change()
Dim Wawi As Sting
If Worksheet("Stammdaten").Range("A:B") = Wawi Then
    {


End Sub

Private Sub Label3_Click()

End Sub

Wie gesagt steh da ganz am Anfang, hab da was vor Augen, aber der Weg dahin ist mir noch nicht ganz klar, bzw. wie ich es umsetze kann
 
@Coolzero82 bevor du mit komplexeren gui Dingen anfängst, würde ich mal mehr mit der grundsyntax und einfachen Funktionen anfangen, zb makros schreiben die einen Ablauf erledigen und nichts weiter machen. Eben Zb einen Wert in einer range finden und in eine Zelle schreiben, etc.
Achte auch drauf das du nicht im Code verwendest, das der user leicht ändern kann, wie zb den worksheetnamen. Um ein worksheet anzusprechen, würde ich lieber den Codename des Sheets individual abändern und im vba-code das sheet direkt über den codename ansprechen, das verkürzt auch die Schreibweise.

EDIT: Um deine Idee noch ein bisschen auszuführen:
Du müsstest im Prinzip bei jeder Änderung der Combobox zuerst alle Item der Combobox löschen und anschließend checken ob der eingegebene String in einem Wert deiner Range vorkommt und diesen Wert dann als Item hinzufügen. Da die Range quasi eine Art Array ist brauchst nicht nur eine If/else abfrage sondern auch eine Schleife, die die Range durchackert. Und natürlich eine Funktion die einen String in einem String findet (die Worksheetfunction "FINDEN" (FIND?) sollte das können).
 
Zuletzt bearbeitet:
Ok, ist dann wohl doch etwas mehr wie ich befürchtet habe was mir da so fehlt....

Vielleicht mal um einen Anfang zu bekommen, wie müsste der Code aussehen, wenn ich in der ComboBox nur abfragen möchte was in Spalte A im Worksheet "Stammdaten" steht, also das mir sovohl das PullDown mit allen Werten angeboten wird, ich aber auch Werte wie z.b. "E333" in die Combobox eingeben kann und wenn der Wert gefunden wird eine MsgBox aufgeht mit dem passenden Wert aus Spalte "B", bzw. wenn es keinen Wert gibt eine Message Box mit "Nicht vorhanden, Bitte erfassen"
 
Zurück
Oben