AW: Auslesen von ausgeblendet Spalten
28.04.2020 09:23:12
ausgeblendet
Hallo Chris, hier der Code:
Option Explicit
' Namen der Textmarken im Worddokument
Const strBookmark1 As String = "Bearbeiter"
Const strBookmark2 As String = "Anlagenname"
Const strBookmark3 As String = "Anlagennummer"
Const strBookmark4 As String = "Dokumentennummer"
Const strBookmark5 As String = "Platzhalter"
Const strBookmark13 As String = "1"
Const strBookmark14 As String = "2"
Const strBookmark15 As String = "3"
Const strBookmark16 As String = "4"
Const strBookmark17 As String = "5"
Const strBookmark18 As String = "6"
' Konstante für den Speichern-Unter Dialog in Word
Const wdDialogFileSaveAs = 84
' Wenn Word nicht offen ist wird diese Variable auf True
' gesetzt und Word am Ende wieder geschlossen
' War Word schon offen, belibt es das auch
Dim blnTMP As Boolean
Public Sub BerechnungDocx()
' Variablendeklaration
' Da wir mit Late Binding arbeiten, also ohne Verweise auf die
' Wordbibliothek dimensionieren wir die Wordbezogenen Variablen
' als Objekt, die dann mit Set dem entsprechenden
' Objekt zugewiesen werden
Dim objWordRange As Object
Dim objDocument As Object
Dim objDialog As Object
Dim objApp As Object
Dim Liste As Range
Dim int6 As Integer
Dim int5 As Integer
Dim int4 As Integer
Dim int3 As Integer
Dim int2 As Integer
Dim int1 As Integer
'Dim strDoc As String
Dim strVorlage As String
' Bei einem Fehler gehe zu diesrr Sprungmarke
On Error GoTo Fin
' Das Worddokument mit Pfad und Name
strVorlage = "Dateipfad"
' ODER bei Bedarf gestartet
Set objApp = OffApp("Word")
'folgende Codezeile für Word nicht sichtbar
'Set objApp = OffApp("Word", False)
' Wenn die Word der Objektvariablen zugewiesen werden konnte dann...
If Not objApp Is Nothing Then
' Öffne neues Worddokument, zugewiesen an die Objektvariable objDocument
Set objDocument = objApp.Documents.Add(Template:=strVorlage)
' With für Schreibfaule :-) Alle Bezüge auf Tabelle1 müssen
' mit einem Punkt beginnen
With ThisWorkbook.Worksheets("Berechnung")
int6 = Range("C17")
int5 = Range("C16")
int4 = Range("C15")
int3 = Range("C14")
int2 = Range("C13")
int1 = Range("C12")
' Prüfe, ob die Textmarke vorhanden ist
If objDocument.Bookmarks.Exists(strBookmark1) = True Then
' Schreibe den Wert von B2 in die Textmarke Name
objDocument.Bookmarks(strBookmark1).Range = .Range("D6").Text
End If
If objDocument.Bookmarks.Exists(strBookmark2) = True Then
objDocument.Bookmarks(strBookmark2).Range = .Range("D5").Text
End If
If objDocument.Bookmarks.Exists(strBookmark3) = True Then
objDocument.Bookmarks(strBookmark3).Range = .Range("D4").Text
End If
If objDocument.Bookmarks.Exists(strBookmark4) = True Then
objDocument.Bookmarks(strBookmark4).Range = .Range("D7").Text
End If
If objDocument.Bookmarks.Exists(strBookmark5) = True Then
objDocument.Bookmarks(strBookmark5).Range = .Range("D10").Text
End If
' Kopiere einen Bereich als Bild an die Textmarke Wertetabelle
' Objektvariable objWordRange leeren
'Autofilter einschalten
Set Liste = ActiveSheet.Range("A30")
Liste.AutoFilter
Liste.AutoFilter Field:=1, Criteria1:="1", VisibleDropDown:=False
'Den Rest erspare ich dir
End Sub
Die ausgeblendete Spalte, die er auslesen soll, ist Spalte "D". Der Inhalt daraus soll an die Textmarken 1-5 übergeben werden. Ich hoffe es ist nicht zu verwirrend
Gruß David