Hallo Drommer,
wilkommen im Forum!
CorelDraw kann mit Excel über VBA Daten austauschen. Damit kann man den Seriendruck umgehen.
Wenn es, wie in der Beispielgrafik nur um Nummerierung geht, kann VBA das auch ohne Excel.
Nein, Du kannst mit gedrückter Strg-Taste auf ein Element der Gruppe klicken, und es dann bearbeiten, ohne die Gruppe aufzulösen.
Wenn Du die Texte auf eine eigene Ebene legst, kannst Du zwischen ihnen mit der Tab-Taste wechseln.
Ich habe das mit VBA probiert:
Ich habe eine cdr und eine xlsx in einem Zip Archiv bei Filehorst hochgeladen, die als Beispiel für eine Makro-Lösung dienen können:
Datei von filehorst.de laden
Du kannst den Code aber auch selbst einfügen, dann musst Du die Dateien nicht herunterladen:
Die SUB „RondenBeschriften“ nummeriert selbst.
Die SUB „RondenBeschriftenXL“ holt sich die Daten von Excel.
Das Excel-Arbeitsblatt muss dazu aktiv sein.
Damit das Makro die Ronden identifizieren kann, müssen sie mit „Ronde“ im Objektmanager benannt sein.
Gruß
Koter
wilkommen im Forum!
Drommer schrieb:1. Datensatz von Excel: Mit Seriendruckfunktion ausprobiert, alle Ronden werden auf Einzelblättern angelegt...
CorelDraw kann mit Excel über VBA Daten austauschen. Damit kann man den Seriendruck umgehen.
Wenn es, wie in der Beispielgrafik nur um Nummerierung geht, kann VBA das auch ohne Excel.
Drommer schrieb:2. ...muss ich zuerst die Gruppen auflösen?! Muss das sein?
Nein, Du kannst mit gedrückter Strg-Taste auf ein Element der Gruppe klicken, und es dann bearbeiten, ohne die Gruppe aufzulösen.
Drommer schrieb:4. ...Ist es möglich zwischen verschiedenen Mengentexten zu springen wie man es bspw. bei anderen Programmen gewohnt ist via TAB etc.? ...
Wenn Du die Texte auf eine eigene Ebene legst, kannst Du zwischen ihnen mit der Tab-Taste wechseln.
Ich habe das mit VBA probiert:
Ich habe eine cdr und eine xlsx in einem Zip Archiv bei Filehorst hochgeladen, die als Beispiel für eine Makro-Lösung dienen können:
Datei von filehorst.de laden
Du kannst den Code aber auch selbst einfügen, dann musst Du die Dateien nicht herunterladen:
Code:
Sub RondenBeschriften()
Dim Ronden As New ShapeRange
Dim Rondentext As Shape, s As Shape
Dim TextEbene As New Layer
Dim Z As Integer
For Each s In ActiveLayer.Shapes.All
If s.Name = "Ronde" Then
Ronden.Add s
End If
Next
Ronden.Sort " @shape1.Top * 100 - @shape1.Left > @shape2.Top * 100 - @shape2.Left"
Z = 25789
ActiveDocument.BeginCommandGroup "Nummern"
Set TextEbene = ActivePage.CreateLayer("TextEbene")
For Each s In Ronden.Shapes
Set Rondentext = TextEbene.CreateArtisticText(s.CenterX, s.CenterY, "H+" & Z)
With Rondentext
.Text.Story.Size = 12
.Text.Story.Alignment = cdrCenterAlignment
.CenterX = s.CenterX
.CenterY = s.CenterY
End With
Z = Z + 1
Next
ActiveDocument.EndCommandGroup
End Sub
Sub RondenBeschriftenXL()
Dim xl As Object
Dim wb As Object
Dim Zellen As Object
Dim Ronden As New ShapeRange
Dim Rondentext As Shape, s As Shape
Dim TextEbene As New Layer
Dim Z As Integer
Set xl = GetObject(, "Excel.Application")
Set wb = xl.ActiveWorkbook
Set Zellen = wb.ActiveSheet.Cells
For Each s In ActiveLayer.Shapes.All
If s.Name = "Ronde" Then
Ronden.Add s
End If
Next
Ronden.Sort " @shape1.Top * 100 - @shape1.Left > @shape2.Top * 100 - @shape2.Left"
Z = 1
ActiveDocument.BeginCommandGroup "Nummern"
Set TextEbene = ActivePage.CreateLayer("TextEbene")
For Each s In Ronden.Shapes
Set Rondentext = TextEbene.CreateArtisticText(s.CenterX, s.CenterY, Zellen(Z, 1))
With Rondentext
.Text.Story.Size = 12
.Text.Story.Alignment = cdrCenterAlignment
.CenterX = s.CenterX
.CenterY = s.CenterY
End With
Z = Z + 1
Next
ActiveDocument.EndCommandGroup
End Sub
Die SUB „RondenBeschriften“ nummeriert selbst.
Die SUB „RondenBeschriftenXL“ holt sich die Daten von Excel.
Das Excel-Arbeitsblatt muss dazu aktiv sein.
Damit das Makro die Ronden identifizieren kann, müssen sie mit „Ronde“ im Objektmanager benannt sein.
Gruß
Koter