Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1828to1832
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

Excelblatt per VBA kopieren

Excelblatt per VBA kopieren
03.05.2021 17:25:29
Schiermeier
Hallo,
ich habe eine Exceltarbeitsmappte in der ich in einem Tabellenblatt Zellen habe die formatiert sind und wo ich Daten eingebe. Einige davon haben auch Formeln auf andere Tabellenblätter. Jetzt möchte ich im oberen erstellten Bereich meine Daten eingeben und immer unterhalb per VBA einfügen.
Ich habe bisher folgendes versucht und bekomme unterhalb meiner Formatierten Tabelle keine Inhalte angezeigt.

Sub kopie_Boden_1()
Sheets("Test").Range("A1:AZ147").Copy Sheets("Test").Range("A" & Sheets("Test").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 0)
End Sub
Oder gibt es dafür eine bessere Lösung.
Danke schon mal für eure Hilfe
Gruß
Alexander

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excelblatt per VBA kopieren
03.05.2021 17:36:11
Werner
Hallo,
meinst du eine "intelligente Tabelle"?
Versuch mal:
  • 
    Sub kopie_Boden_1()
    Dim raFund As Range
    With Worksheets("Test")
    Set raFund = .Columns("A").Find(what:="*", LookIn:=xlValues, lookat:=xlWhole, _
    searchdirection:=xlPrevious)
    .Range("A1:AZ147").Copy .Cells(raFund.Offset(1).Row, "A")
    End With
    Set raFund = Nothing
    End Sub
    

  • Gruß Werner
    AW: Excelblatt per VBA kopieren
    03.05.2021 18:29:55
    Schiermeier
    Hallo Werner,
    vielen Dank für die schnelle Hilfe, hat auf dem Arbeitsblatt Test funktioniert. Aber wenn ich das auf meinem Arbeitsblatt BODEN, Aufmaß-Boden anwende funktioniert das nicht. Ich bekomme dort keinen Inhalt aus den obigen Zeilen eingefügt.
    Das habe ich in meinen Makro alles stehen, bevor ich die Lösung bekommen habe.
    
    Sub kopie_Boden_1()
    Sheets("BODEN").Range("A1:AZ149").Copy Sheets("BODEN-Zus").Range("A" & Sheets("BODEN-Zus").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 0)
    Sheets("Weis-Boden").Range("A1:AZ149").Copy Sheets("Weis-Boden-Zus").Range("A" & Sheets("Weis-Boden-Zus").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 0)
    Sheets("Weis-Boden-Zus").Cells.Replace what:="BODEN!", Replacement:="'BODEN-Zus'!", lookat:=xlPart _
    , SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    Sheets("Aufmaß-Boden").Range("A1:AZ147").Copy Sheets("Aufmaß-Boden").Range("A" & Sheets("Aufmaß-Boden").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 0)
    Sheets("Test").Range("A1:AZ147").Copy Sheets("Test").Range("A" & Sheets("Test").UsedRange.SpecialCells(xlCellTypeLastCell).Row + 0)
    End Sub
    
    Gruß
    Alexander
    Anzeige
    AW: Excelblatt per VBA kopieren
    03.05.2021 18:33:59
    Werner
    Hallo,
    was soll ich jetzt dazu sagen, ohne deine Datei zu kennen?
    Also bitte dein Datei hier hochladen.
    Gruß Werner
    AW: Excelblatt per VBA kopieren
    03.05.2021 19:19:44
    Schiermeier
    Hallo Werner,
    dauert bei mir immer etwas länger, da ich schlecht sehe und daher alles vergrößert auf dem Bildschirm habe und daher auch nur einen Ausschnitt des angezeigten Inhalts sehe.
    Möchte gerne meine Datei hochladen, aber beim Upload steht im Text das die Datei nicht größer als 300kb sein darf. Meine Datei ist aber 2,3 MB groß.
    Auf welchem Weg kann ich dir meine Datei zukommen lassen?
    Gruß
    Alexander
    AW: Excelblatt per VBA kopieren
    03.05.2021 18:50:03
    Yal
    Hallo Alexander,
    Alternativ:
    
    Sub kopie_Boden_1()
    Sheets("BODEN").Range("A1:AZ149").Copy NeueZeile("BODEN-Zus")
    Sheets("Weis-Boden").Range("A1:AZ149").Copy NeueZeile("Weis-Boden-Zus")
    Sheets("Aufmaß-Boden").Range("A1:AZ147").Copy NeueZeile("Aufmaß-Boden")
    Sheets("Test").Range("A1:AZ147").Copy NeueZeile("Test")
    Sheets("Weis-Boden-Zus").Cells.Replace what:="BODEN!", Replacement:="'BODEN-Zus'!", lookat:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
    End Sub
    Private Function NeueZeile(TabName As String, Optional SuchSpalte = 1) As Range
    On Error Resume Next
    Set NeueZeile = Worksheets(TabName).Cells(999999, SuchSpalte).End(xlUp).Offset(1, 0)
    End Function
    Sub Test()
    Dim W
    Dim N As Range
    For Each W In ThisWorkbook.Worksheets
    Set N = NeueZeile(W.Name)
    Debug.Print N.Address, N.Worksheet.Name
    Next
    End Sub
    
    Solltest die erste freie Zeile nicht Anhand der Saplte A sondern B, C, ... so setze den zweiten Parameter bei der Aufruf von NeueZeile auf 2, 3, ...
    VG
    Yal
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige