Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilenumbruch

Betrifft: Zeilenumbruch von: Mark
Geschrieben am: 08.11.2014 14:14:08

Einen schönen guten Abend wünsche ich Euch , ich habe ein kleines Problem

ich habe folgenden Code...


Private Sub Worksheet_Change(ByVal Target As Range)
 Dim strText$, strText2$, strTextNeu$
 If Intersect(Target, Columns(1)) Is Nothing Then Exit Sub
 strText = Target
 Do
 If Len(strText) < 20 Then
 strText2 = strText
 Else
 strText2 = Left(strText, InStrRev(Left(strText, 19), " ") - 1)
 End If
 strTextNeu = IIf(strTextNeu = "", strText2, strTextNeu & Chr(10) & strText2)
 strText = Trim(Right(strText, Len(strText) - Len(strText2)))
 Loop While strText <> ""
 Application.EnableEvents = False
 Target = strTextNeu
 Application.EnableEvents = True
 End Sub
dieser funktioniert aber leider nur in meinem Blankdokument, nicht jedoch in meinem Tabellendokument, kann aber nicht herausfinden ob es irgendwelche Konflikte gibt, kann mir jemand helfen oder Tipps geben??

Gruß, Mark

  

Betrifft: AW: Zeilenumbruch von: Hajo_Zi
Geschrieben am: 08.11.2014 14:27:50

Hallo Mark,

ich hätte den Code ein wenig anders geschrieben.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strText$, strText2$, strTextNeu$
    If Not Intersect(Target, Columns(1)) Is Nothing Then
        Dim dblCount As Double
        If CallByName(Selection, IIf(Val( _
            Application.Version) > 11, "CountLarge", "Count"), VbGet) = 1 Then
            ' von Nepumuk
            strText = Target
            Do
                If Len(strText) < 20 Then
                    strText2 = strText
                Else
                    If InStr(strText, " ") > 0 Then
                        Exit Do
                    Else
                        strText2 = Left(strText, InStrRev(Left(strText, 19), " ") - 1)
                    End If
                End If
                strTextNeu = IIf(strTextNeu = "", strText2, strTextNeu & Chr(10) & strText2)
                strText = Trim(Right(strText, Len(strText) - Len(strText2)))
            Loop While strText <> ""
            Application.EnableEvents = False
            Target = strTextNeu
            Application.EnableEvents = True
        End If
    End If
End Sub
Ich konnte nicht sehe was Du für ein Problem hast. Was wohl daran liegt das ich Deinen Test nicht gesehen habe.

GrußformelHomepage


  

Betrifft: AW: Zeilenumbruch von: Mark
Geschrieben am: 08.11.2014 15:13:07

erstmal ganz lieben Dank für die schnelle Antwort.

Also, nein, es gibt keine Fehlermeldung, wenn ich den Code einfüge.

der Code soll ja in jeder Zelle des Dokuments funktionieren indem er Die Eingabe mit 20 Zeichen pro Zeile, in einer Zelle beschränkt und danach eine neue Zeile anfängt.

Ich habe in meiner Tabelle freie Zelle (ohne Formatierung) und Zellen die mit Formeln (meist WENN- Formeln), weiterhin haben viele Zellen ein Dropdownmenü( was ich aber schon auf einem neuen leeren Blatt ausprobiert habe und es damit keine Probleme gab.

Ich habe gedacht, den Code einfach fürs ganze Blatt anzuwenden ohne feste Ziele zu beschreiben, da es sehr viele Zellen sind, die damit angesprochen werden sollen.

soll ich Dir die Tabelle mal als anhang schicken?

Ich denke, das irgendetwas in meiner Tabelle den Code stört, ich weiß nur nicht was.

Lieben Gruß,
Mark

PS ich probiere den Code nachher mal aus.


  

Betrifft: AW: Zeilenumbruch von: Hajo_Zi
Geschrieben am: 08.11.2014 15:17:16

Hallo Mark,

auf Formeln reagiert der Code nicht.

Gruß Hajo


  

Betrifft: AW: Zeilenumbruch von: Mark
Geschrieben am: 08.11.2014 20:20:30

ok welche möglichkeit habe ich noch um die Zeilen einer Zelle zu beschränken?


  

Betrifft: AW: Zeilenumbruch von: Mark
Geschrieben am: 08.11.2014 20:15:47

also ich habe jetzt alles ausprobiert aber der Code funktioniert nur ein einem leeren Dokument, egal was ich mache.

Ich denke irgendetwas stört den Code, aber ich weiß nicht was.

kannst Du mir noch,al weiterhelfen. Ich habe die Datei auf den Server gelegt

Lieben Gruß, Mark


  

Betrifft: AW: Zeilenumbruch von: Mark
Geschrieben am: 08.11.2014 20:17:59

https://www.herber.de/bbs/user/93634.xlsm


  

Betrifft: AW: Zeilenumbruch von: Daniel
Geschrieben am: 08.11.2014 22:29:13

Hi

Das Problem liegt daran, dass du in dieser Programmzeile mit Columns(1) festlegt,

If Not Intersect(Target, Columns(1)) Is Nothing Then

Dass...


  

Betrifft: AW: Target mit mehreren Zellen? von: Daniel
Geschrieben am: 08.11.2014 14:50:47

Hi
Du solltest schon etwas genauer beschreiben, was nicht funktioniert.
Gibt es ein Fehlermeldung?
wenn ja, welche und in welcher Zeile tritt sie auf?
Welche Zelle(n) umfasst Target und was steht dann in der Zelle drin?

Eine Fehlermöglichkeit die viele übersehen ist, dass Target nicht nur aus einer Zelle bestehen kann, sondern aus mehreren.
Das passiert beispielsweise oft beim Leeren von Zellen oder wenn man mit Kopieren Daten überträgt.

Dein Code ist darauf aber nicht eingerichtet.

Probiere mal ob der Code funktioniert, wenn du von Target immer nur die erste Zelle verwendest und überall Target(1) schreibst.

Gruß Daniel


  

Betrifft: AW: Target mit mehreren Zellen? von: Mark
Geschrieben am: 08.11.2014 15:11:45

erstmal ganz lieben Dank für die schnelle Antwort.

Also, nein, es gibt keine Fehlermeldung, wenn ich den Code einfüge.

der Code soll ja in jeder Zelle des Dokuments funktionieren indem er Die Eingabe mit 20 Zeichen pro Zeile, in einer Zelle beschränkt und danach eine neue Zeile anfängt.

Ich habe in meiner Tabelle freie Zelle (ohne Formatierung) und Zellen die mit Formeln (meist WENN- Formeln), weiterhin haben viele Zellen ein Dropdownmenü( was ich aber schon auf einem neuen leeren Blatt ausprobiert habe und es damit keine Probleme gab.

Ich habe gedacht, den Code einfach fürs ganze Blatt anzuwenden ohne feste Ziele zu beschreiben, da es sehr viele Zellen sind, die damit angesprochen werden sollen.

soll ich Dir die Tabelle mal als anhang schicken?

Ich denke, das irgendetwas in meiner Tabelle den Code stört, ich weiß nur nicht was.

Lieben Gruß,
Mark


  

Betrifft: AW: Target mit mehreren Zellen? von: Daniel
Geschrieben am: 08.11.2014 16:13:16

Hi
Das bereitstellen einer Beispieltabelle ist immer sinnvoll, dann seit man meist sofort woran es liegt und muss nicht lange raten.
Nutze die Uploadfunktion des Forums.

Gruß Daniel


  

Betrifft: AW: Target mit mehreren Zellen? von: Mark
Geschrieben am: 08.11.2014 20:19:24

ok habe die datei hochgeladen


  

Betrifft: AW: Target mit mehreren Zellen? von: Daniel
Geschrieben am: 08.11.2014 22:31:35

... der Code nur ausgeführt wird, wenn die Eingabe in Spalte A (Spalte 1) erfolgt.
...


  

Betrifft: AW: Target mit mehreren Zellen? von: Mark
Geschrieben am: 08.11.2014 20:21:57

ok habe die datei hochgeladen
PW: indivita


  

Betrifft: AW: Target mit mehreren Zellen? von: Daniel
Geschrieben am: 08.11.2014 22:33:29

.. und in deiner Echtdaten erfolgt die Eingabe aber in Spalte B, daher musst du den Code entsprechend anpassen und das Columns(1) in Columns(2) abändern.

Gruß Daniel


  

Betrifft: AW: Target mit mehreren Zellen? von: Mark
Geschrieben am: 08.11.2014 23:39:09

Ok
Werde es morgen ausprobieren.
Eine frage habe ich aber noch.
Was muss ich am code ändern wenn in spalte b.c.d was eingetragen wird? Was dann auch der fall sein wird. In spalte b werden dann nur probleme, in c nur ziele und d die massnahmen eingetragen.
Also werden alle 3 spalten definitiv beschriftet.

Nochmal herzlichen dank für die schnelle und vute hilfe


  

Betrifft: AW: Target mit mehreren Zellen? von: daniel
Geschrieben am: 09.11.2014 00:38:33

Einen Zell Bereich über mehrere Spalten beschreibt man mit Range("B:D") Spaltenbuchstabe der ersten Spalte : Spaltenbuchstabe der letzten Spalte oder mit Columns(x).Resize(, y), mit x als Spalte Nummer der ersten Spalte und y als Anzahl der Spalten.

GRUSS Daniel.


  

Betrifft: AW: Target mit mehreren Zellen? von: Mark
Geschrieben am: 09.11.2014 01:02:41

Wow, danke

Werde es heute früh wenn ich von der Arbeit komme ausprobieren.

Nochmals ganz herzlichen Dank

Gruß
Mark


  

Betrifft: AW: Target mit mehreren Zellen? von: Mark
Geschrieben am: 10.11.2014 11:00:58

so, herzlichen Dank, für Eure Hilfe, es funktioniert alles, Ihr seid echt klasse :-)

Danke nochmal an alle

Gruß,

Mark


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilenumbruch"