ich bin noch relativ neu in der VBA Welt und komme bei einem Problem einfach nicht weiter.
Ich hoffe Ihr könnt mir dabei helfen.
Ich Programmiere ein Excel-Addin was aus einer geschlossenen Datei Daten Auslesen soll.
In der Datei befinden sich mehrere Sheets von denen immer der komplette Inhalt kopiert werden soll.
Zu dem Kopieren von Daten aus einer geschlossenen Datei habe ich bereits einiges gefunden und das klappt auch soweit. (code folgt am Ende)
Jetzt zu meinem Problem:
1.
In dem Macro muss bisher ein Zellenbereich angeben werden der kopiert werden soll. Da sich der Inhalt jedoch ändern kann hab ich mir überlegt das man den eingestellten Druckbereich nimmt und kopiert. Somit müsste die Person die Änderungen an der Datei vornimmt nur den Druckbereich ändern und nicht das Macro.
2.
Bisher werden von meinem Code nur die Inhalte der Zellen kopiert. Ich würde gerne ebenfalls die Eigenschaften mit kopieren.
3.
Bisher werden die Kopierten Inhalte an die Stelle kopiert wo die derzeit aktive Zelle ist. Desweiteren sollen die anderen Zellen nach unten verschoben werden und nicht einfach durch den kopierten Inhalt überschrieben werden.
Ich hoff Ihr könnt mir bei meinen Problemen helfen und hoffe das mein Vorhaben überhaupt möglich ist.
Option Explicit
Dim datei As String, Blatt As String, Bereich As Range, zelle As Object
Public Function GetDataClosedWB(SourcePath As String, _
SourceFile As String, sourceSheet As String, _
SourceRange As String, TargetRange As Range) As Boolean
'Holt einen Bereich aus einer _geschlossenen_ Arbeitsmappe
'Nur in VBA zu verwenden; nicht aus einer Tabellenzelle heraus
' wird durch die HoleDaten aufgerufen
Dim strQuelle As String
Dim Zeilen As Long
Dim Spalten As Byte
On Error GoTo InvalidInput
strQuelle = "'" & SourcePath & "[" & SourceFile & "]" & sourceSheet & "'!" & Range( _
SourceRange).Cells(1, 1).Address(0, 0)
Zeilen = Range(SourceRange).Rows.Count
Spalten = Range(SourceRange).Columns.Count
With TargetRange.Cells(1, 1).Resize(Zeilen, Spalten)
.Formula = "=IF(" & strQuelle & "="""",""""," & strQuelle & ")"
.Value = .Value
End With
GetDataClosedWB = True
Exit Function
InvalidInput:
GetDataClosedWB = False
End Function
Public Sub HoleDaten(Pfad As String, datei As String, Blatt As String)
' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen
Dim Bereich As String
Dim Ziel As Range
Bereich = "A1:M9" ' aus welchem Bereich soll er holen?
Set Ziel = ActiveCell ' in welchen Bereich soll er kopieren? Genauer gesagt: _
Bei welcher Zelle soll er anfangen, Datein reinzukopieren? Bsp: ActiveCell geht auch
If GetDataClosedWB(Pfad, datei, Blatt, Bereich, Ziel) Then
MsgBox "Daten importiert"
End If
End Sub