Microsoft Excel

Herbers Excel/VBA-Archiv

Zelle und Spalte vergleichen, Wert kopieren


Betrifft: Zelle und Spalte vergleichen, Wert kopieren von: Marco Rengers
Geschrieben am: 09.07.2018 17:10:18

Liebe Forum-Helfer,

als Rookie benötige ich bitte Eure VBA-Hilfe. Ich versuche die Problemstellung mal im Klartext auszudrücken (bei der Programmierung tue ich mich noch schwer):

In Spalte A stehen Werte (a, b, c usw.)
In Spalte B, C, D usw. stehen -eventuell- Kreuze

Diese Werte aus Spalte A sollen, Wenn in Spalte B ein Kreuz vorhanden ist, oberhalb - durch ein Semikolon getrennt, aufgelistet werden.

Das soll solange geschehen, bis in Spalte A kein Wert mehr steht.
Dann soll die Prozedur in der nächsten Spalte beginnen (bis keine Werte mehr in den Spalten stehen)

Spalte A / Spalte B / Spalte C

a X _
b _ X
c X _
d X _
e _ X

Ausgabe, Spalte B: a;c;d;
Ausgabe, Spalte C: b;e;

usw.

Ich breche mir dabei die Ohren und bin für jegliche Hilfe sehr dankbar! Schaffe es leider nicht, eine Beispieldatei hochzuladen.

Viele Grüße
Marco

  

Betrifft: AW: Zelle und Spalte vergleichen, Wert kopieren von: {Boris}
Geschrieben am: 09.07.2018 17:27:32

Hi Marco,

z.B. mit einer eigenen Funktion (UDF) - so in der Art:

Option Explicit

Function DOIT(Bereich1 As Range, Bereich2 As Range, Suchkriterium As Variant, Trenner As String) _
 As String
Dim C As Range, strTemp As String
For Each C In Bereich2
    If C = Suchkriterium Then
        strTemp = strTemp & Bereich1(C.Row) & Trenner
    End If
Next C
DOIT = IIf(Len(strTemp), Left(strTemp, Len(strTemp) - Len(Trenner)), strTemp)
End Function
In A1:A5 stehen die Buchstaben, in B1:B5 die "x":

=doit($A1:$A5;B1:B5;"x";";")

Damit kannst Du auch "x" bzw. das Trennzeichen (";") variieren - und die Formel einfach nach rechts kopieren.

VG, Boris


  

Betrifft: AW: Zelle und Spalte vergleichen, Wert kopieren von: Marco Rengers
Geschrieben am: 10.07.2018 09:58:12

Hallo Boris,

Danke für deine Antwort. Als Ergebnis kommt da bei mir "0" heraus. Was mache ich falsch?
Diese Version ist auch recht "statisch". Die Anzahl der auszuwertenden Zeilen und Spalten kann variieren. In diesem Falle muss ich vorher einen Bereich (letzte Zeile, letzte Spalte definieren) und die Funktion dort einbauen, richtig?


Viele Grüße, Marco


  

Betrifft: Ohne Beispieldatei... von: {Boris}
Geschrieben am: 10.07.2018 11:48:06

Hi Marco,

...kann ich Dir nicht sagen, warum bei Dir 0 rauskommt.
Also: Bitte lade die (abgespeckte) Datei MIT Deinem nicht funktionierenden Versuch hoch.

VG, Boris


  

Betrifft: AW: Ohne Beispieldatei... von: Marco Rengers
Geschrieben am: 10.07.2018 17:14:22

Das funktioniert leider nicht. Egal, welches Dateiformat ich benutzte (xl* oder zip) - ich bekomme immer eine Fehlermeldung (falsches Format).

Liebe Grüße


  

Betrifft: AW: Ohne Beispieldatei... von: {Boris}
Geschrieben am: 10.07.2018 17:33:13

Hi,

häng die hochzuladende Datei mal direkt an das Hauptlaufwerk (C: oder so) - also nicht zu tief in der Ordnerstruktur verschachtelt.

VG, Boris


  

Betrifft: AW: Ohne Beispieldatei... von: KlausF
Geschrieben am: 10.07.2018 17:46:54

Hallo Marco,
wenn Du die Aufzählung oberhalb stehen haben möchtest
(also in Zelle B1 bis z.B. E1) dann schreibe in B1:

=doit($A2:$A6;B2:B6;"X";";")
und Formel dann nach rechts ziehen.
Achte auch darauf, dass wenn in der Formel - wie hier - das X groß geschrieben ist,
natürliche die X in der Matrix auch groß geschrieben sein müssen ...

Klappt's?

Gruß
Klaus


Beiträge aus dem Excel-Forum zum Thema "Zelle und Spalte vergleichen, Wert kopieren"