Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Frame
BildScreenshot zu Frame Frame-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Formatierung einer Zelle (Advanced)

Betrifft: Formatierung einer Zelle (Advanced) von: Schmitty
Geschrieben am: 26.08.2014 10:44:13

Guten morgen zusammen!

Wie einige von Euch wissen, programiere ich eine recht umfangreiche Kundenliste (dazu gibt es hier im Forum auch schon Beiträge von mir). Um jetzt festlegen, welchen Weg ich bei der Programmierung einschlagen will, muss ich eine Frage der Formatierung in EXCEL beantwortet haben, da diese direkten Einfluss auf die weitere Vorgehensweise hat.

Zur Frage:
Ich habe eine Zelle, welche eine maximale Höhe haben darf (sonst wird sie nicht mehr richtig angezeigt.) Jedoch kann es vorkommen, dass in dieser Zelle mehr Informationen unter einander stehen, als direkt angezeigt werden können (wegen der maximalen Zellenhöhe). Bis jetzt habe ich mich damit begnügt, in die Zelle zu klicken, dann kann ich nämlich den Inhalt innerhalb der Zelle scrollen). Das wird aber in der Zukunft nicht mehr möglich sein, da dann in der Zelle eine Formel steht (welche den Inhalt erzeugt) und nicht mehr die eigentlichen Werte. Wie bekomme ich es dann geregelt, dass mir Excel alle Werte anzeigt, ohne die Zellenhöhe zu ändern. Ist es möglich innerhalb einer Zelle den Inhalt zweispaltig wiederzugeben (ohne wirklich eine neue Tabellen-Spalte zu erzeugen) oder kann ich das Anzeigeverhalten der Zelle ändern (bis jetzt werden die oberen Werte in der Zelle angezeigt und die unteren, welche nicht mehr passen abgeschnitten. Mir würde es reichen, wenn es genau umgekehrt wäre, sprich, die letzten Werte in der Zelle werden angezeigt und die oberen Werte werden abgeschnitten.)?

Gruß
Christian

  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: {Boris}
Geschrieben am: 26.08.2014 10:58:14

Hi,

warum zeigst Du den Zellinhalt nicht einfach in einem Kommentar an?

VG, Boris


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: Schmitty
Geschrieben am: 27.08.2014 09:23:39

Guten Morgen Boris,

ganz einfach, weil ich nicht weiß, wie ich das für einige bestimmten Zellen im Bedarfsfall erzeuge.

Gruß
Christian


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: {Boris}
Geschrieben am: 27.08.2014 09:54:49

Hi Christian,

wenn die Zellen bekannt sind, dann z.B. so:

Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Const sString As String = "A1,B5,C10,D12" 'Um diese Zellen geht es im Beispiel
With Target
    If InStr(1, sString, .Address(0, 0)) Then
        On Error Resume Next
        .Comment.Delete
        .AddComment .Value
        .Comment.Shape.TextFrame.AutoSize = True
         On Error GoTo 0
    End If
End With
End Sub
VG, Boris


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: JoWE
Geschrieben am: 26.08.2014 11:12:27

Hallo Christian,
vllt. so (als MsgBox):

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    MsgBox "Inhalt von Zelle: " _
        & Target.Address & " = " _
        & vbCr & vbCr & Target.Value
End Sub

Gruß
Jochen


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: Schmitty
Geschrieben am: 27.08.2014 09:21:06

Hallo Jochen,

coole Idee!

Habe damit aber zwei Probleme:

1.) Im Moment öffnet Excel für jede Zelle die ich anklicke das neue Fenster. Das ist sehr unpraktisch. Ich brauche dass ja nur für Zellen, wo der komplette Inhalt nicht mehr angezeigt wird.

2.) Das neue Fenster muss teilweise Scrollbar sein, da zu viele Werte in diesem Angezeigt werden könnte.

Gruß
Christian


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: JoWE
Geschrieben am: 27.08.2014 11:06:25

Christian,
dann nimm doch einfach das Worksheet_BeforeDoubleClick-Ereignis.
Dann passiert das eben nur wenn Du auf die Zelle doppelt klickst (evtl. beschränken auf einen bestimmten Bereich siehe auskommentierter Code):

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    MsgBox "Inhalt von Zelle: " _
    & Target.Address & " = " _
    & vbCr & vbCr & Target.Value
    'If Target.Column = 3 And Target.Row >= 3 And Target.Row <= 10 Then
    'einschränken auf die Spalte 3 und hier nur die Zeilen 3 bis 10
    '    MsgBox "Inhalt von Zelle: " _
    '    & Target.Address & " = " _
    '    & vbCr & vbCr & Target.Value
    'End If
End Sub

Gruß
Jochen


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: Schmitty
Geschrieben am: 27.08.2014 11:13:37

Hallo Jochen!

Super Sache, jetzt wird nur noch dann das Fenster geöffnet, wenn ich es brauche!

Das Fenster ist nur teilweise so groß, dass ich nicht alle Inhalte sehen kann.
Kann ich das Fenster auch scrollbar machen?

Gruß
Christian


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: JoWE
Geschrieben am: 27.08.2014 12:40:03

nee, das geht nicht.
Aber wenn da soviel Text drin steht, würde ich ja doch eher zu einer Userform raten, die sich auf einen Doppelklick hin öffnet. Also statt der Msgbox den Inhalt von Target.Value in eine Textbox einer Userform übergeben, hier sind Zeilenumbrüche machbar (Multiline=true) und die Größe der UF als auch der Textbox ist relativ frei wählbar.
z.B. so:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    UserForm1.TextBox1 = Target.Value
    UserForm1.Show
    'If Target.Column = 3 And Target.Row >= 3 And Target.Row <= 10 Then
    'einschränken auf die Spalte 3 und hier nur die Zeilen 3 bis 10
    '    UserForm1.TextBox1 = Target.Value
    '    userfrom1.show
    'End If
End Sub

Jochen




  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: Daniel
Geschrieben am: 26.08.2014 11:23:38

 Bis jetzt habe ich mich damit begnügt, in die Zelle zu klicken, dann kann ich nämlich den Inhalt innerhalb der Zelle scrollen). Das wird aber in der Zukunft nicht mehr möglich sein, da dann in der Zelle eine Formel steht (welche den Inhalt erzeugt) und nicht mehr die eigentlichen Werte.
wenn jetzt Formeln die Werte erzeugen, dann kannst du dir in der Bearbeitungszeile die Werte anzeigen lassen, indem du die ganze Formel markierst und F9 drückst.
Dann wird der markierte Formelteil durch sein Ergebnis ersetzt.
Du musst nur darauf achten, dass du jetzt die Zelle mit dem Kreuz oder mit ESC verlässt.
Drückst du ENTER, dann wird der angezeigte Wert in die Zelle übernommen und die Formel ist futsch.

wenn du alles in der Zelle angezeigt haben willst, dann kannst du ja einfach die Option "Zeilenumbruch" im Zellformat deaktiviern, dann wird alles in eine Zeile geschrieben.

Gruß Daniel


  

Betrifft: AW: Formatierung einer Zelle (Advanced) von: Schmitty
Geschrieben am: 27.08.2014 09:22:45

Hallo Daniel,

danke für deine Antwort.

Die Gefahr das ich oder ein anderer Benutzer die Formel löscht ist einfach zu groß.
Deshalb halte ich diesen Lösungsvorschlag für meinen individuellen Fall nicht für zielführend.

Gruß
Christian


  

Betrifft: AW: Anzeige in Userform von: Daniel
Geschrieben am: 27.08.2014 10:04:36

Hi

Du könntest auch eine Userform erstellen und den Text der aktiven Zelle dort anzeigen lassen.

erstelle eine Userform mit einer Textbox und folgenden Eigenschaften:
Userform:
- ShowModal - False
Textbox:
- Multiline - True
- WordWrap - True
- Scrollbars - Both

ins Modul des Tabellenblatts kommt folgender Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
UserForm1.TextBox1.Text = ActiveCell.Text
On Error GoTo 0
End Sub
die Userform starten kannst du mit dem Befehl:
Userform1.Show

Diesen würde ich einem Button zuweisen, um die Userform zu starten.
die Userform startest du, wenn du diese Zellen betrachten willst und lässt sie ansonsten geschlossen.

Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Formatierung einer Zelle (Advanced)"