Großes Problem in Excel - Suche Funktion

Dieses Thema im Forum "Office-Programme" wurde erstellt von NicoleH, 27. Oktober 2004.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. NicoleH

    NicoleH Byte

    Registriert seit:
    8. Oktober 2004
    Beiträge:
    16
    Hallo,

    Ich habe eine ExcelTabelle mit Werten in 3 Spalten und 3 Zeilen(excl.1 Zeile = Überschrift). Z.B.
    A B C
    1 Stück Text Preis
    2
    3
    4

    Spalte B und C sind immer vorgegeben, in Spalte A kann ich die Anzahl reinschreiben.
    in einer anderen Zelle (z.B. F 12) (bzw. anderes Tabellenblatt) ausgeben, wenn in der Spalte A eine Zahl steht, dann soll er diese Zeile (Stück, Text, Preis) in die Zelle F 12 schreiben. Es kann aber auch in Zelle A 2 und Zell2 A 4 eine Zahl stehen. Dann soll er diese beiden Zeilen ausgeben.
    Vom Prinzip her, sollte es wie die Summewenn-Funktion funktionieren, nur das er eben nicht die Summe ausgeben soll, sondern djeweils die Zeilen, wo eine Zahl in Spalte A steht.
    Hat jemand einen Vorschlag für mich?
     
  2. gerald_b

    gerald_b Kbyte

    Registriert seit:
    15. Januar 2003
    Beiträge:
    259
    Hi,


    also den Inhalt einer Zeile in eine Zelle zu bekommen ist nicht gerade schwer. Setze den String einfach mit "&" zusammen; das Ergebnis könnte dann für jede Zeile so aussehen (z.B. in Zelle E2, Spalte E dient nur als Hilfsspalte):

    =WENN(A2<>"";A2 & " " & B2 & " " & C2;"")

    Um jetzt die einzelnen Zeilen (mit zahl) textmäßig aneinanderzuhängen, gibst Du in der Zielzelle eben diesen Code ein:

    =E2 & " " & E3 & " " & E4


    Statt A2<>"" in der WENN-Funktion funktioniert auch ISTZAHL(A2) oder A2>0.

    Eine bessere Vorgehensweise kenne ich derzeit auch nicht.


    Gruß

    Gerald
     
  3. NicoleH

    NicoleH Byte

    Registriert seit:
    8. Oktober 2004
    Beiträge:
    16
    Ok, Soweit erst mal vielen Dank. Das funktioniert so. Allerdings noch eine Frage: Gibt es statt des Leerzeichens in den Anführungszeichen (=E2 & " " & E3 & " " & E4) eine Möglichkeit Excel zu sagen, das es einen Zeilenumbruch machen soll?
     
  4. gerald_b

    gerald_b Kbyte

    Registriert seit:
    15. Januar 2003
    Beiträge:
    259
    Hi,

    das mit dem Zeilenumbruch kannst Du mit einem Makro lösen. Dazu fügst Du entweder eine Schaltfläche auf dem Tabellenblatt oder in einer Symbolleiste ein und übernimmst folgenden Code für das Makro:


    Sub test()
    Dim str, x, i, count, vonZeile, bisZeile, vonSpalte, bisSpalte, Zielzelle
    str = ""
    count = 0
    vonZeile = 2 'in welcher Zeile beginnen
    bisZeile = 5 'bis zu welcher Zeile
    vonSpalte = 1 '1. Spalte = Spalte A
    Spaltenzahl = 3 'wieviele Spalten übernehmen
    Zielzelle = "F10" 'Ergebnis schreiben in

    With ActiveSheet

    For x = vonZeile To bisZeile 'zähle Zellen, in die Wert eingetragen
    If (.Range(Chr(vonSpalte + 64) & x).Value <> "") Then
    count = count + 1
    End If
    Next

    For x = vonZeile To bisZeile
    If (.Range(Chr(vonSpalte + 64) & x).Value <> "") Then 'wenn Anzahl eingetragen

    For i = 0 To Spaltenzahl
    str = str & .Range(Chr(vonSpalte + i + 64) & x) & " " 'String verketten
    Next

    count = count - 1
    If (count > 0) Then 'wenn noch Zeilen folgen
    str = str & vbCrLf 'Zeilenumbruch anhängen
    End If
    End If
    Next

    .Range(Zielzelle).Value = str 'Ergebnis schreiben
    End With
    End Sub



    Nach Schaltflächenbetätigung wird der zusammengesetzte String in die im Makro definierte Zielzelle geschrieben - mit Zeilenumbruch zwischen den einzelnen Zeilen. Statt der Zielzellenangabe könnte man die entsprechende Zelle auf dem Tabellenblatt auch benennen und mittels .Range("NamederZelle").Value = str das Ergebnis schreiben (flexibler bei Änderungen in punkto Ziel).


    Hoffentlich hilst Dir das weiter...

    Gerald
     
  5. NicoleH

    NicoleH Byte

    Registriert seit:
    8. Oktober 2004
    Beiträge:
    16
    Vielen lieben Dank!
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen