Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.06.2024 19:56:24
17.06.2024 19:39:46
Anzeige
Archiv - Navigation
1864to1868
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

Zellen mit Inhalt in Ziel-ws kopieren

Zellen mit Inhalt in Ziel-ws kopieren
10.01.2022 13:17:24
efffff
Hallo zusammen,
vorab, ich habe mir den bisherigen Code aus verschiedenen Foren kopiert und umgeschrieben. Außer den "leichten" Dingen kann ich nicht programmieren. Ich möchte gewisse Spalten aus "Tabelle2" in "Tabelle1" ab Zeile 6 kopieren. Die Daten aus Tabelle 2 habe ich mir zuvor aus einem gewissen Dateipfad mit verschiedenen Exporten gezogen.
Spalte A hat immer einen Wert. Jetzt war meine Idee die Zeilen zu zählen und mittels Range pro benötigter Spalte in "Tabelle1" zu kopieren, zum Beispiel: Range("M1" & Range("A1").End(xlDown)).Copy Worksheets("Tabelle1").Range("K7") oder Range("B1" & z).Copy Worksheets("Tabelle1").Range("B7") und Funktion, welche die Zeilen in Spalte "A" zählt. Beide Versuche haben jedoch nicht funktioniert.
Könnt Ihr mir da vielleicht weiterhelfen? Danke euch!
Code:

Function AnzahlZeilen(Blatt As Worksheet) As Long
AnzahlZeilen = WorksheetFunction.CountA(Blatt.Range("A:A"))
End Function

Sub Auswerten()
Dim wb As Workbook
Dim ws As Worksheet
Dim Pfad As String
Dim Datei As String
Dim ErgebnisZeile As Long
Dim ErgebnisSpalte As Long
Dim s As Long
Dim z As Long
Dim i As Integer
Set wb = ThisWorkbook
Set ws = wb.ActiveSheet
Application.ScreenUpdating = False
Set ws = ActiveWorkbook.Sheets.Add
ErgebnisZeile = 1
Pfad = "C:\Users\Name\Dateipfad\"
Datei = Dir(CStr(Pfad & "*.xl*"))
Do While Datei  ""
Set wb = Workbooks.Open(Pfad & Datei, False, True)
For z = 7 To wb.Sheets("Startexport_2022").UsedRange.Rows.Count
If Trim(CStr(wb.Sheets("Startexport_2022").Cells(z, 1).Value))  "" Then
For s = 1 To wb.Sheets("Startexport_2022").UsedRange.Columns.Count
ws.Cells(ErgebnisZeile, s).Value = _
wb.Sheets("Startexport_2022").Cells(z, s).Value
Next s
ErgebnisZeile = ErgebnisZeile + 1
'ErgebnisSpalte = ErgebnisSpalte
End If
Next z
wb.Close False 'nicht speichern
'Nächste Datei
Datei = Dir()
Loop
'Variablen aufräumen
'Set ws = Nothing
'Set wb = Nothing
n = AnzahlZeilen(Worksheets("Tabelle2"))
'Kopieren
Worksheets("Tabelle2").Select
'Auftrags-Nr
Range("A1" & z).Copy Worksheets("Tabelle1").Range("D7")  'Idee Nr1
'Prod-Nr
'Range("B1" & z).Copy Worksheets("Tabelle1").Range("B7")
'Fzg-Nr
'Range("C1" & Range("A1").End(xlDown)).Copy Worksheets("Tabelle1").Range("C7") 'Idee Nr2
Application.ScreenUpdating = True 'Das Bildschirm-Aktualisieren wieder einschalten
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen mit Inhalt in Ziel-ws kopieren
10.01.2022 14:05:21
ralf_b
Ich kann mich ja täuschen, aber dein Bereich Range("A1" & z) solltes t du auf Range("A1:A" & z) oder Range("A1" ).resize(z) ändern.
du könntest anstatt "z" auch mit der Usedrange arbeiten beim Kopieren. Da du das Zwischenblatt ja ab Zeile 1 füllst gibt es keine störende Überschrift.
Da die Usedrange ein Bereich ist, geht dort auch eine Ansprache wie Usedrange.columns(1) für die 1. Spalte
AW: Zellen mit Inhalt in Ziel-ws kopieren
10.01.2022 15:53:15
efffff
Selbst mit korrigierter Range werden die Daten nicht aktiv kopiert. Mit resize habe ich es jetzt nicht probiert, aber der Code läuft durch, nur wird nicht kopiert. Woran kann das liegen und wie nutze ich UsedRange explizit?
Anzeige
AW: Zellen mit Inhalt in Ziel-ws kopieren
10.01.2022 16:09:31
ralf_b
ersetze worksheets("tabelle2") mal durch "ws" das ist ja deine Referenz auf das neue Blatt. Von dort sollen doch die Werte wegkopiert werden.
wenn man mit verschiedenen Arbeitsmappen arbeitet, sollte man immer sicher sein wo man sich bei Ansprache mittels Worksheets und Range befindet.
Fällt dir bei diesem Code etwas auf? Du nutzt die selben Variablen für verschiedene Dinge. Eine wbQ für die Quelle und eine wbZ für das Ziel, Das Gleiche bei ws. Bring da erstmal Ordnung rein.

Set wb = ThisWorkbook
Set ws = wb.ActiveSheet
Set ws = ActiveWorkbook.Sheets.Add
Set wb = Workbooks.Open(Pfad & Datei, False, True)

Anzeige
AW: Zellen mit Inhalt in Ziel-ws kopieren
11.01.2022 14:39:24
efffff
Habe Quelle und Ziel getrennt und es jetzt mit ein wenig Trial&Error auch hinbekommen, danke.

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige