Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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

Größe Text anpassen

Größe Text anpassen
19.06.2014 22:15:31
stef26

Hallo Zusammen,
ich hab ein Problem bei dem ich nicht so wirklich weiterkomme...
Ich lade mir eine Stückliste in mein Tool. Nun würde ich gerne eine Art Beschriftung machen, die ich frei im Tabellenblatt schieben möchte.
Was mir fehlt ist die Größenanpassung des Textes in der verschiebbaren Beschriftung.
D.h. verkleinere ich mein Beschriftungsfeld, so sollte das auch in der Größe des Textes passieren. (Ähnlich der Funktion Größe an Zelle anpassen.)
Hier mal ein einfach mal mein Beispiel ansehen, dann versteht ihr vermutlich besser was ich meine...
https://www.herber.de/bbs/user/91189.xlsx
Falls jemand eine Idee dazu hat wäre ich sehr dankbar. Vielleicht ist es ja auch ganz anders zu realisieren. Ich weiß auf jeden Fall nicht wirklich weiter.
Liebe Grüße
Stefan

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

Betreff
Datum
Anwender
Anzeige
Geht nicht!
20.06.2014 09:19:40
EtoPHG
Hallo Stefan,
Ein Textfeld hat die Eigenschaft (unter Form formatieren, Textfeld): [x] Grösse der Form dem Text anpassen
Umgekehrt ist nicht möglich! D.h. bei Verkleingerung der Form wird der Schriftgrad nicht automatisch angepasst!
Gruess Hansueli
P.S. schon interessant, was die heutigen Weltprobleme sind: Aussehen, Aussehen, Aussehen, Aussehen

AW: Geht nicht!
20.06.2014 11:25:00
stef26
Danke für die Info
Schade dann muss ich mir was anderes einfallen lassen...
:-)
Stefan

AW: Geht nicht!
21.06.2014 18:26:23
Mullit
Hallo,
das könnte man sich vielleicht selbst bauen;
zunächst müsste man Deine Gruppierungen auflösen.
Code in das Klassenmodul der Arbeitsmappe:
Option Explicit

Private msngArrShpSize(1 To 2) As Single
Private mcolShapes As Collection

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Set mcolShapes = Nothing
End Sub

Private Sub Workbook_Open()
Set mcolShapes = New Collection
With ActiveSheet.GroupObjects("Gruppieren 5")
    msngArrShpSize(1) = .Height
    msngArrShpSize(2) = .Width
End With
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call prcRefresh
End Sub

Private Sub prcRefresh()
  Dim objRect As Rectangle
  Dim strName As String
  Dim strArrGroupNames() As String
  Dim lngResize As Long, lngIndex As Long
  Static blnArrInit(1 To 3) As Boolean
  Static sngOldHeight As Single, sngSize As Single
  If Not blnArrInit(1) Then
     sngOldHeight = msngArrShpSize(1)
     blnArrInit(1) = Not blnArrInit(1)
   End If
  With ActiveSheet.GroupObjects("Gruppieren 5")
      If .Height <> sngOldHeight Then
        lngResize = lngResize + 2 * (.Height - msngArrShpSize(1)) \ 20
        strName = .Name
        sngOldHeight = .Height
        With .ShapeRange
            Redim strArrGroupNames(1 To .GroupItems.Count) As String
            For lngIndex = 1 To .GroupItems.Count
               strArrGroupNames(lngIndex) = .GroupItems(lngIndex).Name
            Next
        End With
        .Ungroup
        With ActiveSheet
            If Not blnArrInit(3) Then
              mcolShapes.Add .Rectangles("Rechteck 2")
              mcolShapes.Add .Rectangles("Rechteck 4")
              blnArrInit(3) = Not blnArrInit(3)
            End If
            For Each objRect In mcolShapes
               With objRect.Characters.Font
                   If Not blnArrInit(2) Then
                     sngSize = .Size
                     blnArrInit(2) = Not blnArrInit(2)
                   End If
                   .Size = sngSize + lngResize
               End With
            Next
            .Shapes.Range(Array(strArrGroupNames(1), strArrGroupNames(2), _
                strArrGroupNames(3))).Group.Name = strName
        End With
      End If
  End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 14

Zunächst ist nur die Height-Anpassung eingebaut.
Der Refresh findet immer beim Neuklick in eine Zelle statt,
wenn man die Textanpasssungen dynamisch beim Grösser/Kleiner-Ziehen
haben möchte, müsste man u.U. noch Timer-Programmierung einbauen...
Gruß,

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige