Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
424to428
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
424to428
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Falsche Werte werden mehrmals exportiert

Falsche Werte werden mehrmals exportiert
Nico
Hallo liebe Forum-User,
ich habe ein Skript weiterentwickelt, welches Daten aus bestimmten Zellbereichen einer Exceldatei/Mappe in eine zweite Datei/Mappe kopiert. Es werden jedoch bei Knopfdruck zum Teil auch falsche Werte kopiert, und diese dann auch mehrmals. Sehe den Wald vor lauter Bäumen nicht mehr.
Schaut mal bitte nach, was es sein könnte (evtl. mit Berichtigung).
Startet die Datei Areastations, dort steht der Code.
https://www.herber.de/bbs/user/6040.xls

Die Datei https://www.herber.de/bbs/user/6041.xls wurde aus Datenschutzgründen gelöscht

Hier nochmal auf die schnelle:

Sub copy_Data()
Dim wb1 As Workbook, wks1 As Worksheet
Dim wb2 As Workbook, wks2 As Worksheet
Dim wbo As String
Dim wksr1 As Long, wksr2 As Long
Dim lauf As Long
Dim hilfszeile As Long
Dim hilfspalte As Long
Dim zeile As Long
Dim spalte As Long
Dim hilf
wbo = "C:\WINDOWS\Desktop\Neuer Ordner (3)\Stationsspiegel_Wolfsburg.xls" 'Pfad zur Datei 2 anpassen
Set wb1 = ActiveWorkbook 'aktive Datei (Zieldatei)
Set wb2 = Workbooks.Open(wbo) 'Quelldatei
Set wks1 = wb1.Worksheets("Stations-Daten") 'Hier wird wks1 der Mappenname von der Quelle übergeben
Set wks2 = wb2.Worksheets("Stations-Daten") 'Hier wird wks2 der Mappenname des Ziels übergeben
'Datenbereich der kopiert werden muss auslesen
For spalte = 2 To 9
For zeile = 10 To 40
wksr2 = wks2.Cells(zeile, spalte).End(xlUp).Row
'Kopiervorgang beginnen
wks2.Rows("2:" & wksr2).Copy Destination:=wks1.Rows(Cells(zeile, spalte).End(xlUp).Row + 1)
Next zeile
Next spalte
wb2.Close True 'Datei 2 schliessen
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Falsche Werte werden mehrmals exportiert
Christoph
Hi Nico,
in deinem geposteten Code durchläufst du 8 mal (For spalte = 2 To 9) die Zeilen 10 bis 40 und jedesmal wird die ganze Zeile kopiert.
da müssten also anschließend 8 * 31 = 248 Zeilen kopiert worden sein.
Eine If-Abfrage o.ä. erkenne ich da nicht, ergo wird auch nicht zwischen "richtigen und falschen" unterschieden.
Gruß
Christoph
AW: Falsche Werte werden mehrmals exportiert
Nico
danke für den Tipp. Aber das Durchlaufen von den insgesamt 8 Spalten und 30 Zeilen ist schon korrekt. Die Daten liegen im Bereich zwischen den Zeilen 10 und 40 sowie den Spalten B10 und I10.
Aber der Code fängt seltsamerweise schon ab Zeile 2 zu kopieren. Hmm, komme nicht weiter...
Anzeige
AW: Falsche Werte werden mehrmals exportiert
Christoph
Hi Nico,
mir ist nicht so ganz klar, welche Zellen kopiert werden sollen.
in deiner Bsp-Datei steht was im Bereich (B10:C15) oder wie du jetzt schreibst in (B10:I10) und hierbei die Spalten 10 bis 40
Um diesen Bereich zu kopieren musst du auf jedem Fall keine zwei For-Schleifen ineinander verschachteln.
Die Frage ist, welche Einträge sind "richtig" oder "falsch", und was soll dann passieren
Gruß
Christoph
AW: Falsche Werte werden mehrmals exportiert
Nico
Hallo Christoph,
es sollen die Zellen im Bereich B10:I10 Zeile 10 bis 40 kopiert werden.
Die schwarzen Werte sollen nicht kopiert werden. Diese habe ich nur zur
Probe gesetzt.
Zu den For-Schleifen: Ich habe es so überlegt, dass ich praktisch erst
die Laufvariable für die Zeilen immer um eins bis 40 erhöhe und danach
auf die nächste Spalte springe, und wieder bis Zeile 40 auslese, bis
eben zur Spalte I10.
Dafür muss man doch verschachteln, oder nicht?
Gruß Nico
Anzeige
Range(...).Copy
Christoph
Hi Nico,
hier mal ne Alternative zu deinem Code:
For spalte = 2 To 9
For zeile = 10 To 40
....
Next zeile
Next spalte
wenn du den ganzen Bereich kopieren willst dann so:
wks2.Range("B10:I40").Copy wks1.Range("B10")
Gruß
Christoph
AW: Range(...).Copy
Nico
Hallo Christoph,
bei wks2.Range("B10:I40").Copy wks1.Range("B10") war der Knackpunkt. Vielen Vielen Dank,
ich glaube ich habe mindestens die Hälfte meiner Harre vor dem Grautonbefall gerettet bekommen.
Gruß Nico
Danke für die Rückmeldung (o.T.)
05.05.2004 19:15:15
Christoph

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige