ich will dem Edgar nicht in die Parade fahren zumal er mit seinem Ansinnen absolut recht hat. Darum nehme ich auch nur zu diesem Punkt Stellung:
Zitat:... Die Werte der zweiten Abfrage sollten jedoch erst in der nächsten leeren Zeile nach den Werten der ersten Abfrage aufgelistet werden.
Die erste leere Zeile kann man so ermitteln und relativ schmerzfrei in einen vorhandenen Code übernehmen:
Zitat:Option Explicit
'Leere Zellen spielen keine Rolle, Diese Anweisung ermittelt die absolut letzte Zelle in einer definierten Spalte. 'Letzte Zeile in der Spalte "A" suchen Im Code ist das die rote 1. 'Wenn es eine andere Spalte sein soll, dann muß die Spalte ausgezählt und die 1 durch den Wert ersetzt werden.
Sub Freie_Zeile_Aus_Definierter_Spalte()
Dim FreieZeile As Long FreieZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
vielen Dank für Eure Antworten! Wie könnte ich habe den Code des Makros "Freie_Zeile_Aus_Definierter_Spalte" in meinen Code "EleFolge_A1" und "EleFolge_A2" (siehe oben) integrieren, sodass im Makro zuerst die letzte freie Zelle ermittelt wird und anschließend die im Makro ermittelten Werte ab dieser Zeile eingetragen werden!?
29.12.2016, 23:08 (Dieser Beitrag wurde zuletzt bearbeitet: 29.12.2016, 23:09 von Käpt'n Blaubär.)
Hallo,
Zitat:... sodass im Makro zuerst die letzte freie Zelle ermittelt wird und anschließend die im Makro ermittelten Werte ab dieser Zeile eingetragen werden!?
Du hast doch geschrieben, daß Dein Code schon jetzt in die Zeile schreibt. Allerdings so, daß er jeweils dieselbe Zeile überschreibt.
Mit dem Codeschnipsel von mir kannst Du jeweils die erste freie Zeile auslesen und die Einträge dorthin schreiben lassen.
Ich werde mir Deinen Code jetzt ansehen. Das habe ich bisher noch nicht getan weil ich mich nicht in das laufende Verfahren einmischen will. Allerdings werden, soviel kann ich schon mal verraten, auch hier notwendige Info's benötigt. Wenn Du die nicht lieferst, passiert von meiner Seite aus gar nichts. Ich habe nämlich überhaupt keine Lust, Ostereier suchen oder raten zu müssen.
Darum kann ich nur dringend empfehlen, Edgar's Dateianforderung endlich nachzukommen.
Später: Den von mir geposteten Codeschnipsel setzt Du doch schon jetzt haufenweise in Deinen Makros ein, nur nicht in der gewünschten Weise. Darum gehe ich mal gepflegt davon aus, daß Du überhaupt nicht weißt, was Du Dir da zusammengesammelt hast. Ist das richtig?
beiliegend habe ich eine vereinfachte Tabelle erstellt, welche beide Codes beinhaltet. Zuerst werden durch Aktivierung des Makros EleFolge_A1 die jeweiligen Zahlen in Tabelle 2 geschrieben, nachfolgend werden durch Aktivierung des Makros EleFolge_A2 die jeweiligen Zahlen in dieselben Zeilen wie die Zahlen von EleFolge_A1 in Tabelle 2 geschrieben. Das ist das Problem, die Zahlen sollten erst ab der nächsten leeren Zeile in Tabelle 2 geschrieben werden.
das Ganze krankt schon mal daran, dass die Zahlen in Tabelle 2 nur einmal vorhanden sind und Du die Schleife nur über diese Zahlen laufen läßt!
Hier ein Entwurf für Tabelle2!
Code:
Sub Test() Dim loLetzteTab2 As Long Dim loLetzteTab1 As Long Dim loLetzteTab3 As Long Dim wks_1 As Worksheet Dim wks_3 As Worksheet Set wks_1 = Sheets("Tabelle1") Set wks_3 = Sheets("Tabelle3") loLetzteTab2 = Cells(Rows.Count, 11).End(xlUp).Row lonaechste = loLetzteTab2 * 2 - 1 loLetzteTab1 = wks_1.Cells(Rows.Count, 1).End(xlUp).Row loLetzteTab3 = wks_3.Cells(Rows.Count, 1).End(xlUp).Row Set Rng = wks_1.Range("A:A") For loa = 2 To loLetzteTab2 If Application.CountIf(Rng, Cells(loa, 11)) > 0 Then lozeile = Application.Match(Cells(loa, 11), Rng, 0) Range("O" & loa) = wks_1.Range("C" & lozeile) Range("M" & loa) = wks_1.Range("A" & lozeile) End If Next Set Rng = wks_3.Range("A:A") lob = loLetzteTab2 + 1 For loa = 2 To loLetzteTab2 If Application.CountIf(Rng, Cells(loa, 11)) > 0 Then lozeile = Application.Match(Cells(loa, 11), Rng, 0) Range("K" & lob) = Range("K" & loa) Range("O" & lob) = wks_1.Range("C" & lozeile) Range("M" & lob) = wks_1.Range("A" & lozeile) lob = lob + 1 End If Next End Sub
Gruß
Edgar
Meine Antworten sind freiwillig und ohne Gewähr! Über Rückmeldungen würde ich mich freuen.
zuerst einmal vielen Dank für die (Code)-Antwort von Opa Edgar. Leider konnte ich den Code nicht auf meinen Anwendungsfall umlegen, obwohl dieser in der Beispiel Datei einwandfrei funktioniert. Nun wäre meine Frage, ob meine oben angeführten Codes beibehalten werden könnten und ev. lediglich durch ein zusätzliches Makro, welches nach oder innerhalb dieser Codes aufgerufen wird, die Ermittlung der nächsten leeren Zeile für die Einträge der oben angeführten Makros erfolgen könnte!?