Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Abfrage Makro





Frage

Hallo zusammen! Mein Problem lautet wie folgt: Ich möchte in Excel eine Inputbox in welcher ich Zahlen zwischen 1 und 15 eingeben kann. Nun sollten 1-15 Commandboxen (je nach auswahl zuvor) erscheinen mit denen ich eine Auswahl aus meiner Materialliste wählen kann und zusätzlich frei eintragen kann. Daraufhin sollte der gewählte bzw geschriebene Inhalt in Zellen meines Excel-Sheets eingetragen werden. Hoffe das ist verständlich genug. Danke schonmal Ps: VBA Kenntnisse nur schwach vorhanden ;-)

Antwort 1 von jackzon

niemand?

Antwort 2 von Event

Hallo

Ohne nähere Kenntniss Deiner Materialliste und Deiner Vorstellung von CommandBoxen und den Zielbereichen Deines Excel-Sheets kann Dir sicher keiner helfen - ich jedenfalls komme mit Deinen Angaben nicht klar.

Gruß

Antwort 3 von coros

Hi jackzon ,

erstelle in Deinem Tabellenblatt 15 ComboBoxen aus der Symbolleiste Steuerelement-Toolbox. Außerdem erstelle aus der gleichen Symbolleiste eine Befehlsschaltfläche. Dann kopiere nachfolgenden VBA Code in das VBA Projekt der Tabelle, in dem Du die ComboBoxen und den Button erstellt hast.

Option Explicit

Private Sub CommandButton1_Click()
Dim Spalte As Integer, Wiederholungen As Long, Anzahl As Integer, Zeilen As Long
Anfang:
Spalte = 1
Anzahl = InputBox("Bitte die Anzahl der einzublendenden ComboBoxen angeben.", "Zahleneingabe")
If Anzahl <= 0 Or Anzahl > 15 Then
MsgBox "Es sind nur Zahlen zwischen 0 und 15 erlaubt. Bitte wiederholen Sie die Eingabe.", vbInformation
GoTo Anfang
End If
Application.ScreenUpdating = False
For Wiederholungen = 1 To 15
OLEObjects("ComboBox" & Wiederholungen).Visible = False
Next
For Wiederholungen = 1 To Anzahl
OLEObjects("ComboBox" & Wiederholungen).Object.Clear
OLEObjects("ComboBox" & Wiederholungen).Visible = True
For Zeilen = 2 To Cells(65536, Spalte).End(xlUp).Row
OLEObjects("ComboBox" & Wiederholungen).Object.AddItem (ActiveSheet.Cells(Zeilen, Spalte))
Next
Spalte = Spalte + 1
Next
End Sub

Private Sub ComboBox1_Change()
Range("A1") = ComboBox1.Text
End Sub
Private Sub ComboBox2_Change()
Range("B1") = ComboBox2.Text
End Sub
Private Sub ComboBox3_Change()
Range("C1") = ComboBox3.Text
End Sub
Private Sub ComboBox4_Change()
Range("D1") = ComboBox4.Text
End Sub
Private Sub ComboBox5_Change()
Range("E1") = ComboBox5.Text
End Sub


Bei obigem Code wird Dir ein Eingabefenster geöffnet, in das Du die Zahlen eingeben kannst. Nach der Eingabe werden Dir die entsprechenden ComboBoxen eingeblendet. Die Inhalte der ComboBoxen erfolgen automatisch über eine Schleife. In ComboBox1 befindet sich der Inhalt der Spalte A ab Zeile 2, in Box 2 der Inhalt von Spalte B usw. Bis zur Box 15 mit dem Inhalt aus Spalte O. Wenn Du nun aus einer ComboBox einen Eintrag auswählst, wird dieser in der entsprechenden Spalte in Zeile 1 ausgegeben. Also für ComboBox 1 ist es die Ausgabezelle A1, für Box 2 die Zelle B1 usw. Ich habe das in dem VBA Code zunächst nur für 5 ComboBoxen erstellt. Du musst nur z.B. den Code

Private Sub ComboBox1_Change()
Range("A1") = ComboBox1.Text
End Sub

Kopieren und die Zellenbezeichnung anpassen.

Ich hoffe, Du kommst klar. Bei Fragen melde Dich. Wenn Du einen Code benötigst, der auf Dich abgestimmt sein soll, muss ich Event recht geben, dann benötigt man mehr Infos.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von jackzon

hey coros das ist doch schonmal super!
Hast genau mein Problem erfasst und eine gute Lösung gestellt.
Ein Problem hab ich noch mit den Comboboxen bzw deren Inhalte:
Ich hab ein extra Tabellenblatt mit dem Namen Datenbank. Dort heißt die erste Spalte "Material" und es stehen die relevanten Daten drin. Wie bekomm ich den Inhalt in meine Comboboxen?
Excel sagt mir das funktioniert nicht...?
Die Ausgabe soll wieder auf Tabellenblatt1 (bei mir "Input") erfolgen

Antwort 5 von coros

Moin jackzon ,

irgendwie hast Du es nicht mit dem schreiben. Eine Spalte hat immer die Bezeichnung, bzw. den Namen A, B, C usw. bis zum Namen/ Bezeichnung IV. Daher kann ich mir nur schwer vorstellen, das bei Dir es eine Spalte gibt, deren Bezeichnung/ Namen anders ist als wie geschrieben. Du müsstest also schon mal etwas mehr Infos über den Aufbau Deines Datenbankblattes geben. Denn auch mit der Aussage, dass Du den Inhalt der besagten Spalte in Deine ComboBoxen haben möchtest, kann ich nicht viel anfangen. Was steht denn dort in den einzelnen Zellen in der Spalte? Stehen dort mehrere Werte/ Texte und Du möchtest die nun aufgeteilt in die ComboBoxen bekommen oder wie soll man das verstehen? Ich verstehe es jedenfalls noch nicht so ganz. Oder meinst Du etwa mit dem Tabellenblatt "Datenbank" Deine Datei, die Datenbank heißt und mit der Spalte "Material" das erste Tabellenblatt, dass den Namen Material trägt? Wenn dem so ist, dann müsstest Du mal sagen, welche Daten in welche ComboBox sollen. Außerdem müsste in das Makro noch das Öffnen der Datei im Hintergrund, um die Daten auszulesen.

Also, dann schreib mal ein paar mehr Infos, dann kann man Dir sicherlich noch weiterhelfen.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Antwort 6 von jackzon

Naja hab wohl eine ausgewiesene Erklärschwäche ;-)

Ich versuchs!

Meine Excel-Datei besteht aus 4 Datenblättern mit den Namen: Input, Graphik, Berechnungen, Datenbank.
Die Comboboxen befinden sich im Inputblatt, die Liste der Informationen in "Datenbank".
Dort heißt meine erste Spalte "Material", hab diese umbenannt wie bei dir auf der Homepage beschrieben. In den Zellen (A3:A35) steht je ein Material.
Diese Liste soll nun in jeder erzeugten Combobox erscheinen und der Benutzer kann dann das passende Material auswählen bzw selbst eines eintragen.
Die Ausgabe der Daten erfolgt in Zeile D4:D18 im Blatt "Input", wo auch die Comboboxen erscheinen.
Hoffe das reicht an Erklärung, wenn nicht kann ich irgendwie die Datei hochladen, so dass du das ganze mal vor dir hast?

Antwort 7 von coros

Hi jackzon ,

hochladen kannst Du die Datei hier nicht, aber Du kannst sie mir mal mailen. Also wenn Du willst, schicke die Datei an meine E-Mail:coros@excelbeispiele.de

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 8 von jackyon

Hallo coros!
Hat alles super geklappt. 1000 Dank!

Antwort 9 von coros

Hi jackyon,

freut mich, dass ich Dir helfen konnte. Danke DIr auch für die Rückmeldung.

MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: