Anzeige
Archiv - Navigation
1244to1248
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
an die zelle springen mit Inhalt der ComboBox
Sascha
Hallo Leutz,
ich habe eine Combobox und möchte zu der Zelle mit dem Inhalt springen.
Wie kann ich das machen?
Vielen Dank im Voraus.
Liebe Grüße
AW: an die zelle springen mit Inhalt der ComboBox
04.01.2012 16:40:06
fcs
Hallo Sascha,
deine Infos sind noch etwas unvollständig.
Was für eine Combobox ist es?
- Combobox im Userform
- Combobox aus Active-X-Steuerelementen im Tabellenblatt
- Combobox aus Formularsteuerelementen im Tabellenblatt
Wann soll gesucht werden?
- Bei Klick auf einen Eintrag in der Auswahlliste
- Wenn Combobox wieder verlassen wird
Wo im Tabellenblatt soll gesucht werden?
- ganze Tabelle
- bestimmter Zellbereich, Spalte, Zeilen
Was soll gesucht werden?
- genaue Übereinstimmung mit Auswahl
- Teilübereinstimmung
- Groß-/Kleinschreibung
Wenn diese Infos klar sind, dann kann man ein entsprechendes Makro schreiben.
Am einfachsten wird es wenn du eine Combobox aus den Active-X-Steuerelementen verwendest.
Gruß
Franz
Anzeige
AW: an die zelle springen mit Inhalt der ComboBox
04.01.2012 17:31:24
Sascha
Hallo Franz,
vielen Dank für Deine Antwort erstmal.
Die ComboBox befindet sich auf einer Userform. Der Inhalt befindet sich in Tabelle3! A1:A250.
Active-X-Steuerelemente? Ich glaube nicht! Lediglich Artikelnummern in den Zellen A1 bis A250.
Es soll gesucht werden, sobald ich eine Stückzahl in eine TextBox ( Change ) eingebe welche sich ebenfalls auf der UF befindet bzw. wenn die ComboBox verlassen wird.
Gesucht soll jedoch auf Tabelle2! Denn ich möchte 5 Spalten weiter die Stückzahl aus der Textbox eintragen lassen. Dazu muss ich in die Zelle des entsprechenden Artikels ( aus der ComboBox ) springen und dann mit:
Cells(ActiveCell.Row, ActiveCell.Column + 5).Select
die Stückzahl aus der Textbox auf der Userform in die Tabelle 2 ( Spalte 5 ) übertragen.
Es soll die genaue Übereinstimmung der Artikelnummer gefunden werden.
Bitte sage mir doch worin der Unterschied zwischen Active-X Steuerelementen und den "normalen" Steuerelementen liegt. Ich würde aber gerne diese Excel-Datei auch auf MS-Office 2003 laufwen lassen - Geht das mit Active X ?
Vielen Dank nochmals.
Gruß Sascha
Anzeige
AW: an die zelle springen mit Inhalt der ComboBox
04.01.2012 20:50:22
fcs
Hallo Sascha,
hier ein Code-Beispiel. Die Namen von Combobox und Textbox muss du ggf. anpassen.
Wichtig für die Funktion ist die Deklaration der Variablen "Zelle" am Beginn des Userform-Codes.
Bitte sage mir doch worin der Unterschied zwischen Active-X Steuerelementen und den "normalen" Steuerelementen liegt.
Dieser Unterschied ist nur relevant, wenn Steuerelemente direkt in einem Tabellenblatt plaziert werden.
Die Active-X Steuerelementen können mit einem oder mehreren Ereignismakros verknüpft werden. Sie sind flexibler bezüglich der Makro-Programmierung.
Die Formularsteuerelemente sind Eingabe-Elemente, denen ein Makro zugewiesen werden kann.
Formularsteuerelemente sollte man z.B. verwenden, wenn man im Tabellenblatt-Modul keinen VBA-Code haben möchte, da die zugehörigen Makros in allgemeinen Modulen der Datei angelegt werden können.
Die Steuerelemente in Userforms sind mit den Active-X-Elementen verwandt, haben aber zum Teil andere Ereignismakros.
Ich würde aber gerne diese Excel-Datei auch auf MS-Office 2003 laufen lassen - Geht das mit Active X ?
Auch Office 2003 kennt schon Active-X-Elemente. Sie stecken hinter den Elementen der Steuerelemente-Toolbox. Code sollte ohne Probleme in Excel 2003 und 2007 und neuer laufen.
Gruß
Franz
Option Explicit
'Variablendeklaration für Userformmodul
Private Zelle As Range 'Objekt-Variable für gefundene Zelle mit Artikelnummer
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Combobox mit der Artikelnummer
Dim wks As Worksheet
Dim varFind As Variant
If Me.ComboBox1.ListIndex = -1 Then
MsgBox "Bitte erst eine Artikelnummer auswählen!"
Else
Set wks = Tabelle2 'oder = Worksheets("Tabelle2") 'Tabelle in der gesucht werden soll
varFind = Me.ComboBox1.Value
'varFind = Val(Me.ComboBox1.Value) 'evtl. erforderlich, wenn Artikelnummern Zahlen sind
With wks
Set Zelle = .Columns(1).Find(What:=varFind, LookIn:=xlValues, lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox "Artikel-Nummer in Blatt """ & .Name & """ nicht gefunden!"
Else
'die nachfolgenden 2 Zeilen sind nur erforderlich, wenn die Eingabe-Zeile _
unbedingt angezeigt werden soll
If ActiveSheet.Name  wks.Name Then wks.Activate
Zelle.Select
End If
End With
End If
End Sub
Private Sub TextBox1_Change()
'Textbox mit der Anzahl
If Zelle Is Nothing Then
MsgBox "Bitte erst eine Artikelnummer auswählen!"
Else
With Me.TextBox1
If .Value = "" Then
Zelle.Offset(0, 5).ClearContents 'oder Zelle.Offset(0, 5).Value = 0
ElseIf IsNumeric(.Value) Then
Zelle.Offset(0, 5) = CDbl(.Value)
Else
MsgBox "Eingabe für Anzahl ist keine Zahl!"
End If
End With
End If
End Sub

Anzeige
AW: an die zelle springen mit Inhalt der ComboBox
04.01.2012 21:57:09
Sascha
Hey Franz,
puuhh das ist harter Stoff. Du hast Dir hier wirklich voll die Mühe gegeben. Einfach Klasse, sogar mit Kemmentaren für solche wie mich um zu verstehen was da vor sich geht. Ich habe 3 Semester Excel Schulung von 2004 bis 2005 gehabt und es ist nur ganz wenig hängen geblieben, obwohl ich eine Projektarbeit ( damals auch schon mit Herbers Excel-Hilfe ) mit 1,7 als Note abgeschlossen hatte! So ein Jammer ! ! !
Vielen herzlichen Dank für Deine Mühe und ich werde es morgen gleich mal ausprobieren, heute ist schon ein bisschen spät für meinen Schädel.
Ich berichte Dir ( und den anderen ) gerne ob es funktioniert hat.
Beste Grüße aus Berlin
Sascha
Anzeige
AW: an die zelle springen mit Inhalt der ComboBox
05.01.2012 11:34:57
Sascha
Guten Morgen Franz,
ich habe Dein Code ausprobiert und es funktioniert eigentlich auch alles ganz gut, nur leider sucht er auf Tabelle2 nicht auf dem kpl. Tabellenblatt sondern nur in der Spalte A, durch diese Angabe hier:
Set Zelle = .Columns(1).Find(What:=varFind, LookIn:=xlValues, lookat:=xlWhole)
Ich habe auch das Columns(1) ersetzt durch Range("A4:AL59") aber auch hier wird nicht der Bereich des Tabellenblattes durchsucht.
Kannst Du hier nochmal helfen? Danke im Voraus!
AW: an die zelle springen mit Inhalt der ComboBox
05.01.2012 17:51:58
fcs
Hallo Sascha,
in meiner Testdatei funktioniert es einwandfrei, wenn ich den Suchbereich ändere.
Wichtig: Damit der Bezug zum Tabellenblatt korrekt ist muss der Punkt vor "Range(.... stehen!
Hier meine Testdatei.
https://www.herber.de/bbs/user/78233.xlsm
Gruß
Franz
Anzeige
AW: an die zelle springen mit Inhalt der ComboBox
05.01.2012 22:45:33
Sascha
? Ja, stimmt - bei Dir geht es, hmm detzt liegt meine Datei auf Arbeit. Da muss ich morgen gleich mal nachschauen wo bei mir der Fehler liegt ? Man da ärgere ich mich nun schon wieder Stunden drüber!
Auch dafür wieder mein Kompliment und großen Dank für die Hilfe.
AW: an die zelle springen mit Inhalt der ComboBox
06.01.2012 12:26:55
Sascha
Hallo Franz,
ich habe das Problem gefunden. In der Zeile
Set Zelle = .Range("A1:AL79").Find(What:=varFind, LookIn:=xlValues, lookat:=xlWhole)
wird nach "Werten" gesucht, das funktioniert bei mir nicht, da die Formatierung der Zellen G1 bis AL1 Standard mit Ausrichtung "Orientierung Text: hochkant" ist und ich muss auf jeden Fall in "Formeln" suchen lassen. Dann funktioniert es genauso wie Du es mir vorgesetzt hast. So also:
Set Zelle = .Range("A1:AL79").Find(What:=varFind, LookIn:=xlFormulas, lookat:=xlWhole)
Lieben Dank nochmals für Deine / Eure Hilfe hier im Forum und ich werde nicht das letzte mal fragen müssen.
Gruß Sascha
Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige