|  
                                             
	Moin zusammen, 
	ich habe ein Verwaltungstool in VBA erstellt und dies funktioniert auch super. Bisher ist es jedoch so, dass das Tool nur in der Arbeitsmappe funktioniert, in der man sich gerade befindet. Ebenfalls werden alle Spalten von dem Tool berücksichtigt. Mein Ziel ist jedoch, dass das Tool auf eine Arbeitsmappe zugreift welche auf einem Server für jeden zugänglich ist und nur bestimmte Spalten angesteuert werden. Kann mir da jemand helfen?  
	Nochmal die Ziele in der Kurzform: 
	- Daten sollen aus anderer Arbeitsmappe bezogen werden (am besten ohne das diese geöffnet werden muss) 
	- Es sollen nicht alle Spalten sondern nur bestimmte zur Datenverarbeitung angesteuert werden. 
	  
	Hier ist der Code für das gesamte Tool: 
Private Sub Button_Abbrechen_Click()
Unload Me
End Sub
Private Sub Button_ändern_Click()
Dim lngZeile As Long
Dim i As Integer
'Zuerst prüfen ob ein Datensatz im Listenfeld markiert ist
If Me.ListBox1.ListIndex >= 0 Then
  lngZeile = Me.ListBox1.Column(7, Me.ListBox1.ListIndex)
  For i = 2 To 12
    tbl_Artikel.Cells(lngZeile, i).Value = Me.Controls("TextBox" & i).Value
  Next i
  
'Zurückschreiben in die ListBox
For i = 1 To 6
  Me.ListBox1.Column(i, Me.ListBox1.ListIndex) = Me.Controls("TextBox" & i + 1).Value
Next i
Else
 MsgBox "Bitte markieren Sie einen Datensatz im Listenfeld!"
 
End If
End Sub
Private Sub Button_Leeren_Click()
Dim obj As Object
    For Each obj In Me.Controls
        
      If TypeName(obj) = "TextBox" Then
        obj.Value = ""
      End If
      
    Next obj
    
'ListBox leeren
Me.ListBox1.Clear
End Sub
Private Sub Button_Suchen_Click()
Dim lngZeile As Long
Dim lngZeileMax As Long
Dim i As Integer
Me.ListBox1.Clear
With tbl_Artikel
 lngZeileMax = .Cells(.Rows.Count, 1).End(xlUp).Row
 For lngZeile = 3 To lngZeileMax
 If InStr(.Cells(lngZeile, 1).Value, Me.TextBox1.Value) > 0 Then
    
    Me.ListBox1.AddItem .Cells(lngZeile, 1).Value           'Daten aus Zellen holen und in ListBox anzeigen
    Me.ListBox1.Column(1, i) = .Cells(lngZeile, 2).Value
    Me.ListBox1.Column(2, i) = .Cells(lngZeile, 3).Value
    Me.ListBox1.Column(3, i) = .Cells(lngZeile, 4).Value
    Me.ListBox1.Column(4, i) = .Cells(lngZeile, 5).Value
    Me.ListBox1.Column(5, i) = .Cells(lngZeile, 6).Value
    Me.ListBox1.Column(6, i) = .Cells(lngZeile, 7).Value
    Me.ListBox1.Column(7, i) = lngZeile
    i = i + 1
    
    End If
  
  Next lngZeile
  
  End With
  
End Sub
Private Sub ListBox1_Click() 'Per Klick die Daten aus der ListBox in das Formular übertagen
Dim lngZeile As Long
Dim i As Integer
lngZeile = Me.ListBox1.Column(7, Me.ListBox1.ListIndex)
For i = 1 To 12
  Me.Controls("TextBox" & i).Value = tbl_Artikel.Cells(lngZeile, i).Value
Next i
End Sub
Private Sub UserForm_Initialize()
Dim i As Integer
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("tbl_Artikel")
With wks
'Überschrift der Userform aus Zelle A1 holen
Me.Caption = .Range("A1").Value
For i = 1 To 12
    Me.Controls("Label" & i).Caption = .Cells(2, i).Value
Next i
'Überschrift der Listbox aus Tabelle holen
For i = 1 To 12
    Me.Controls("Label" & i + 12).Caption = .Cells(2, i).Value
Next i
End With
'ListBox erstellen
With Me.ListBox1
    .ColumnCount = 6
    .ColumnWidths = "90;200;75;75;40;40"
End With
'Cursor standardmäßig in die erste Textbox setzen
Me.TextBox1.SetFocus
    
End Sub
	  
	Vielen Dank schon mal im Voraus für eure Hilfe. 
	Gruß Alex 
     |