Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1664to1668
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
Daten aus geöffneter Tabelle übernehmen
25.12.2018 11:52:44
Tim
Hallo zusammen,
ich möchte gern via Doppelclick eine Tabelle öffnen und den Inhalt ab A21 bis zur letzten beschriebenen Zeile in die Userform2 übernehmen. Irgendwie stört sich jedoch meine Zusammenstellung an der geöffneten Tabelle. Kann mir jemand sagen, wie ich das Problem lösen kann?
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim strFirstAddress As String
Dim rng As Range
Dim objShellApp As Object
Set objShellApp = CreateObject("Shell.Application")
objShellApp.Open ListBox1.Column(1) 'alt objShellApp.Open ListBox1.Value
With Worksheets("Tabelle1").Range("A22:A")
UserForm2.Show
Me.ListBox1.Clear
If Not rngCell Is Nothing Then
strFirstAddress = rngCell.Address
Do
With Me.ListBox1
.ColumnCount = 3
.AddItem
.List(.ListCount - 1, 0) = rngCell.Row 'Zeilennummer in der sich der Eintrag befindet =  _
eindeutige Zuordnung wenn z.B. Bezeichnung doppelt vorkommt
.List(.ListCount - 1, 1) = rngCell.Offset(0, 2).Value ' Artikelbezeichnung aus Spalte D
.ColumnWidths = "2cm;4cm;3cm"
End With
Set rngCell = .FindNext(rngCell)
Loop While Not rngCell Is Nothing And rngCell.Address  strFirstAddress
Else
End If
End With
Set objShellApp = Nothing
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus geöffneter Tabelle übernehmen
25.12.2018 12:15:12
Hajo_zi
die Variable RngCell ist nicht belegt.
nur wenige schauen auf Deinen Rechner und sehen die Datei.
Ich möchte gerne den Fehler im Original sehen.
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten anonymisieren bzw. pseudonymisieren.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: Daten aus geöffneter Tabelle übernehmen
25.12.2018 12:26:21
Hajo_zi
ich bin dann raus, da meine Beiträge nicht komplett gelesen werden.
Das wird schon seinen Grund haben.
Gruß Hajo
du warst ja noch nie drin... o.w.T.
25.12.2018 12:29:36
Werner
AW: Daten aus geöffneter Tabelle übernehmen
25.12.2018 12:29:05
Werner
Hallo Tim,
lade doch noch die Datei hoch, aus der die Daten gezogen werden.
Gruß Werner
AW: Daten aus geöffneter Tabelle übernehmen
25.12.2018 17:59:57
Tim
Hallo Werner,
vielen Dank, deinen Code habe ich eingepflegt, jedoch kommt die Meldung "keine Daten vorhanden"
Hier mal noch die Bsp. Datei:
https://www.herber.de/bbs/user/126299.xlsx
Anzeige
AW: Daten aus geöffneter Tabelle übernehmen
26.12.2018 11:24:54
Tim
genau so, vielen Dank!!!
Gerne u. Danke für die Rückmeldung. o.w.T.
26.12.2018 12:07:44
Werner
AW: Daten aus geöffneter Tabelle übernehmen
25.12.2018 13:04:53
Werner
Hallo Tim,
versuch mal:
Code ins Codemodul von Userform1
Option Explicit
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim objShellApp As Object, loLetzte As Long
Set objShellApp = CreateObject("Shell.Application")
objShellApp.Open ListBox1.Column(1) 'alt objShellApp.Open ListBox1.Value
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
If loLetzte > 20 Then
UserForm2.Show
Else
MsgBox "Keine Daten vorhanden."
End If
End With
Set objShellApp = Nothing
End Sub
Code ins Codemodul von Userform2
Option Explicit
Private Sub UserForm_Initialize()
Dim loLetzte As Long, raBereich As Range, raZelle As Range
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, 1).End(xlUp).Row
Set raBereich = .Range(.Cells(21, 1), .Cells(loLetzte, 1))
Me.ListBox1.ColumnCount = 3
Me.ListBox1.ColumnWidths = "2cm;4cm;3cm"
With Me.ListBox1
For Each raZelle In raBereich
If raZelle  "" Then
With UserForm2.ListBox1
.AddItem
.List(.ListCount - 1, 0) = raZelle.Value
.List(.ListCount - 1, 1) = raZelle.Offset(, 2).Value
End With
End If
Next raZelle
End With
End With
Set raBereich = Nothing
End Sub
Gruß Werner
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige