Tag Archives: Formen

Wenn weibliche Tintenfische keine Lust haben sich zu paaren, erwürgen sie das Männchen und verspeisen es. Nur mal so am Rande erwähnt …

Schönen guten Tag, Herr Martin,

Ich möchte wissen, ob es eine Funktion gibt, die mir das Einbetten von Visio-Organisations-Diagrammen in PowerPoint ermöglicht, die einem Powerpoint-Anwender die Bearbeitung der Objekte ermöglicht, ohne dass er Visio auf dem Rechner installiert hat.

Ich hatte gehofft, dass es im Hintergrund der Einbettung eine solche Anwendung gäbe, doch ich habe verschiedene Objekt-Einbettungen in PowerPoint aus Visio ausprobiert, habe es mit Kopieren und mit Links versucht, aber meine Kollegin, die keine Visio-Lizenz auf dem Rechner hat, kann keine davon bearbeiten (die Links griffen übrigens auf einen für meine Kollegin gesperrten Ordner zu, das wird auch so bleiben).

Vielen Dank im Voraus,

mit freundlichen Grüßen aus Hamburg,

####

Hallo Frau T.,

ich fasse Ihre Frage zusammen: Sie möchten eine Visio-Zeichnung bearbeiten, ohne dass Visio installiert ist. Das geht nicht!

Es ginge auch nicht, wenn Sie eine Excel-Tabelle nach Word kopieren und diese dann auf einem anderen Rechner, auf dem kein Excel installiert ist, bearbeiten wollen.

Ich habe es mal probiert: Wenn Sie die Visio-Zeichnung kopieren

und als „Erweiterte Metadatei“ in PowerPoint einfügen,

können Sie diese in PowerPoint als „Grafik umwandeln“ (bearbeiten),

die Gruppierung aufheben und nun jedes Objekt wie eine PowerPoint-Form bearbeiten.

Aber ich fürchte, das wollen Sie nicht …

Und: ich fürchte, dass ich Ihnen hier nicht helfen kann.

Liebe Grüße

Rene Martin

Geschirrspülmaschinen sind super – bis man sie ausräumen muss!

Was habe ich nur angerichtet?

In einer Excelschulung wollte ich zeigen, dass zwei gesetzte Filter einem logischen UND entsprechen und somit eine Schnittmenge darstellen:

Ich visualisiere das mit zwei Ellipsen:

Und wollte die Schnittmenge deutlich hervorheben, indem ich beiden Formen kombinieren. Aber das Zusammenführen der Formen ist in Excel leider nicht möglich! Ich habe darüber geschrieben:

https://www.excel-nervt.de/eines-muss-ich-meiner-muedigkeit-ja-lassen-kondition-hat-sie-ja/

Damit habe ich eine kleine Diskussion ausgelöst.

Ernst hat sich nun die Frage gestellt, ob man so ein Problem nicht mit VBA lösen kann. Konkret: ob man die Formen nicht nach PowerPoint kopieren kann, dort zusammenführen kann und anschließend wieder zurück kopieren kann. Die Antwort lautet: „ja“. Allerdings: einige Dinge gibt es hierbei zu beachten:

Im ersten Schritt wird geprüft, ob mindestens zwei Formen markiert wurden.

Anschließend wird ein Auswahldialog aufgerufen:

Er prüft, ob PowerPoint bereits geöffnet ist:

On Error GoTo Fehler
Set PP_app = GetObject(Class:="PowerPoint.Application")
PP_app.Visible = True                                   'Stellt die Sichtbarkeit auf an.
PPObjektaufrufen = True                                 'und setzt die Funktionsrückmeldung auf True.
Exit Function                                           'Funktion wird verlassen.
Fehler:
PPObjektaufrufen = False 'Die Funktionsrückmeldung wird auf False gesetzt.

Falls nicht, wird es geöffnet:

Set PP_app = CreateObject(Class:="Powerpoint.Application")
PP_app.Visible = True                                       'Stellt die Sichtbarkeit auf an.

Wichtig hierbei ist, dass PowerPoint sichtbar ist!

Die Formen werden kopiert und eingefügt:

Selection.Copy                                                      'Die selektierten Formen werden in die Zwischenablage kopiert.
Application.ActiveWindow.Selection.ShapeRange(1).Name = OriginalName 'Danach wird der Originalname der erstselektierten Form wieder hergestellt
PP_app.Presentations.Add.Slides.Add Index:=1, Layout:=ppLayoutBlank 'Es wird eine neue Präsentation mit einer leeren Folie erstellt.
                                                                    'Die Slide.Add-Methode ist eine verborgene PowerPoint-Methode
PP_app.ActivePresentation.Slides(1).Shapes.Paste                    'Die Formen werden aus der Zwischenablage in die PP-Präsentation eingefügt.
PP_app.ActivePresentation.Slides(1).Shapes.SelectAll                'und selektiert.

Dabei war auch die Zeile

PP_app.Presentations.Add.Slides.Add Index:=1, Layout:=ppLayoutBlank

wichtig – die Methode Add der Sammlung Slides ist dies ein verborgenes Element: Diese werden von Intellisense nur dann angezeigt, wenn die Option „verborgene Elemente anzeigen“ bestätigt wurde. Ich habe einmal darüber geschrieben:

https://www.excel-nervt.de/was-war-das-fuer-ein-krach-heute-nacht-die-schuhe-sind-umgefallen-bitte-ich-stand-noch-drin/

Wichtig ist hierbei herauszufinden, welches die zentrale Form ist, also die Form, von welcher die anderen die Formatierung erben:

'PrimaryShape:=  Die Form, von der die resultierende Form ihre Formatierung erbt.
'Wenn Fehler auftritt, wird dieser abgefangen
On Error GoTo Fehler1
PP_app.ActiveWindow.Selection.ShapeRange.MergeShapes MergeCmd:=Formform, _
    PrimaryShape:=PP_app.ActiveWindow.Selection.ShapeRange("PrimaerForm")
'Fehlerroutine zurückstellen auf Fehler allgemein
On Error GoTo FehlerAll

PP_app.ActivePresentation.Slides(1).Shapes.SelectAll            'die neu erstandene Form wird selektiert.

'Wurde eine Form selektiert, wird diese nach Excel übertragen. Es könnte, beispielsweise bei der Aktion
'Schnittmenge bilden, der Fall auftreten, dass keine Form erzeugt wird.

Das Ergebnis wird zurück nach Excel kopiert:

'Wieviel Formen sind selektiert?
AnzahlFormen = 0
AnzahlFormen = PP_app.ActiveWindow.Selection.ShapeRange.Count   'Anzahl selektierte Formen
If AnzahlFormen > 0 Then                                        'Ist keine Form selektiert erfolgt keine Aktion.
    PP_app.ActiveWindow.Selection.Cut                           'Ansonsten werden die selektierten Formen ausgeschnitten und in die Zwischenablage kopiert.
    If Not MergeFehler Then ActiveSheet.Paste                   'und werden dann aus der Zwischenablage nach Excel kopiert.
End If

PowerPoint wird geschlossen:

If PPschonGestartet Then                'Wurde keine neue PP-Instanz gestartet.
    PP_app.ActivePresentation.Close     'wird nur die neu erzeugte PP-Präsentation geschlossen
   Else
    If NeuePPwiederSchliessen Then
       PP_app.Quit                      'Steht dieser Schalter auf True wird PP wieder geschlossen.
    End If
End If
Set PP_app = Nothing                ' Objektvariable wird auf Nothing gesetzt
Exit Sub

Ein beachtliches Werk mit vielen Fallstricken – vielen Dank an Ernst Börgener.

Wer möchte, kann sich das Beispiel herunterladen:

https://www.excel-nervt.de/wp-content/uploads/2022/01/Formenvereinigen.xlsm

Der Autor freut sich über Lob, Kritik und Anmerkungen!

Warum ist das Ansetzen des Rotstifts eine so bewährte Methode, wieder schwarze Zahlen zu schreiben?

Inquire ist schon klasse. Er analysiert Tabellen und findet eine Menge „verborgener“ Inhalte: ausgeblendete Zeilen, weiße Schriftfarbe, … Allerdings: zwei Dinge findet dieses Analysewerkzeug nicht:

1.) Wenn eine Form auf einer Zelle liegt (hier etwas versetzt, damit man sie besser sehen kann)

2.) Wenn eine Zelle (hier E4) benutzerdefiniert mit

;;;

formatiert ist. Der leere Wert vor dem ersten Semikolon gibt an: positive Zahlen werden nicht dargestellt; der zweite legt das Gleiche für negative fest. Der dritte für 0.