Morgen allerseits,
für eine Art Gantt-Diagramm in Excel suche ich nach einer Möglichkeit die Höhe jeder Zeile in einem gewissen Bereich an den Wert in z.B. Spalte E anzupassen. D.h. je höher der Wert in Spalte E, destö größer soll die jeweilige Zeilenhöhe sein. Hintergrund: In der Spalte steht sozusagen der Umfang/die Mächtigkeit einer Aufgabe, die dann in der entsprechenden GanttChart in der gleichen Zeile durch die Höhe des Balkens visualisiert werden soll.
Mit der bedingten Formatierung wird das vermutlich nicht klappen, oder!? Daher muss wohl ein VBA-Makro her. Davon wiederum habe ich leider keine Ahnung. Der Freund aller Ahnungslosen (Google) hat mir schonmal folgendes geliefert:
Private Sub Worksheet\_Change(ByVal Target As Range)
'Target wird auf den sich überschneidenden Bereich gesetzt, um bei
'Mehrfachmarkierungen die ausserhalb des eingeschränkten Bereiches
'liegenden Zellen nicht ebenfalls zu verändern
'Hier den Bereich anpassen
Set Target = Application.Intersect(Target, Range("E1:E30"))
'Wenn nicht innerhalb des Bereiches wird die Prozedur verlassen
If Target Is Nothing Then Exit Sub
'Errorhandling aktivieren, um im Falle eines Fehlers die Ereignisse
'am Ende wieder zu aktivieren
On Error GoTo ErrorHandler
'Ereignisse ausschalten, um das Change-Ereignis nicht erneut auszulösen
Application.EnableEvents = False
'Eine Range-Variable deklarieren
Dim rngZelle As Range
'jede Zelle innerhalb des Target-Bereiches durchlaufen
For Each rngZelle In Target
'Dein Code zur Bearbeitung der einzelnen Zelle
Next rngZelle
ErrorHandler:
Application.EnableEvents = True 'Ereignisse wieder einschalten
End Sub
Für „'Dein Code zur Bearbeitung der einzelnen Zelle“ fehlt mir jetzt die entsprechende Syntax… Der Makro-Recorder verrät mir, dass es ungefähr so etwas sein müsste (Zeilenhöhe soll z.B. 12,75+Wert in der auslösenden Zelle sein):
Rows(??????).Select
Selection.RowHeight = 12.75+Cell.Value
Die ??? dokumentieren meine Ahnungslosigkeit - wie spreche ich die Zeile der auslösenden Zelle an?
Kann mir da jemand mit der Syntax helfen?
Oder bin ich vielleicht völlig auf einem Holzweg?
Besten Dank schonmal und Gruß,
KoF.