Inhalte von Excel-Tabelle in Listfeld
#11
Hallo Koter,

bisher funktioniert der Code super und ich bedanke mich dafür von Herzen!

Um mein Projekt weiterhin umzusetzen müsste ich nun, aus Excel heraus, folgende Funktionen umsetzen.

- Ich würde gerne alle Shapes.Name auslesen die auf der Activepage sind, quasi durchlaufen und abfragen.
- Dann würde ich gerne die Hauptfarbe der Shapes ändern, Angabe möglichst in RGB.
- Zusätzlich müsste ich einen Schatten, Oben Rechts, 5 pxl, 5 pxl, Deckkraft 5, Schattenverlauf 5 hinzufügen.
- Besteht zusätzlich die Möglichkeite der Funktion der Persepektive über einen vba Code?

Danke vorab und ganz viele Grüße
Stefan

Betriebssystem / Grafik-Software: Corel Draw
Zitieren
#12
Hallo Stefan,

ich hänge eine Excel-Datei an.
Die Makros sollten wegen einer Gruppierung für die Effekte (Perspektive und Schatten) in einer bestimmten Reihenfolge ausgeführt werden:

[Bild: mak5u9jhe.gif]

Du wirst noch einige Parameter für Deine Zwecke anpassen müssen.
Durch die Effekte entsteht eine Steuergruppe. Wenn Du nach dem Makro mit einzelnen Objekten weiter arbeiten willst, muss sie aufgelöst werden.

Gruß

Koter


Angehängte Dateien
.zip   Corelmakro2.zip (Größe: 12,87 KB / Downloads: 4)
Zitieren
#13
Hallo Koter,

das mit dem Objekte durchlaufen funktioniert super und Farbe ändern natürlich auch, danke dafür!

Nun habe ich Probleme den Schatten und die Perspektive im Code zu konfigurieren...

Schatten, wenn ich es manuell mit der Maus einstelle:
FlachschattenObenRechts
Abstände: 5 Pxl, 5 Pxl
Deckkraft: 5
Schattenverlauf: 5


Perspektive: Auf der rechten Seite etwas noch oben verzerren und etwas nach unten verzerren, siehe Bild im Anhang.

Ich würde mich tierisch über eine Code anpassung auf diese Eigenschaften freuen :-)
Danke vorab und einen guten Start in die Woche!


Angehängte Dateien Thumbnail(s)
   

Betriebssystem / Grafik-Software: Corel Draw
Zitieren
#14
Hallo Stefan,

Ich habe den Code der Effekt-Prozedur mit Kommentaren versehen. So solltest Du die Parameter finden:
Code:
Sub Effekte()
   Dim CDraw As Object, s As Object
   Dim Effekt
   Set CDraw = CDrawObj
   CDraw.ActiveDocument.Unit = 3
   
   ' Gruppieren um allen Objekten gemeinsam Perspektive und Schtten zu verleihen:
   Set s = CDrawObj.ActivePage.Shapes.All.Group
   
   'Perspektive:
   Set Effekt = s.CreatePerspective(s.CenterX, s.CenterY)
   Effekt.Perspective.HorizVanishingPointX = s.LeftX - s.SizeWidth * 5  '(X-Koordinate des horizontalen Fluchtpunkts)
   
   'Schatten:
   Set Effekt = s.CreateDropShadow(0, , , , , CDraw.CreateCMYKColor(0, 0, 0, 100), , , , , , 0)
   With Effekt.DropShadow
       .OffsetX = 5  ' X-Abstand
       .OffsetY = 5  ' Y-Abstand
       .MergeMode = 9  'Zusammenführungsmodus
       .Opacity = 5  'Deckkraft
       .Feather = 5  'Verlauf
   End With
End Sub

Der Abstand des horizontalen Fluchtpunkts ist mit der fünffachen Breite des Objekts angegeben. Den Faktor musst Du Deinen Bedürfnissen anpassen oder den Abstand anders angeben.

Wenn Du die Effekte nicht allen Objekten gemeinsam, sondern jedem Objekt einzeln zuweisen willst, musst Du das in einer Schleife abarbeiten lassen. Die Gruppierung fällt dann weg.

Gruß

Koter
Zitieren
#15
Hallo Koter,

der Schatten funktioniert nun super mit allen Erklärungen und ich habe es endlich gerafft, Danke dafür!!!

Kannst du mir so etwas individuell einstellbares für die Persepktive machen, am besten mit Erklärung, wieder aus Excel heraus.

Leider habe ich es nichtmal hinbekommen, die Perspektive zu "spiegeln" also auf der anderen Seite, wie im aktuellen Code.
(Funktionieren tut es), aber wie dort die Einstellangaben sind ist mir schleierhaft.

Danke für jegliche Hilfe und beste Grüße
Stefan

Betriebssystem / Grafik-Software: Corel Draw
Zitieren
#16
Hallo Stefan,

ich weiß leider nicht, was „individuell einstellbar“ bedeuten soll.
Bei Deiner Vorgabe ist nur ein Fluchtpunkt nötig.
Der Zweizeiler reicht also:
Code:
       'Perspektive:
       Set Effekt = s.CreatePerspective(s.CenterX, s.CenterY)
       Effekt.Perspective.HorizVanishingPointX = s.LeftX - s.SizeWidth * 5  '(X-Koordinate des horizontalen Fluchtpunkts)

Die erste Zeile fügt die Perspektive mit den Fluchtpunktkoordinaten im Zentrum des Objekts hinzu.
Die zweite Zeile verschiebt die X-Koordinate horizontalen Fluchtpunkts.
Es ginge auch mit einer Zeile, dass würde aber ein wenig unübersichtlich.

Falls Du das Folgende nicht verstanden hast...
(07.03.2022, 17:26)koter schrieb: ...Der Abstand des horizontalen Fluchtpunkts ist mit der fünffachen Breite des Objekts angegeben. Den Faktor musst Du Deinen Bedürfnissen anpassen oder den Abstand anders angeben...
... hier ein Bild zur Erklärung:
[Bild: zwischenablage01a1j7y.jpg]



Der Faktor ist die Fünf.

(10.03.2022, 14:41)StefanA1987 schrieb: Leider habe ich es nichtmal hinbekommen, die Perspektive zu "spiegeln" also auf der anderen Seite, wie im aktuellen Code.

Dazu musst Du den Fluchtpunkt nur auf die andere Seite setzen:

Code:
Effekt.Perspective.HorizVanishingPointX = s2.RightX + s2.SizeWidth * 5

Gruß

Koter
Zitieren
#17
Hallo Koter,

danke für deine spitzen Erklärung und ich habe endlich gecheckt was überhaupt der VanishingPoint ist.... Danke dafür, stand total aufm Schlauch, es funktioniert, wie immer, super!!!

Nun zwei weitere Fragen...

1. Ich habe eine CorelDraw Vorlage (.cdt) offen und möchte diese gerne als CorelDraw Datei (.cdr) in einen bestimmten Pfad speichern.

2. Dann habe ich eine CorelDraw Datei (.cdr) offen und möchte diese gerne als eine (.eps)-Datei in einen bestimmten Pfad speichern.

Das ganze natürlich wieder aus Excel heraus :-) Danke!!!

Betriebssystem / Grafik-Software: Corel Draw
Zitieren
#18
Hallo Stefan,

(11.03.2022, 16:09)StefanA1987 schrieb: 1. Ich habe eine CorelDraw Vorlage (.cdt) offen und möchte diese gerne als CorelDraw Datei (.cdr) in einen bestimmten Pfad speichern.

Wenn Du eine Datei aus der Vorlage erstellst, ist das schon eine CDR. Eine CDT zu öffnen und dann als CDR zu speichern ist also nicht nötig.

(11.03.2022, 16:09)StefanA1987 schrieb: 2. Dann habe ich eine CorelDraw Datei (.cdr) offen und möchte diese gerne als eine (.eps)-Datei in einen bestimmten Pfad speichern.

Code:
Sub EPSExport()
   Dim CDraw As Object
   Dim epsDatei As String
   
   Set CDraw = CDrawObj

   epsDatei = "C:\temp\corelforum\StefanA1987\test.eps"
   Call CDraw.ActiveDocument.Export(epsDatei, 1289, 1, Nothing, Nothing)
   
   Set CDraw = Nothing
End Sub

Gruß

Koter
Zitieren
#19
Hallo Koter,

danke für den .EPS Code, geht super!

1. Ich habe eine CorelDraw Vorlage (.cdt) offen und möchte diese gerne als CorelDraw Datei (.cdr) in einen bestimmten Pfad speichern. Wie soll ich das machen, mit der Save Methode, SaveAs? Eigenschaften? Bitte bitte ein Beispiel wie immer.

2. Eigentlich möchte ich nur Alle Objekte auf der Seite horizontal Spiegeln und zwar so:
CDraw.ActiveDocument.ActiveLayer.SelectableShapes.All.Flip cdrFlipHorizontal
Funktioniert aber nicht, bringt aber keinen Fehler... was ist da los? :-)

Koter, ich bin so gut wie am Ende meines Projektes und meine Belästigungen hören bald auf, versprochen!

Danke für die extrem schnellen und kompetenten Antworten

Betriebssystem / Grafik-Software: Corel Draw
Zitieren
#20
Hallo Stefan,

(12.03.2022, 11:36)StefanA1987 schrieb: ...ich bin so gut wie am Ende meines Projektes und meine Belästigungen hören bald auf, versprochen!...

Du belästigst mich nicht, würdest Du das tun, würde ich einfach nicht mehr antworten.
Falls es nicht geheim ist: Was ist das für ein Projekt? (jetzt hast Du mich neugierig gemacht)

(12.03.2022, 11:36)StefanA1987 schrieb: 1. Ich habe eine CorelDraw Vorlage (.cdt) offen und möchte diese gerne als CorelDraw Datei (.cdr) in einen bestimmten Pfad speichern. Wie soll ich das machen, mit der Save Methode, SaveAs? Eigenschaften? Bitte bitte ein Beispiel wie immer.

Die Vorlage gar nicht öffnen, sondern eine CDR daraus erstellen und diese speichern:

Code:
Sub AusVorlage()
   Dim Doc As Object, CDraw As Object
   Dim Vorlage As String, Dateiname As String
   
   Vorlage = "C:\temp\corelforum\StefanA1987\Vorlagen\Stefan-1.cdt"
   Dateiname = "C:\temp\corelforum\StefanA1987\Neu.cdr"
   
   Set CDraw = CDrawObj
   Set Doc = CDraw.CreateDocumentFromTemplate(Vorlage, True) 'Dokument aus Vorlage erstellen
   Doc.SaveAs Dateiname, Nothing 'Dokument speichern
   
   Set CDraw = Nothing
End Sub

(12.03.2022, 11:36)StefanA1987 schrieb: 2. Eigentlich möchte ich nur Alle Objekte auf der Seite horizontal Spiegeln und zwar so:
CDraw.ActiveDocument.ActiveLayer.SelectableShapes.All.Flip cdrFlipHorizontal
Funktioniert aber nicht, bringt aber keinen Fehler... was ist da los? :-)

Da kann ich nur raten: Vielleicht hat die Variable „cdrFlipHorizontal“ den Wert 0.

Gruß

Koter
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Tabelle ausfüllen? Eichhorn 10 2.565 26.07.2024, 14:01
Letzter Beitrag: peterjaeckel
  Inhalte-Zentrale wird eingestellt OsCor 2 1.212 15.08.2020, 15:22
Letzter Beitrag: OsCor
  Aus Excel angaben Zeichnen? DJMC 7 2.202 22.07.2019, 16:16
Letzter Beitrag: koter
  Für X7 Cliparts und andere Inhalte herunterladen landbastler 5 1.809 10.11.2017, 19:41
Letzter Beitrag: landbastler
  Textfarbe gesamte Tabelle ändern tuco 6 2.193 22.05.2017, 12:23
Letzter Beitrag: norre
  von excel nach coreldraw -> RGB / CMYK view2lord 6 3.114 13.06.2016, 15:10
Letzter Beitrag: mvm
  Export von Koordinaten als Text oder Tabelle Highkey 3 1.729 31.08.2015, 04:37
Letzter Beitrag: koter
  Corel Connect Inhalte Zentrale geht nicht... TottiSB 5 2.389 22.10.2014, 09:41
Letzter Beitrag: TottiSB
  VBA Script erstellen - automatische Tabelle erstellen phs 1 2.922 29.04.2014, 20:00
Letzter Beitrag: koter
  Tabelle erstellen? Tüfftele 4 1.884 24.04.2014, 22:29
Letzter Beitrag: Tüfftele