Anzeige
Archiv - Navigation
1788to1792
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

Code optimieren

Code optimieren
18.10.2020 14:17:41
Andreas
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

Für Eure Bemühungen bedanke ich mich bereits jetzt
Gruß Andreas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nur Info ...
18.10.2020 15:15:34
Dieter(Drummer)
Hallo Andreas,
suche mal im Internet nach: VBA Zeilen und Spalten Count. Da gibt es einiges, dass dir evtl. hilft.
Gruß, Dieter(Drummer)
AW: Nur Info ...
18.10.2020 15:55:44
Andreas
Hallo Dieter,
danke für Deine schnelle Antwort und Info,
habe das alles schon probiert aber für mein Problem dabei nichts passendes gefunden.
Ich probiere schon seit Tagen wie ich das lösen kann.
Brauche dazu echt Hilfe
Gruß Andreas
AW: Nur Info ...
18.10.2020 16:23:38
Nepumuk
Hallo Andreas,
du kannst in einer geschlossenen Mappe nicht feststellen was der benutzte Bereich ist. Was spricht dagegen die Mappe zu öffnen, zur Not auch schreibgeschützt? Das würde auch schneller gehen.
Gruß
Nepumuk
Anzeige
AW: Nur Info ...
18.10.2020 16:47:46
Andreas
Hallo Nepumuk,
Danke für die Info,
dachte nicht das das so nicht gehen würde.
Wie müsste ich das dann machen das er mir die Daten aus der Quelldatei Tabelle "Erfassung_Bearbeitung" ab Zelle "B5" bis "IV:LoLetzte"
in die Zieldatei Tabelle "Erfassung_Bearbeitung" ab Zelle "B5" wieder einfügt
könntest du mir dabei nochmals helfen?
Danke Andreas
AW: Nur Info ...
18.10.2020 17:05:45
Nepumuk
Hallo Andreas,
teste mal:
Option Explicit

Public Sub HoleDatenRessourcenplanungErfassungBearbeitung()
    Dim objWorkbook As Workbook
    With Application
        .Calculation = xlCalculationManual
        .EnableEvents = False
        .ScreenUpdating = False
    End With
    Set objWorkbook = Workbooks.Open(Filename:="G:\Arbeit_Station und Service\" & _
        "07_Ressourcenplanung\PM aktuelle Ressourcenplanung.xlsm", ReadOnly:=True)
    With objWorkbook.Worksheets("Erfassung_Bearbeitung")
        Call .Range(.Cells(5, 2), .Cells(.Rows.Count, 256).End(xlUp)).Copy( _
            Destination:=ThisWorkbook.Worksheets("Erfassung_Bearbeitung").Cells(5, 2))
    End With
    Call objWorkbook.Close(SaveChanges:=False)
    Set objWorkbook = Nothing
    With Application
        .Calculation = xlCalculationAutomatic
        .EnableEvents = True
        .ScreenUpdating = True
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Nur Info ...
18.10.2020 17:33:56
Andreas
Hallo Nepumuk,
Danke für Deine schnelle Hilfe
Damit kann ich was anfangen und es funktioniert
Gruß Andreas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige