Informationen und Beispiele zum Thema MsgBox | |
---|---|
![]() |
MsgBox-Seite mit Beispielarbeitsmappe aufrufen |
Hallo Excelfreunde,
Ich habe folgenden Code aus dem Internet mir in meiner Datei entsprechend anzupassen.
So gesehen funktioniert auch alles.
Mein Problem was ich habe und gern gelöst bekommen würde ist folgendes
in der Codezeile
(Bereich = "B5:IV697" ' aus welchem Bereich soll er holen?)
wird der Bereich "B5:IV697" korrekt aus der geschlossenen Datei kopiert und in die geöffnete Datei wieder eingefügt
da sich aber der Bereich in der Quelldatei in der Zeilenanzahl sich ändern kann hätte ich das Ende gern mit Rows.End(xlUp) gelöst.
Mein Ansatz war dies evtl. mit der CodeZeile
Bereich = .Range("B5", .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count))
zu lösen.
Dies funktioniert aber leider nicht.
Auch mehrere Recherchen im Internet konnten mir nicht wirklich weiterhelfen
Kann mir da vielleicht jemand von Euch helfen und den Code entsprechend anpassen?
bin so langsam am verzweifeln.
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 '© t.ramel@mvps.org ' 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: MsgBox "Die Quelldatei oder der Quellbereich ist ungültig!", vbExclamation, "Get data from _ closed Workbook" GetDataClosedWB = False End Function
Public Sub HoleDatenRessourcenplanungErfassungBearbeitung() ' Die Funktion arbeitet mit der obrigen GetDataClosedWB zusammen Dim Pfad As String Dim Dateiname As String Dim Blatt As String Dim Bereich As String Dim Ziel As Range 'Dim lngZeile As Long Pfad = "G:\Arbeit_Station und Service\07_Ressourcenplanung\" Dateiname = "PM aktuelle Ressourcenplanung.xlsm" ' aus welcher Datei soll er holen? Blatt = "Erfassung_Bearbeitung" ' von welcher Tabelle soll er holen? 'diese CodeZeile funktioniert Bereich = "B5:IV697" ' aus welchem Bereich soll er holen? 'nehme ich stattdessen diese CodeZeile wird nichts kopiert und eingefügst 'wie müsste der Code abgeändert werden das ich ab Zeile "B5" bis Zeile "IV : Letzte" _ kopieren kann 'Bereich = .Range("B5", .Cells(.UsedRange.Rows.Count, .UsedRange.Columns.Count)) '. _ Select ' in welchen Bereich soll er kopieren? Genauer gesagt: 'Bei welcher Zelle soll er anfangen, Daten reinzukopieren? Bsp: ActiveCell geht auch Set Ziel = Worksheets("Erfassung_Bearbeitung").Range("B5") If GetDataClosedWB(Pfad, Dateiname, Blatt, Bereich, Ziel) Then MsgBox "Daten Bereich importiert" End If End Sub