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

Automatische Positionsänderung AutoForm

Automatische Positionsänderung AutoForm
24.04.2009 13:55:41
Peter
Hallo zusammen,
ich brauche mal wieder Eure Hilfe und zwar bei folgendem Problem: ich habe mir in Excel ein Tool gebastelt, mir dessen Hilfe ich einen Projektplan erstellen kann. Am Anfang einer Zeile steht dann das jeweilige Arbeitspaket, dann kommt das Start und das Enddatum. Aus diesen Daten wird dann ein Projektplan mit Balken gezeichnet. Soweit mal die Beschreibung.
Nun das Problem: An manchen Enddaten ist ein Meilenstein erreicht. Um das grafisch zu verdeutlichen habe ich ein Makro geschrieben, mit dem ich an die entsprechende Stelle im Plan (in der Regel am Ende eines Balkens) eine Raute zeichne. Ich klicke dazu auf die Zelle, die den Mittelpunkt der Raute darstellen soll und zeichne dann durch Drücken eines Knopfes und Ausführung des Makros meine Raute. Der Code sieht folgendermaßen aus:

Sub Meilenstein_erstellen()
Dim objShape As Shape, Zelle As Range
Dim ZelleZiel As Range
ActiveSheet.Unprotect
ActiveSheet.Shapes("AutoShape 43").Select
With Selection
.PrintObject = True
End With
Set Zelle = ActiveCell
Set objShape = ActiveSheet.Shapes("AutoShape 43") 'zu kopierendes Objekt(Shape)
If Intersect(Zelle, Range("I27:EM70")) Is Nothing Then
'aktive Zelle ist nicht im Auswahlbereich
Set ZelleZiel = Range("AF16")
Else
Set ZelleZiel = Zelle
End If
objShape.Copy
ActiveSheet.Paste
'Zuletzt eingefügte Raute als Objekt zuordnen
Set objShape = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
'Shape in Zielzelle zentrieren
With objShape
.Left = ZelleZiel.Left + ZelleZiel.Width * 0.5 - .Width * 0.5
.Top = ZelleZiel.Top + ZelleZiel.Height * 0.5 - .Height * 0.5
End With
ActiveSheet.Shapes("AutoShape 43").Select
With Selection
.PrintObject = False
End With
ZelleZiel.Select
ActiveSheet.Protect AllowFormattingCells:=True, AllowInsertingRows:=True, AllowDeletingRows: _
_
=True
End Sub


Nun gibt es Stellen, an denen es super wäre, wenn die Raute automatisch eingefügt wird bzw. ihre Position verändert, wenn man das Meilensteindatum verändert. Und hier kommt Ihr jetzt ins Spiel: geht das? Wenn ja, wie?
Meine Idee ist, dass ich über VBA ständig das Enddatum überwachen lasse und bei Bedarf eine entsprechende Neupositionierung der Raute veranlasse.
Für die Positionsbestimmung müsst Ihr noch folgendes wissen: die Zeile soll die gleiche sein wie die, in der das Datum steht. Die Spalte ergibt sich, indem man in der Zeile 26 das entsprechende Datum sucht und sich den Spaltenbuchstaben nimmt.
So, ich hoffe, ich habe mein Problem ausreichend darlegen können. Leider kann ich die Originaldatei nicht hochladen und hoffe deshalb, dass Ihr mir trotzdem helfen könnt.
Schöne Grüße und vielen Dank schonmal im Voraus
Peter

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Mit einer UDF
24.04.2009 15:03:49
ransi
HAllo Peter
Ich klicke dazu auf die Zelle, die den Mittelpunkt der Raute darstellen soll und zeichne dann durch
Drücken eines Knopfes und Ausführung des Makros meine Raute.

Das ist aber nicht "Stand der Technik".
Sowas kannst du dynamisch mit einer Funktion erledigen.

Nun gibt es Stellen, an denen es super wäre, wenn die Raute automatisch eingefügt wird bzw.
ihre Position verändert, wenn man das Meilensteindatum verändert. Und hier kommt Ihr jetzt ins Spiel: geht das?


Schau dir mal die Beispieldatei an.
https://www.herber.de/bbs/user/61407.xls
Ist zwar mit einem Rectangel, aber das kannst du mühelos anpassen.
ransi

Anzeige
AW: Mit einer UDF
05.05.2009 15:59:36
Peter
Hallo ransi,
danke für Deine Hilfe und sorry, dass ich so lange nicht geantwortet habe. Hat sich dann schließlich doch erledigt gehabt. Aber ich werd's trotzdem nochmal ausprobieren.
Schöne Grüße
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige