VBA EXCEL / Problem mit Schleife

Hallo zusammen,

folgende, abstrakte Aufgabe:

  • Excel Tabelle mit ca. 300 Zeilen

  • Spalte A, B, C kann u.U. auch in einer anderen Zeile identisch sein => doppelter Eintrag (Typ String)
    => dieser Eintrag soll zusätzlich in ein Tabellenblatt „doppelt“ kopiert werden

  • ansonsten nur Einzelne Einträge, diese können jedoch nochmals mittels Spalte D unterschieden werden (Typ String)
    => dieser Eintrag soll zusätzlich in ein Tabellenblatt „einzeln1“ oder „einzeln2“ kopiert werden

Ich kriege es hin, die doppelten Einträge herauszufinden und auch das kopieren in ein weiteres Tabellenblatt ist kein Problem.

Ich schaffe es aber nicht, die einzelnen Einträge herauszufiltern.

Mein „Quellcode“ im Moment:

Äußere FOR Schleife i, die bis an die letzte Zeile zählt

  • variable WERT_1 nimmt den aktuellen Wert der (i,fixeSpalte) auf

Innere FOR Schleife, die bei i+1 beginnt

  • variable WERT_2 nimmt Wert (j,fixeSpalte) auf

If WERRT_1 = WERT_2 Then

  • Kopieranweisung in Tabellenblatt „doppelt“

Else
If (Überprüfung, ob Wert nun „einzeln1“ oder „einzeln2“ ist
End If

End If

Next j

Next i

Dies führt dazu, dass doppelte Einträge auch in Einzeln1 und Einzeln2 auftauchen, was ich auch verstehe.

Ich weiß einfach nicht, wie ich zunächst die FOR j Schleife zum vergleichen durchlaufen lassen soll und wenn dann kein doppelter Eintrag gefunden wurde, es erst zu der Überprüfung ob „einzeln1“ oder „einzeln2“ kommen soll…

BITTE HELFT MIR - ICH VERZWEILFE LANGSAM…

Dankeschön

Hi Sebastian,

  • Spalte A, B, C kann u.U. auch in einer anderen Zeile
    identisch sein => doppelter Eintrag (Typ String)
    => dieser Eintrag soll zusätzlich in ein Tabellenblatt
    „doppelt“ kopiert werden

was soll in Blatt „doppelt“ kopiert werden wenn es 5mal vorkommt, daß Ax, Bx,Cx gleich sind, soll das nur einmalig erfolgen oder mehrmals für das 2te, 3te,4te usw. Auftauchen?

  • ansonsten nur Einzelne Einträge, diese können jedoch
    nochmals mittels Spalte D unterschieden werden (Typ String)
    => dieser Eintrag soll zusätzlich in ein Tabellenblatt
    „einzeln1“ oder „einzeln2“ kopiert werden

In D steht dann entweder der Eintrag „einzeln1“ oder der Eintrag „einzeln2“ ?

Ich kriege es hin, die doppelten Einträge herauszufinden und
auch das kopieren in ein weiteres Tabellenblatt ist kein
Problem.

Schön, mit welchem Code?

Ich schaffe es aber nicht, die einzelnen Einträge
herauszufiltern.

Also diejenigen Zeilen wo Ax&Bx&Cx nur einmalig vorkommen?

Äußere FOR Schleife i, die bis an die letzte Zeile zählt

  • variable WERT_1 nimmt den aktuellen Wert der (i,fixeSpalte)
    auf

Innere FOR Schleife, die bei i+1 beginnt

  • variable WERT_2 nimmt Wert (j,fixeSpalte) auf

If WERRT_1 = WERT_2 Then

  • Kopieranweisung in Tabellenblatt „doppelt“

Else
If (Überprüfung, ob Wert nun „einzeln1“ oder „einzeln2“
ist
End If

End If

Next j

Next i

Zeige mal den richtigen Code und benutze Option Explicit, dann kommt sowas:
If WERRT_1 = WERT_2 Then
nicht vor.

Dies führt dazu, dass doppelte Einträge auch in Einzeln1 und
Einzeln2 auftauchen, was ich auch verstehe.

Ohne Code verstehe ich erst mal garnix :smile:
Mit Code, naja, zeigt sich dann.

Ich weiß einfach nicht, wie ich zunächst die FOR j Schleife
zum vergleichen durchlaufen lassen soll und wenn dann kein
doppelter Eintrag gefunden wurde, es erst zu der Überprüfung
ob „einzeln1“ oder „einzeln2“ kommen soll…

Das kriegen wir hin.

BITTE HELFT MIR - ICH VERZWEILFE LANGSAM…

Normalerweise müßte MS bei seinen Produkten gleich 'ne Telefonliste von erreichbaren Therapeuten mitbeilegen, das würde die Selbstmordrate von MS-Benutzern erheblich senken *grien*

Entspann dich, das Problem scheint lösbar, ich/wir brauchen nur bessere Informationen von dir.

Gruß
Reinhard

Vorab:
ich bin soeben wieder ein Stückchen weiter gekommen und habe es geschafft, doppelte von einzelnen zu trennen; allerdings macht mir der eine „einzeln1“ Probleme; er kopiert sowohl doppelte, als auch einzeln1 in das Tabellenblatt einzeln1; keine ahnung warum, zumal „einzeln2“ denselben code nutzt und es nicht tut…

Meine Lösung zur Differenzierung war:
inner Schleife durchlaufen lassen und wenn dann doppelter Eintrag gefunden, eine Variable doppelt = true gesetzt, wenn nicht doppelt = falses

Nach dieser Schleife dann Überprüfung ob es ein einzelner EIntrag war; dies ist der Fall, wenn doppelt = false, dann weitere Unterscheidung in einzeln1 oder 2 und dann wieder zurück in äußere Schleife und nächster Wert…

Hi Sebastian,

  • Spalte A, B, C kann u.U. auch in einer anderen Zeile
    identisch sein => doppelter Eintrag (Typ String)
    => dieser Eintrag soll zusätzlich in ein Tabellenblatt
    „doppelt“ kopiert werden

was soll in Blatt „doppelt“ kopiert werden wenn es 5mal
vorkommt, daß Ax, Bx,Cx gleich sind, soll das nur einmalig
erfolgen oder mehrmals für das 2te, 3te,4te usw. Auftauchen?

Einträge komme nur einzeln oder doppelt vor.

  • ansonsten nur Einzelne Einträge, diese können jedoch
    nochmals mittels Spalte D unterschieden werden (Typ String)
    => dieser Eintrag soll zusätzlich in ein Tabellenblatt
    „einzeln1“ oder „einzeln2“ kopiert werden

In D steht dann entweder der Eintrag „einzeln1“ oder der
Eintrag „einzeln2“ ?

Ausführlicher:
es gibt die besagte Anzahl an Zeilen in dieser Tabelle.
Spalte D ist entweder „einzeln1“ oder „einzeln2“.
Es kann vorkommen, dass „einzeln1“ und „einzeln2“ in Spalte A, B, C identisch sind, dann gelten diese als doppelt.

Ich kriege es hin, die doppelten Einträge herauszufinden und
auch das kopieren in ein weiteres Tabellenblatt ist kein
Problem.

Schön, mit welchem Code?

Werde versuchen den Code zu posten…

Ich schaffe es aber nicht, die einzelnen Einträge
herauszufiltern.

Also diejenigen Zeilen wo Ax&Bx&Cx nur einmalig vorkommen?

ja

Äußere FOR Schleife i, die bis an die letzte Zeile zählt

  • variable WERT_1 nimmt den aktuellen Wert der (i,fixeSpalte)
    auf

Innere FOR Schleife, die bei i+1 beginnt

  • variable WERT_2 nimmt Wert (j,fixeSpalte) auf

If WERRT_1 = WERT_2 Then

  • Kopieranweisung in Tabellenblatt „doppelt“

Else
If (Überprüfung, ob Wert nun „einzeln1“ oder „einzeln2“
ist
End If

End If

Next j

Next i

Zeige mal den richtigen Code und benutze Option Explicit, dann
kommt sowas:
If WERRT_1 = WERT_2 Then
nicht vor.

Dies führt dazu, dass doppelte Einträge auch in Einzeln1 und
Einzeln2 auftauchen, was ich auch verstehe.

Ohne Code verstehe ich erst mal garnix :smile:
Mit Code, naja, zeigt sich dann.

Ich weiß einfach nicht, wie ich zunächst die FOR j Schleife
zum vergleichen durchlaufen lassen soll und wenn dann kein
doppelter Eintrag gefunden wurde, es erst zu der Überprüfung
ob „einzeln1“ oder „einzeln2“ kommen soll…

Das kriegen wir hin.

BITTE HELFT MIR - ICH VERZWEILFE LANGSAM…

Normalerweise müßte MS bei seinen Produkten gleich 'ne
Telefonliste von erreichbaren Therapeuten mitbeilegen, das
würde die Selbstmordrate von MS-Benutzern erheblich senken
*grien*

Entspann dich, das Problem scheint lösbar, ich/wir brauchen
nur bessere Informationen von dir.

Gruß
Reinhard

Hi Sebastian,
jetzt hatte ich es fast geschafft zu Verstehen *naja, glaubte es*, dann kam dieses:

Es kann vorkommen, dass „einzeln1“ und „einzeln2“ in Spalte A,
B, C identisch sind, dann gelten diese als doppelt.

Ich dachte „einzeln1“ bzw. „einzeln2“ steht nur in Spalte D als Eintrag!?

Gruß
Reinhard