Daten aus Userform in Tabelle übergeben

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Daten aus Userform in Tabelle übergeben
von: Lisa
Geschrieben am: 28.05.2015 13:44:35

Hallo zusammen,
ich habe eine Userform mit einer Combobox einer und einer Textbox erstellt.
Ich suche mit der zweispaltigen Combobox Werte aus der Tabelle1, Spalte A:B einen Wert und will mittels Textbox in Spalte C einen weiteren Wert übergeben.
Das funktioniert nur bedingt, da die Werte in Spalte A:A doppelt vorkommen und immer nur der erste Wert gefunden wird, zweite und dritte bleiben unberücksichtigt.
Es dürfen auch keine Werte überschrieben werden. Steht in Spalte C:C also schon ein Wert muss per MsgBox drauf hingewiesen und abgebrochen werden.
Hierzu benötige ich allerdings Eure Hilfe.
mein Code dazu:

Private Sub CommandButton1_Click()
Dim wert As String
Dim test As String
wert = Me.ComboBox1
With Worksheets("Tabelle1").Range("A1:A500")
    Set c = .Find(wert, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
             test = c.Value
        If test = wert Then
           c.Offset(0, 2).Select
         
           If Selection <> "" Then
         
           
           MsgBox "Belegt"
           Else
                c.Offset(0, 2) = Me.TextBox2
                End If
            End If
           
    End If
End With
End Sub

Zur besseren Erklärung, so hoffe ich zumindest. die Beispielmappe anbei.
https://www.herber.de/bbs/user/97917.xls
Vielen Dank für Eure Bemühungen.
LG Lisa

Bild

Betrifft: AW: Daten aus Userform in Tabelle übergeben
von: fcs
Geschrieben am: 28.05.2015 16:10:52
Hallo Lisa,
hier das angepasste Makro für die Schaltfläche
Gruß
Franz

Private Sub CommandButton1_Click()
  Dim wert As String
  Dim firstAddress As String
  wert = Me.ComboBox1
  With Worksheets("Tabelle1").Range("A1:A500")
      Set c = .Find(wert, LookIn:=xlValues, lookat:=xlWhole)
      If Not c Is Nothing Then
          firstAddress = c.Address
          Do
              If c.Offset(0, 2) <> "" Then
                 MsgBox "Belegt"
                 Exit Do
              Else
                 c.Offset(0, 2) = IIf(IsNumeric(Me.TextBox2), CDbl(Me.TextBox2), Me.TextBox2)
              End If
              Set c = .FindNext(After:=c)
          Loop Until c.Address = firstAddress
             
      End If
  End With
End Sub


Bild

Betrifft: AW: Daten aus Userform in Tabelle übergeben
von: Lisa
Geschrieben am: 29.05.2015 10:26:50
Hallo Franz, vielen Dank für deine Hilfe.
Ich denke das ich mich falsch ausgedrückt habe, bitte entschuldige.
Es hat auch mit meiner Antwort etwas länger gedauert, da ich mir ersteinmal Excel Jaenie installieren musste.
Das hat funktioniert, ich hoffe das ich damit mein Anliegen etwas besser darstellen kann.
Hier der Versuch einer Erklärung meines Anliegens.
Tabelle1

 ABCD
1LinieBezeichnung  
2Linie 1ddd12Amit der Userform und einer Listbox suche ich aus dieser Liste einen Wert BSP: Linie 1 ddd
3Linie 1GP in der TextBoxder Userform gebe ich hierzu einen Wert ein BSP: 12A, um ihn dann zu übergeben.
4Linie 1LP Dieser Wert darf dann auch nur in der dazugehörigen Zelle C1 geschrieben werden
5Linie 1GKP C2 und C3 müssen leer bleiben, da in Spalte B ja ein anderer Wert als der ausgesuchte steht.
6Linie 10KP  
7Linie 10LP Wenn aber in C2 schon ein Text steht, darf dieser nicht überschrieben werden, sondern es muss ein Hinweis kommen MSGBOX BELEGT!
8Linie4VP das gleich würde für alle eingaben zutreffen.
9Linie577  
10   Die Listbox ist zweizeilig, da in Spalte A die gleichen Werte stehen und ich dachte, dass ich,
wenn die Spalte B auch angezeigt wird, dann immer genau die richtige Zeile sehe, auswähle und auch beschreibe,
leider funktioniert es aber nicht.


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
https://www.herber.de/bbs/user/97928.xls
Ich hoffe du/ihr könnt es so besser nachvollziehen.
LG Lisa

Bild

Betrifft: AW: Daten aus Userform in Tabelle übergeben
von: Lisa
Geschrieben am: 29.05.2015 10:29:09
Hallo noch einmal, ich habe vergessen den Beitrag als offen zu markieren, deshalb jetzt noch einmal auf diesem Wege.
gemeint ist im Tread also die vorgehende Frage.
LG Lisa

Bild

Betrifft: AW: Daten aus Userform in Tabelle übergeben
von: fcs
Geschrieben am: 29.05.2015 12:27:08
Hallo Lisa,
wenn du immer nur in der ausgewählten Zeile den Wert in Spalte C eintragen willst, dann vereinfacht sich das Ganze. Man kann über den Listindex des Eintrags in der Combobox die Zeile im Tabellenblatt bestimmen.

Private Sub CommandButton1_Click()
  Dim Zeile As Long
  With Me.ComboBox1
    If .ListIndex = -1 Then
      MsgBox "Bitte erst in Combobox einen Wert auswählen"
    Else
      Zeile = .ListIndex + 1
      With Worksheets("Tabelle1")
          Set c = .Cells(Zeile, 1)
          If c.Offset(0, 2) <> "" Then
             MsgBox "Belegt"
          Else
             If IsNumeric(Me.TextBox2) Then
                c.Offset(0, 2) = CDbl(Me.TextBox2)
             Else
                c.Offset(0, 2) = Me.TextBox2
             End If
          End If
      End With
    End If
  End With
End Sub

Gruß
Franz

Bild

Betrifft: AW: Daten aus Userform in Tabelle übergeben
von: Lisa
Geschrieben am: 29.05.2015 14:12:51
Hallo Franz, vielen Dank, das ist das was ich gesucht habe. Du hast mir sehr geholfen.
LG Lisa

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Daten aus Userform in Tabelle übergeben"