Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suchen in bestimmten Spalten

Suchen in bestimmten Spalten
11.12.2017 17:17:31
Markus
Hallo liebe Community,
ich benötige ein Makro was in vier bestimmten Spalten (E, I, M, R) nach dem Wort Umrandung sucht in einem Tabellenblatt (gut wäre es wenn man bestimmte Tabellenblätter vorgeben/auswählen könnte, also nicht das er in allen sucht sondern nur einzelnen, aber nicht als Eingabemaske, sondern fest im Code hineingeschrieben.)
Wenn der Suchbegriff Umrandung in eine der vier Spalten gefunden worden ist soll er nichts machen, die Spalten also nicht überschreiben, halt nur Prüfen und sondern belassen, doch wenn in einer der 4 Spalten das Wort Umrandung fehlt, soll er hinter jener Spalte dann eine neue Spalte einfügen und dort das Wort Umrandung in die 4-te Zeile hineinschreiben in das jeweilige Tabellenblatt.
Hoffe mir kann da jemand helfen
Beste Grüße
Markus

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen in bestimmten Spalten
11.12.2017 17:41:05
Daniel
Hi
im Prinzip mit diesem Code.
die Tabellenblattnamen ggf noch anpassen bzw ergänzen.
Sub Makro1()
Dim wsh
Dim c
For Each wsh In Sheets(Array("Tabelle1", "Tabelle2"))
For Each c In Array(18, 13, 9, 5)
If WorksheetFunction.CountIf(wsh.Columns(c), "Umrandung") = 0 Then
wsh.Columns(c + 1).Insert
wsh.Cells(4, c + 1).Value = "Umrandung"
End If
Next
Next
End Sub
Gruß Daniel
AW: Suchen in bestimmten Spalten
12.12.2017 10:10:29
Markus
Hallo Daniel,
danke erstmal für die Hilfe. :)
Leider wird bei dem Code aber immer eine Spalte angehangen auch wenn in der vorherigen Spalte schon Umrandung drinstehlt. Das soll aber nicht sein, sondern er soll nur eine Spalte anhängen, wenn er das Wort Umrandung in den Spalten (E,I,M,Q) nicht findet.
Ich hab auch mal was anderes probiert, aber komme da auch nicht weiter, da ich nicht weiß wie ich mehrere bestimmte Spalten ansprechen kann:
Und habe dazu mal folgende Frage:
With Tabelle.Columns(4) funktioniert, aber nur bei einer Spalte
aber wie mache ich das dann mit mit Columns (9) und (13) und (18) dann?
Es gibt dies hier: Range(Columns(4), Columns(9)), aber das geht nur für zwei Spalten, ich brauche es aber wie gesagt für vier:
und dieses funktioniert nicht: With Tabelle.Columns(4, 9, 13,18)
Hoffe kannst mir bei Deinem Code weiterhelfen und mir meine Frage beantworten hinsichtlich wie man mehrere bestimmte Spalten anspricht. Oder geht das nur mit einem Array?
Beste Grüße
Makrus
Anzeige
AW: Suchen in bestimmten Spalten
12.12.2017 11:48:47
Markus
Nachtrag: Mittlerweile bin ich soweit das er wenn er alle vier Spalten abfragt und in jenen Umrandung vorkommt, er nicht wieder eine Spalte anhängt.

Sub Test()
Dim wsh
Dim c
For Each wsh In Sheets(Array("Tabelle1", "Tabelle2"))
For Each c In Array(13, 10, 7, 4)
If WorksheetFunction.CountIf(wsh.Columns(13), "Umrandung") = 0 Then    'wenn es nicht  _
vorhanden ist
'            wsh.Columns((13) + 1).Insert
'            wsh.Cells(3, (13) + 1).Value = "Umrandung"
'            End If
'           If WorksheetFunction.CountIf(wsh.Columns(10), "U-Turn") = 0 Then
'           wsh.Columns(10 + 1).Insert
'            wsh.Cells(3, 10 + 1).Value = "Umrandung"
'            End If
'            If WorksheetFunction.CountIf(wsh.Columns(7), "U-Turn") = 0 Then
'           wsh.Columns(7 + 1).Insert
'            wsh.Cells(3, 7 + 1).Value = "Umrandung"
'            End If
'            If WorksheetFunction.CountIf(wsh.Columns(c), "U-Turn") = 0 Then
wsh.Columns(c + 1).Insert
wsh.Cells(3, c + 1).Value = "Umrandung"
Else
If WorksheetFunction.CountIf(wsh.Columns(c), "Umrandung")  0 Then Exit Sub
End If
Next
Next
End Sub

Doch wenn 3 Spalten oder 2 Spalten mit Umrandung vorhanden sind und eine bzw. zwei nicht, dann legt er mir zwar für die jeweils fehlende Spalte noch eine neue Spalte mit Umrandung an, was so gewollt ist, jedoch und hier ist noch ein Problem wird bei denen wo Umrandung schon vorhanden ist auch nochmals eine Spalte angehangen, die werden also dann verdoppelt.
Das sollte aber nicht sein, sondern er sollte nur dort eine neue Spalte anlegen wo noch Umrandung fehlt und nicht bei den anderen auch wieder eine.
Mit den Columns bin ich auch weiter gekommen, das sieht dann so aus:
With Tabelle1.Columns(13) (10) (7) (4)
Beste Grüße
Markus
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige