Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
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 aus zwei Zeilen kopieren | Herbers Excel-Forum

Zellen aus zwei Zeilen kopieren
20.01.2010 19:20:06
Einzel

Hallo
brauch Hilfe bei einem Code.
Ich habe eine datenbank die ab A3 beginnt. (Tabelle1)
Und zwar soll es so ablaufen
Wenn in A3 "A" steht dann einlesen B3, D3, E3, G3,
weiter wenn in A4 "B" steht dann einlesen D3
Nun in tabelle2 einfügen ab A4 den Inhalt von Einlesen aus A3 und A4
und zwar in der Reihenfolge B3 aus Zeile 3, D3 aus Zeile 3, E3 aus Zeile 3, D3 aus Zeile 4 und wieder G3 aus Zeile 3.
Dann das ganze wiederholen aus A5 und A6. und in Tabelle2 in A5 einfügen das ganze bis zum Ende. ende umbekannt.
Habe es mal so angefangen aber es geht so nicht und er würde wenn auch nur einmal kopieren.

Sub einlesen()
Dim x As String
Dim y As String
Sheets("Tabelle1").Activate ' Datei auswählen / anpassen
x = [B2]
Range("A3").Select
If ActiveCell = A Then
Copy = [B3] & [D3] & [E3] & [G3]
End If
If ActiveCell = B Then
Copy = [D3]
End If
y = Copy
Sheets("Tabelle2").Activate
Range("A4").Select
ActiveCell = y
[B2] = x
End Sub
Hätte jemand eine Idee?
Hier mal die Mappe dazu.
https://www.herber.de/bbs/user/67359.xlsm
MfG
Stephan

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

Betreff
Datum
Anwender
Anzeige
AW: Zellen aus zwei Zeilen kopieren
20.01.2010 20:15:04
Daniel
Hi
bei deinem Kenntnisstand bietest sich vielleicht eher eine Formelbasierte Lösung an.
hier ein Makro, daß die für das Einlesen der Daten benötigte Formeln in die Zellen schreibt.
Sub Einlesen()
Dim Zeilen As Long
Zeilen = WorksheetFunction.CountIf(Sheets("Tabelle1").Columns(1), "A")
With Sheets("Tabelle2")
.Cells(4, 1).Resize(Zeilen).FormulaR1C1 = "=INDEX(Tabelle1!C2,(ROW()-4)*2+3)"
.Cells(4, 2).Resize(Zeilen).FormulaR1C1 = "=INDEX(Tabelle1!C4,(ROW()-4)*2+3)"
.Cells(4, 3).Resize(Zeilen).FormulaR1C1 = "=INDEX(Tabelle1!C5,(ROW()-4)*2+3)"
.Cells(4, 4).Resize(Zeilen).FormulaR1C1 = "=INDEX(Tabelle1!C4,(ROW()-4)*2+4)"
.Cells(4, 5).Resize(Zeilen).FormulaR1C1 = "=INDEX(Tabelle1!C7,(ROW()-4)*2+3)"
With .Cells(4, 1).Resize(Zeilen, 5)
.Formula = .Value
End With
End With
End Sub
Allerdings werden die Formeln wieder eleminiert, wenn du dir die Formeln anschauen willst, musst du das ".Formula = .Value" löschen oder auskommentieren.
Gruß, Daniel.
ps. für dich als VBA-Neuling noch ein paar Tips:
1. das Hochladen der Datei im alten .xls-Format erweitert den Kreis derjenigen, die helfen können. Nicht alle haben Excel 2007 oder höher.
2. Stichwort OPTION EXPICIT und das Verwenden von SELECT, bitte diese Links lesen, verstehen und anwenden:
http://www.online-excel.de/excel/singsel_vba.php?f=4
http://www.online-excel.de/excel/singsel_vba.php?f=78
Anzeige
AW: Zellen aus zwei Zeilen kopieren
20.01.2010 20:40:59
Einzel
Erst mal danke für den Code er klappt super.
Zweitens danke für die Tipps.
Gruß
Stephan
AW: Zellen aus zwei Zeilen kopieren
20.01.2010 21:53:38
Einzel
Hallo Daniel,
habe leider doch noch ein Problem was ich so nicht läsen kann
die Tabelle1 ist in daten.xlsm
und die Tabelle2 in datenauswertung.xlsm
Hättest du dafür auch noch mal ein Tipp.
MfG
Stephan
AW: Vollständig Referenzieren
20.01.2010 22:41:00
Daniel
Hi
wenn die beiden Tabellenblätter in verschiedenen Dateien sind, musst du halt den entsprechenden Dateinamen noch mit angeben, also statt
Sheets("Tabelle1").Cells(1,1)
musst du dann entsprechend:
Workbooks("Daten.xlsm").Sheets("Tabelle1").Cells(1,1)

schreiben. wenn du das "Workbooks(...)" weglässt, wird immer die gerade aktive Datei verwendet, und da ist ja nicht immer sicher, welches grade aktiv ist.
wenn die Dateigemeint ist, in der sich das Makro befindet, dann kann man auch stattdessen ThisWorkbook.Sheets("Tabelle1").Cells(1,1) schreiben, dann braucht man das Makro nicht ändern, wenn man die Datei mal umbenennt.
Gruß, Daniel
ps: das ganze funkionier nur, wenn beide Dateien geöffnet sind.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige