Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
388to392
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
388to392
388to392
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

erste Zeile extrahieren - VBA

erste Zeile extrahieren - VBA
27.02.2004 19:59:42
Franz W.
Hallo Fachleute,
ich habe Zellen, in die per SVerweis Einträge aus Zellen von einem anderen Blatt geholt werden. Diese Einträge können ein- oder mehrzeilig sein (dort werden die Einträge - falls mehrzeilig - mittels eingetragen).
Ich möchte nun per VBA von diesen ZEllen jeweils die erste Zeile rausziehen - nur die erste Zeile ist wichtig, egal wieviele Zeilen tatsächlich drin stehen. Geht das aus der SVerweis-Zelle (denn nur da finde ich sie sicher ;-))?? Könnt ihr mir da bitte helfen, ich weiß gar nicht wie...
Vielen Dank im Voraus und Grüße
Franz

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: erste Zeile extrahieren - VBA
27.02.2004 20:05:07
PeterW
Hallo Franz,
hast du in der Problembeschreibung etwas unterschlagen? "dort werden die Einträge - falls mehrzeilig - mittels eingetragen".. meinst du damit den automatischen Zeilenumbruch oder handelt es sich um eine Verkettung von mehreren Sverweisen?
Gruß
Peter
AW: erste Zeile extrahieren - VBA
27.02.2004 20:07:29
Franz W.
Hallo Peter,
das kommt davon, wenn man die Vorschau nicht mehr durchliest: "wird eingetragen mittels ALT + ENTER" (das hatte ich in spitzen Klammern und das erscheint dann wohl nicht...)
Vielen Dank schon mal und Grüße
Franz
AW: erste Zeile extrahieren - VBA
27.02.2004 20:25:32
PeterW
Hallo Franz,
mit
InStr(1, Cells(Zeile, Spalte), Chr(10))
findest du die Position des Umbruchs, der Rest ist nur noch Stringbearbeitung (Left, Len).
Gruß
Peter
PS: der Betreiber hat sich schon was beim Vorschaufenster gedacht. ;-)
PSS und zu den spitzen Klammern schau mal in die Forums FAQ ;-)
Anzeige
AW: erste Zeile extrahieren - VBA
27.02.2004 20:28:03
Franz W.
Hallo Peter,
damit komm ich klar, vielen Dank. (Und mit deinen PS/PPS hast du ja auch recht :-)))
Vielen Dank und Grüße
Franz
AW: erste Zeile extrahieren - VBA
27.02.2004 20:25:01
FP
Hallo Franz,
das geht so:
Public Function GetZeile1(rng As Range) As String
GetZeile1 = WorksheetFunction.Substitute(rng, Chr(10), "-")
GetZeile1 = Left(GetZeile1, InStr(GetZeile1, "-") - 1)
End Function
oder per Formel:
Excel Jeanie HTML
Anzeige
AW: erste Zeile extrahieren - VBA
27.02.2004 20:36:36
Franz W.
Hallo Franz,
ich probier immer alle angebotenen Lösungen aus, und drum versuch ich mich grad an deiner Funktion. Damit bekomme ich allerdings einen Fehler - und hab sie noch nicht ganz verstanden, und drum kriege ich den Fehler auch nicht raus:
Meldung: "Ungültiger Prozeduraufruf oder ungültiges Argument" bei der zweiten Zeile der Funktion:
GetZeile1 = Left(GetZeile1, InStr(GetZeile1, "-") - 1)
Grüße
Franz
AW: erste Zeile extrahieren - VBA
27.02.2004 20:47:20
FP
Hallo Franz,
bei mir funktioniert beides, habe es aber noch etwas verkürzt
( habe WECHSELN bzw. Substitute nur verwendet, weil unter Excel gilt:
SUCHEN(was, wo)
unter VBA aber:
INSTR(wo, was)
habe das vertauscht und war daher der Meinung, Excel findet die Zeilenschaltung nicht :-(
VBA-Funktion:
Public Function GetZeile1(rng As Range) As String
GetZeile1 = Left(rng, InStr(rng, Chr(10)) - 1)
End Function
Excel Jeanie HTML
Anzeige
was mache ich falsch??
27.02.2004 20:53:56
Franz W.
Hallo Franz,
auch mit der verkürzten Funktion
Public

Function GetZeile1(rng As Range) As String
GetZeile1 = Left(rng, InStr(rng, Chr(10)) - 1)
End Function

krieg ich diesselbe Fehlermeldung. Ich setze sie so ein:
Dim UrlGrund As String
UrlGrund = GetZeile1(Cells(t, m + 2))
Hast du ne Idee, was ich da falsch mache??
Grüße
Franz
AW: was mache ich falsch??
27.02.2004 21:23:10
PeterW
Hallo Franz,
hab das auch mal getestet und es läuft problemlos (Cells(1, 5) ist meine Zelle mit Umbruch)

Sub Umbruch()
Dim str As String
str = GetZeile1(Cells(1, 5))
MsgBox str
End Sub


Function GetZeile1(rng As Range) As String
GetZeile1 = Left(rng, InStr(rng, Chr(10)) - 1)
End Function

Gruß
Peter
Anzeige
AW: was mache ich falsch??
27.02.2004 21:29:59
Franz W.
Hallo Peter,
vielen Dank für deine Mühe. Da gehst du ja denselben Weg wie ich. Aber bei mir geht's nicht!! Hab auch schon mal anstelle der SVerweis-Formel die Werte direkt eingesetzt, ändert aber auch nix !?! Ich krieg das nicht hin...
Beste Grüße
Franz
AW: was mache ich falsch??
27.02.2004 21:36:47
FP
Hallo Franz,
Vorschlag von Franz zu Franz:
Mappe speichern
Excel beenden
Excel neu starten
Mappen öffnen und noch einmal probieren
funktioniert's dann?
( -> Excel/VBA "spínnt" manchmal, vor allem, wenn vorher ein Fehler die Code-Ausführung unterbrochen hat )
Servus aus dem Salzkammergut
Franz
Anzeige
Ach ich Trottel!
27.02.2004 21:54:07
Franz W.
Hallo Franz und Peter,
muss natürlich erst abfragen ob der Inhalt der ZElle überhaupt zweizeilig ist!! (Hab ja geschrieben, dass die Eintragungen ein- oder mehrzeilig sein können). Und wenn der Eintrag nur einzeilig ist, gibt's natürlich den Fehler!!!
Vielen Dank und beste Grüße
Franz
AW: mit UDF geht das so
27.02.2004 22:36:03
FP
Hallo Franz,
Public

Function GetZeile1(rng As Range) As String
If rng Like "*" & Chr(10) & "*" Then
GetZeile1 = Left(rng, InStr(rng, Chr(10)) - 1)
Else
GetZeile1 = rng
End If
End Function

Servus aus dem Salzkammergut
Franz
AW: mit UDF geht das so
27.02.2004 22:54:16
Franz W.
Hallo Franz,
super, danke! Ich hab bisher deine vorige Funktion und Peter's Vorschlag kombiniert:
If InStr(1, Cells(t, m + 2), Chr(10)) Then
UrlGrund = GetZeile1(Cells(t, m + 2))
Else
UrlGrund = Cells(t, m + 2)
End If
Aber alles gleich in der UF macht's bei mehrmaligem Einsatz natürlich einfacher!!
Vielen Dank dafür und beste Grüße
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige