Anzeige
Archiv - Navigation
1436to1440
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
Inhaltsverzeichnis

Daten aus ListView verwenden

Daten aus ListView verwenden
21.07.2015 18:33:45
DirkR
Hallo Excelgemeinde!
Ich tüftele nun schon eine ganze Zeit rum....bekomme es aber nicht hin und bitte um Hilfe.
Ich habe in einer UF ein ListView und möchte nun Daten daraus weiter benutzen.
Das folgende Beispiel aus dem Forum hilft mir die Daten in eine Tabelle zu schreiben. Das funktioniert auch schon ganz gut.
Private Sub CommandButton2_Click()
Dim avntTemp As Variant
Dim lngRow As Long, lngColumn As Long
With ListView1
Redim avntTemp(1 To .ListItems.Count, 1 To .ColumnHeaders.Count)
For lngRow = 1 To .ListItems.Count
avntTemp(lngRow, 1) = .ListItems(lngRow).Text
For lngColumn = 2 To .ColumnHeaders.Count
avntTemp(lngRow, lngColumn) = .ListItems(lngRow).ListSubItems(lngColumn - 1). _
Text
Next
Next
End With
Tabelle1.Cells(1, 1).Resize(UBound(avntTemp, 1), UBound(avntTemp, 2)) = avntTemp
End Sub
Ich möchte nun Worddateien automatisch ausdrucken.
In der ListView sind Kundendaten. In Spalte 3 ist eine ID-Nummer, in Spalte 6 ist der Nachname und in Spalte 7 ist der Vorname. Alle anderen Spalten benötige ich nicht.
Der Pfad der Worddatei setzt sich wie folgt zusammen:
ThisWorkbookPath & "\03 - Kundendokumente\" & Nachname & "_" & Vorname & "-" & ID-Nummer & "\"
Der Name der Worddatei:
ThisWorkbook.Path & "\Kontaktbericht_" & Nachname & "_" & Vorname & "-" & ID-Nummer & ".docm"
Einen Ansatz zum Drucken habe ich auch schon:
Option Explicit
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long
Public Sub Word_Drucken()
Dim wksBlatt As Worksheet
Dim strDatei As String
Dim lngAnzahl As Long, lngZeile As Long
Set wksBlatt = ThisWorkbook.Worksheets("Tabelle1")
With wksBlatt
lngZeile = IIf(IsEmpty(.Range("A65536")), .Range("A65536").End(xlUp).Row, 65536)
End With
For lngAnzahl = 1 To lngZeile
strDatei = wksBlatt.Cells(lngAnzahl, 1).Text
MsgBox strDatei
ShellExecute 0, "Print", strDatei, "", "", 2
Next lngAnzahl
Set wksBlatt = Nothing
End Sub
Jetzt muss ich es nur noch schaffen, dass ich aus dem ListView Zeile für Zeile die Daten, Pfad und Name Worddatei wie beschrieben, zum Drucken übergebe.
Und genau da liegt das Problem. Ich weiß nicht, wie ich den Pfad und den Namen Zeile für Zeile auslese!!!?
Ich hoffe auf Hilfe!
Gruß DirkR

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus ListView verwenden
21.07.2015 19:44:28
DirkR
Hallo Excelgemeinde,
ich habe folgende Lösung hinbekommen.
Allerdings schreibe ich die Daten zuerst in ein Sheet. Das möchte ich aber eigentlich nicht.
Sonst funktioniert es.
Hat jemand eine Idee?
Hier mein Code:
Sub PrintListView_Kontaktbericht(x As Boolean)
If MsgBox("Sind Sie wirklich sicher, dass Sie alle Word-Kontaktberichte von den aufgelisteten  _
Kunden drucken möchten?", vbYesNo, " Achtung") = vbYes Then
Dim avntTemp As Variant
Dim lngRow As Long, lngColumn As Long, lngAnzahl As Long
Dim strDatei As String
With Kontaktinfos.ListView1
ReDim avntTemp(1 To .ListItems.Count, 1 To 7) '.ColumnHeaders.Count)
For lngRow = 1 To .ListItems.Count
avntTemp(lngRow, 1) = .ListItems(lngRow).Text
For lngColumn = 2 To 7 '.ColumnHeaders.Count
avntTemp(lngRow, lngColumn) = .ListItems(lngRow).ListSubItems(lngColumn - 1). _
Text
Next
Next
End With
Application.ScreenUpdating = False
With Sheets("Tabelle1")
.Cells(1, 1).Resize(UBound(avntTemp, 1), UBound(avntTemp, 2)) = avntTemp
For lngAnzahl = 1 To lngRow - 1
strDatei = ThisWorkbook.Path & "\03 - Kundendokumente\" & .Cells(lngAnzahl, 6).Text & " _
_" & .Cells(lngAnzahl, 7).Text & "-" & .Cells(lngAnzahl, 3).Text & "\" _
& "Kontaktbericht_" & .Cells(lngAnzahl, 6).Text & "_" & .Cells(lngAnzahl, 7).Text & "-" _
& .Cells(lngAnzahl, 3).Text & ".docm"
'MsgBox strDatei
If Dir(strDatei)  "" Then ShellExecute 0, "Print", strDatei, "", "", 2
Next lngAnzahl
.UsedRange.ClearContents
End With
Application.ScreenUpdating = True
End If
End Sub
Hoffe noch auf Hilfe!
Gruß DirkR
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige