Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel VBA letzte Spalte in Zeile 7 mit Teilstring

Excel VBA letzte Spalte in Zeile 7 mit Teilstring
06.02.2020 21:01:44
W
Hallo Forumsmitglieder,
viele meiner Tabellen in vielen Mappen sind "aus dem Ruder gelaufen". Zu Testzwecken wurden zusätzliche Spalten eingefügt, um sich in dieser Spalte bestimmte Informationen (meistens zur Fehlersuche) anzeigen zu lassen. Leider wurden dann diese Tabellen kopiert, und so sind im Laufe der Zeit in vielen Tabellen unnötige Spalten hinzugefügt worden.
Nun möchte ich dies maschinell bereinigen. Der Weg ist relativ einfach: in der letzten Spalte der Zeile 7 sollte ein Begriff stehen, in dem der String "Summe" enthalten ist. Ein mögliches Problem dabei ist, dass in Zeile 7 und 8 mehrere Zellen mit der jeweils darunterliegenden Zelle verbunden sind. So ist in der Regel vor dem String "Summe" noch ein X'0A" eingefügt, um den Text auf beide Zeilen zu verteilen.
Die ermittelte Zahl der benutzten Spalten ist bei meinen Lösungsversuchen immer größer als die Nummer der Spalte, in der sichtbar der Begriff "Summe" auftaucht.
Nun meine Frage: wie kann ich mit der FIND-Funktion die letzte Spalte in Zeile 7 finden, in welcher sich ein Text befindet, in dem der String "Summe" enthalten ist.
Gruß W H21

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
letzte Spalte in Zeile 7 mit ".?.summe.?."
06.02.2020 22:52:56
WF
Hi,
per Formel so:
=VERWEIS(2;1/ISTZAHL(SUCHEN("Summe";7:7));SPALTE(A1:WF1))
WF
AW: letzte Spalte in Zeile 7 mit ".?.summe.?."
07.02.2020 05:56:21
W
Hallo WF,
thx für Deine Beispiel. Ich möchte das aber in VBA lösen, und nicht in die Tabelle eintragen.
Ich habe dann versucht, Deine Formel per Makrorecorder aufzuzeichnen. Doch der generiert auch nur Code, um den in eine Zelle zu stellen.
Gruß W H21
Das kannst du mit...
07.02.2020 07:58:49
Case
Hallo, :-)
... "Evaluate" umgehen: ;-)
Option Explicit
Public Sub Main()
MsgBox Evaluate("=LOOKUP(2,1/ISNUMBER(SEARCH(""Summe"",7:7)),COLUMN(A1:WF1))")
End Sub
Du schreibst also die Formel nicht in eine Tabellenblatt, sondern "evaluierst" sie. ;-)
Servus
Case

Anzeige
AW: Das kannst du mit...
07.02.2020 09:18:05
W
Hallo Case,
leider hat mein Thread einen Bogen geschlagen, und hat sich weit von der Fragestellung entfernt.
Die letzten Lösungen haben immer ermittelt, wie oft ein bestimmter Begriff in einer Zeile vorhanden ist. Meine Frage war jedoch, welches die letzte Spalte ist, in welcher der Begriff vorhanden ist.
Gruß W H21
PS: und die Benachrichtigung per Mail funktioniert weiterhin nicht!
Das ist so nicht...
07.02.2020 09:45:39
Case
Hallo, :-)
... richtig. Hier wird kein "wie oft..." ausgegeben, sondern die Spaltennummer. Und die kannst du doch in VBA verwenden.
Es braucht kein Find und keine Schleife!
Wenn du in z. B. J7 "Hier Summe der Zeile 7" stehen hast, dann gibt die die MsgBox 10 aus. Und damit kannst du doch dann weiterarbeiten.
Servus
Case

Anzeige
AW: Das ist so nicht...
07.02.2020 10:21:05
W
Hallo Case,
ich muss mich bei Dir entschuldigen. Mit der genannten Formel wird tatsächlich die letzte Spalte zurückgegeben, in welcher der gesuchte Begriff letztmalig gefunden wurde.
Das Problem lag ganz einfach daran, dass ich den Syntax des Befehls nicht verstanden habe, und - auf die Schnelle - auch bei Google keine Hilfe dazu fand.
Kannst Du mir bitte erklären, was hinter "2,1/" steckt. Außerdem: wie kann ich den Bereich der zu durchsuchenden Spalten mit 2 Variablen (von und bis) angeben?
Gruß
Werner
AW: Formelerklärung
07.02.2020 10:47:07
W
Hallo WF,
vielen Dank für den Link. Doch das ist nichts für Anfänger! Da muss man schon einiges Basiswissen haben, um das Geschriebene zu verstehen.
Gibt es niemand, der mir das verständlich erklären kann? Ich möchte doch nicht einfach eine Formel nutzen, die ich nicht verstehe und nachvollziehen kann.
Gruß W H21
Ist doch alles...
09.02.2020 09:04:47
Case
Hallo, :-)
... gute beschrieben. Wenn du die Beispiele durchführst, sollte es eigentlich klar werden. ;-)
Mit "Find" würde es z. B. so gehen: ;-)
Option Explicit
Public Sub Main()
Dim lngTMP As Long
lngTMP = Rows("7").Find(What:="Summe", _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End Sub
Musst noch den Fehler abfangen, wenn das Wort "Summe" nicht vorkommt. ;-)
Servus
Case

Anzeige
AW: Excel VBA letzte Spalte in Zeile 7 mit Teilstring
07.02.2020 06:42:41
SH
Hallo WH21,
Ich hab das so verstanden, dass du in der Zeile genau einmal nach einem Ergebnis mit dem Wort Summe suchst?
Dann teste mal:
Private Sub findsumme()
Dim lspalte As Integer
With Worksheets("Tabelle1")
For lspalte = 1 To 200
If InStr(Cells(7, lspalte), "Summe")  0 Then
MsgBox ("Das Wort Summe wurde in Spalte " & lspalte & " gefunden")
Exit For
End If
Next lspalte
End With
End Sub
Code ist ohne Gewähr, da ich keine Bsp.-Datei hatte um ihn im "Original" zu testen.
Gruß
Stefan
AW: Excel VBA letzte Spalte in Zeile 7 mit Teilstring
07.02.2020 07:44:12
W
Hallo Stefan,
wie man mein Problem mit einer Loop lösen kann, war mir bekannt. Meine Frage bezog sich darauf, wie man das Problem mit der FIND-Funktion lösen kann. Außerdem suche ich die letzte Spalte mit dem String.
Trotzdem: Danke.
Gruß W H21
Anzeige

434 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige