PDA

Vollständige Version anzeigen : Wenn zelle Text enthält dann


Matthias3L
27.08.2017, 09:55
Hallo, ich möchte einen code schreiben mit dem ein bestimmter Text in eine Zelle geschrieben wird wenn in einer anderen Zelle ein bestimmtes Wort steht. Wenn in Tabelle1 Spalte B entweder Haus, Garten oder Fluss steht dann soll in Tabelle 2 Spalte A Tisch geschrieben werden. Steht aber etwas anderes drin dann schreibe Maus. Es gibt nur diese 4 Wörter.

Mein Code funktioniert wenn alles in Tabelle 1 steht, jetzt müsste der code nur angepasst werden. Eigentlich recht einfach, doch excel fügt den Text nicht ein, es passiert nichts.. Hier der Code:

Option Explicit*
Sub CopyTable()*
Dim x%, n%*

With Worksheets("Tabelle1")*
n = Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row*
*
For x = 1 To n*
If Len(Worksheets("Tabelle1").Cells(x, 2)) = "Haus" Then*
Worksheets("Tabelle2").Cells(x, 1).Value = "Tisch"*
End If*
Next x
End With
End Sub*

Ich würde mich über Hilfe freuen.
Gruß
Matthias

Hajo_Zi
27.08.2017, 10:01
der Code läuft nicht, entferne erstmal "*" durch nichts.
Es erfolgt keine Überprüfung auf die vorgegebenen Wörter. Instr()

Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.

Ein Nachbau sieht meist anders aus als das Original. <B>Darum sollte das Original verlinkt werden.</b>

Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Test, Mappe, Beispiel usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.


<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

hary
27.08.2017, 10:21
Moin
Hab mal deine Angaben so uebernommen, ob diese stimmen kann ich nicht sehen.
Dim x As Long
With Worksheets("Tabelle1")
For x = 1 To .Cells(Rows.Count, 2).End(xlUp).Row
Select Case .Cells(x, 2)
Case "Haus", "Garten", "Fluss"
Worksheets("Tabelle2").Cells(x, 1).Value = "Tisch"
Case "Zaun"
Worksheets("Tabelle2").Cells(x, 1).Value = "Maus"
End Select
Next x
End With
gruss hary

Matthias3L
27.08.2017, 10:27
Danke, ich probiers später aus.

drambeldier
27.08.2017, 10:29
Moin,

der Code tut, was er soll.
If Len(Worksheets("Tabelle1").Cells(x, 2)) = "Haus"
fragt nicht nach dem Inhalt, sondern nach der Länge des Zellinhaltes. Und die wird vielleicht 4 sein, aber niemals "Haus".

Anmerkung1: Stell bitte die Datei direkt hier ein, Dein Kopieren klebt an die Zeilen einen unnützen Stern.

Anmerkung2: With soll Schreibarbeit verringern. Es reicht dann, beim Bezug nur noch .Cells(... zu schreiben.

Anmerkung3: Du kennst die Else-Klausel? Und auch die Select Case-Anweisung?

Matthias3L
27.08.2017, 11:02
Danke für die Hilfe. Natürlich kenne ich die else uns select case anweisung. Den code verwende ich noch an einer anderen Stelle in meiner Arbeitsmappe, da funktioniert es (Bedingung, wenn zelle leer dann) ja ist nicht das gleiche. Deswegen dachte ich dass es hier auch gehen müsste. Aber der Vorschlag von Hary ist besser.

Hajo_Zi
27.08.2017, 11:31
ja, der Berücksichtigt aber nicht
Wenn zelle Text enthält dann

Schreibe "Haus und Garten" in Zelle.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

hary
27.08.2017, 11:39
Moin Hajo
Das war die Vorgabe:
wenn in einer anderen Zelle ein bestimmtes Wort steht. Wenn in Tabelle1 Spalte B entweder Haus, Garten oder Fluss steht
dann kann doch nur ein Wort drin stehen, oder?
und nicht: "Haus und Garten"
gruss hary

Hajo_Zi
27.08.2017, 11:43
ich habe mich an den Betreff gehalten.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Matthias3L
27.08.2017, 11:45
Ich habs verstanden, ok danke