Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
972to976
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
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datenübernahme mit Bedingungen

Datenübernahme mit Bedingungen
01.05.2008 08:36:46
Holger

Hallo,
ich habe keine Ahnung von VBA-Programmieren, wenn es über die Recorderfunktion hinausgeht. Deswegen hier mal eine Frage. Vielleicht kann mir jemand helfen, ist für unseren Verein eine Art Turnierauswertung.
Ich suche eine Möglichkeit, in ein Arbeitsblatt Daten einer anderen Exel-Datei (daten.xls) einzulesen (liegt im gleichen Verzeichnis), und zwar alle die Zeilen komplett, in denen in den Spalten A und B der daten.xls (besteht nur aus einem Arbeitsblatt) eine "1" steht. Dasselbe benötige ich dann in einer zweiten Excel-Datei, dort die Daten, die in der daten.xls in der Spalten A eine "1" und in der Spalte B ein "2" stehen haben. Dasselbe dann auch noch für andere Variationen der Spalten A und B (z.B. A="3", B="1", usw.).
Wenn mir einer helfen könnte, würde ich mich sehr freuen.
Vielen Dank im vorraus!
Holger

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

Betreff
Datum
Anwender
Anzeige
AW: Datenübernahme mit Bedingungen
01.05.2008 10:14:11
Daniel
Hi
prinzipiell geht das ohne VBA über die Funktion
DATEN - EXTERNE DATEN IMPORTIEREN - NEUE ABFRAGE ERSTELLEN
damit kannst du aus anderen Dateien Daten einlesen, dabei Sortieren, Filtern und auf bestimmte Spalten einschränken.
Gruß, Daniel

AW: Datenübernahme mit Bedingungen
02.05.2008 07:23:14
Holger
Hallo Daniel,
vielen Dank! Es funktioniert!
Gruß Holger

VBA Beispiel
01.05.2008 10:57:32
Matthias L
Hallo
Allgemeines VBA Beispiel zum ausbauen.
Userbild
Option Explicit


Sub kopieren()
Dim x As Long
Dim rng
Application.ScreenUpdating = False
For x = 1 To 65536
rng = Cells(Rows.Count, 1).End(xlUp).Row + 1
If Workbooks("Daten.xls").Worksheets("Tabelle1").Cells(x, 1).Value = 1 And Workbooks("Daten. _
xls").Worksheets("Tabelle1").Cells(x, 2).Value = 1 Then
Cells(rng, 1) = "Zeile " & x
End If
Next
Application.ScreenUpdating = True
End Sub


Wenn Du nun die Zeilen suchst in denen in A eine 1 steht und in B eine 2
ersetze die blinkende 1 durch eine 2.
Somit hast Du alle Daten, die Du brauchst
Userbild

Anzeige
AW: VBA Beispiel
02.05.2008 07:22:32
Holger
Hallo Matthias,
vielen Dank für dieses Script. Ich bekomme aber einen Laufzeitfehler '9': Index außerhalb des gültigen Bereiches. Beim Debuggen hinterlegt er mir die Zeile:


If Workbooks("Daten.xls").Worksheets("Tabelle1").Cells(x, 1).Value = 1 And Workbooks("Daten. _
xls").Worksheets("Tabelle1").Cells(x, 2).Value = 1 Then


gelb. Ich habe auch schon "Worksheets("Tabelle1")" umbenannt in den Namen dieses Arbeitsblattes. Das selbe Ergebnis. Was kann ich tun? Was mache ich falsch?
Wenn ich es richtig verstehe, müßte ich, wenn das Script funktioniert und ich in der Spalte A nach einer 2 suche in dieser Zeile die 1 vor "And Workbooks..." mit einer 2 ersetzen?


If Workbooks("Daten.xls").Worksheets("Tabelle1").Cells(x, 1).Value = 2 And Workbooks("Daten. _
xls").Worksheets("Tabelle1").Cells(x, 2).Value = 1 Then


Vielen Dank erst mal
Gruß Holger

Anzeige
wo hast Du denn den Code stehen?
02.05.2008 19:51:22
Matthias L
Hallo Holger
Der Code gehört in ein allgemeines Modul der Datei "Ziel.xls".
In der Datei "Daten.xls" ist kein Programmcode.
Um den Code ohne Fehler laufen zu lassen müssen natürlich beide Dateien geöffnet sein !
Gruß Matthias

AW: wo hast Du denn den Code stehen?
03.05.2008 08:19:13
Holger
Hallo Matthias,
mein Fehler war, nicht beide Dateien geöffnet zu haben. Nun gibt das Makro mir in Spalte A aus, welche Zeilen in A und B eine 1 haben. Ich wollte aber haben, dass es mir die Daten aus der Daten.xls in die Ziel.xls übernimmt. Und zwar nicht immer untereinander, sondern wenn ich das Makro ausführe, dann soll es mir die Daten, angefangen bei B10 so einlesen, wie sie in der Daten.xls stehen. Sind dort schon Einträge, so sollen sie überschrieben werden!
Gruß Holger

Anzeige
AW: wo hast Du denn den Code stehen?
07.05.2008 23:23:55
Matthias L
Hallo Holger
Du kannst mit Range(Range("A2"), Range("A2").End(xlDown)).ClearContents die letzten Einträge vorher entfernen.


Option Explicit
Sub kopieren()
Dim x As Long
Dim rng
Application.ScreenUpdating = False
Range(Range("A2"), Range("A2").End(xlDown)).ClearContents
For x = 1 To 65536
rng = Cells(Rows.Count, 1).End(xlUp).Row + 1
If Workbooks("Daten.xls").Worksheets("Tabelle1").Cells(x, 1).Value = 1 And Workbooks("Daten. _
xls").Worksheets("Tabelle1").Cells(x, 2).Value = 1 Then
'MsgBox "eine 1 in Spalte A und Spalte B wurde gefunden in Zeile " & x & " -- > kopieren nach" _
& "Zeile " & rng
Cells(rng, 1) = "Zeile " & x
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß Matthias

Anzeige

180 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige