Microsoft Excel

Herbers Excel/VBA-Archiv

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

an die zelle springen mit Inhalt der ComboBox | Herbers Excel-Forum


Betrifft: an die zelle springen mit Inhalt der ComboBox von: Sascha
Geschrieben am: 04.01.2012 13:38:06

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

  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: fcs
Geschrieben am: 04.01.2012 16:40:06

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


  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: Sascha
Geschrieben am: 04.01.2012 17:31:24

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


  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: fcs
Geschrieben am: 04.01.2012 20:50:22

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




  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: Sascha
Geschrieben am: 04.01.2012 21:57:09

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


  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: Sascha
Geschrieben am: 05.01.2012 11:34:57

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!


  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: fcs
Geschrieben am: 05.01.2012 17:51:58

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


  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: Sascha
Geschrieben am: 05.01.2012 22:45:33

??? 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.


  

Betrifft: AW: an die zelle springen mit Inhalt der ComboBox von: Sascha
Geschrieben am: 06.01.2012 12:26:55

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


Beiträge aus den Excel-Beispielen zum Thema "an die zelle springen mit Inhalt der ComboBox"