Überprüfung auf Übereinstimmung
#11
Hallo,

ich zitiere mich mal:

würde ich mal gerne eine Mustertabelle sehen, mit Wunschergebnis.

ansonsten bin ich raus!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#12
Hallo,

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

End Sub
Top
#13
Hallo,

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!?
Top
#14
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?
Top
#15
Hallo,

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.


Angehängte Dateien
.xlsm   Beispiel.xlsm (Größe: 18,75 KB / Downloads: 6)
Top
#16
Hallo,

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.
Top
#17
Hallo zusammen,

wäre hier Find mit FindNext nicht die bessere Wahl?
Gruß Atilla
Top
#18
Hallo Atilla,

erstmal schön, wieder was von Dir zu hören!

Find ist mein Feind. Wir werden uns nie aneinander gewöhnen :19:
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#19
Hallo,

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!?
Top
#20
Hallo,

Zitat:Leider konnte ich den Code nicht auf meinen Anwendungsfall umlegen,

Tja,  dann hat Dein Muster nicht zu Deinem Anwendungsfall gepasst! Schlagartig Dein Problem
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste