ich brauche wieder einmal Eure Hilfe beim Umstricken eines VBA Codes, den ich hier im Archiv gefunden habe.
Die Userform hat u.a. 2 Kombinationsfelder, die mit den Daten aus den Spalten B bzw. C gefüllt werden. Wenn ich die Auswahl in Kombi1 treffe, wird Kombi2 gleich mitgefüllt und umgekehrt. Das ist was ich suche, nur will ich die Userform in einer anderen Tabelle stehen haben und trotzdem auf die Daten in der Ausgangstabelle zugreifen können. Die erfassten Daten aus dieser Userform will ich dann in die Spalten in der 2. Tabelle schreiben. Wo muss ich den Code ergänzen, damit die Userform sich die Daten aus der Tabelle "Lagerliste" holt?
Option Explicit
Public blnSchalter As Boolean, blnSchalter2 As Boolean
Private Sub cboArtikelNr_Change()
Dim rngSuchzelle As Range
If blnSchalter2 = True Then Exit Sub
blnSchalter = True
Set rngSuchzelle = Range("B:B").Find(Me.cboArtikelNr, , , 1)
If rngSuchzelle Is Nothing Then Exit Sub
If rngSuchzelle.Offset(0, 1).Value = "" Then
Me.cboBezeichnung.Clear
Me.cboBezeichnung.Value = ""
Me.txtLagerbestand.Value = rngSuchzelle.Offset(0, 2).Value
Me.txtBestellung.Value = rngSuchzelle.Offset(0, 3).Value
Else
Me.cboBezeichnung.Value = rngSuchzelle.Offset(0, 1).Value
Me.txtLagerbestand.Value = rngSuchzelle.Offset(0, 2).Value
Me.txtBestellung.Value = rngSuchzelle.Offset(0, 3).Value
Call LadenBezeichnung
End If
blnSchalter = False
End Sub
Private Sub cboBezeichnung_Change()
Dim rngSuchzelle As Range
If blnSchalter = True Then Exit Sub
blnSchalter2 = True
Set rngSuchzelle = Range("C:C").Find(Me.cboBezeichnung, , , 1)
If rngSuchzelle Is Nothing Then Exit Sub
If rngSuchzelle.Offset(0, -1).Value = "" Then
Me.cboArtikelNr.Clear
Me.cboArtikelNr.Value = ""
Me.txtLagerbestand.Value = rngSuchzelle.Offset(0, 1).Value
Me.txtBestellung.Value = rngSuchzelle.Offset(0, 2).Value
Else
Me.cboArtikelNr.Value = rngSuchzelle.Offset(0, -1).Value
Me.txtLagerbestand.Value = rngSuchzelle.Offset(0, 1).Value
Me.txtBestellung.Value = rngSuchzelle.Offset(0, 2).Value
Call LadenArtikel
End If
blnSchalter2 = False
End Sub
Private Sub cmdAbbrechen_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
If blnSchalter = False Then
Range("B:B").Find(Me.cboArtikelNr.Value).Offset(0, 1).Value = Me.cboBezeichnung
Me.cboBezeichnung.Clear
Call LadenBezeichnung
ElseIf blnSchalter2 = False Then
Range("C:C").Find(Me.cboBezeichnung.Value).Offset(0, -1).Value = Me.cboArtikelNr
Me.cboArtikelNr.Clear
Call LadenArtikel
End If
End Sub
Private Sub UserForm_Initialize()
Call LadenArtikel
Call LadenBezeichnung
End Sub
Sub LadenArtikel()
Range("B6").Activate
Do Until ActiveCell.Address(False, False) = "B27"
If ActiveCell.Value = "" Then
ActiveCell.Offset(1, 0).Activate
Else
Me.cboArtikelNr.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
End If
Loop
With Me.cboArtikelNr
.ColumnWidths = .Width - 8
.ListWidth = .Width - 8
End With
Range("A1").Activate
End Sub
Sub LadenBezeichnung()
Range("C6").Activate
Do Until ActiveCell.Address(False, False) = "C27"
If ActiveCell.Value = "" Then
ActiveCell.Offset(1, 0).Activate
Else
Me.cboBezeichnung.AddItem ActiveCell.Value
ActiveCell.Offset(1, 0).Activate
End If
Loop
Range("A1").Activate
Danke für Eure Hilfe
Gruss
Bernhard