VBA relative Objekt Position
#21
Funktioniert perfekt. Smile 

Jetzt kann ich die Schrift 1-2 Punkte größer machen ohne das es wirklich Platz kostet. Wink


Was die Hilfe angeht, bei Corel. Die ist einfach zu schwach.  Bei VB gibt es in 30-40% aller Fälle ein Codeschnipsel. Und was viel wichtiger ist, eine "Vererbungshierarchie" die in den Stufen anklickbar ist.  Ich weiß ergo bei jeden Befehl genau wo der her kommt.

Und bei Objekten ein Tabelle mit allen Eigenschaften und Methoden.  Da klicke ich ein mir unbekanntes Objekt an, und sehe den ganzen Baum.  Finde ich viel besser.  Corel ist echt geizig.

Ich muss aber jetzt sagen dank deine Hilfe sieht meine Preisliste viel besser aus, und ist von 8 auf 5 Seiten gefallen in der Größe. Wink

Gruß


    Pucki
Zitieren
#22
hi

Leider möchte mein Chefe das ich die Produkte in Gruppen mache.


Deshalb + weil ich mit der Corel-Hilfe auf Kriegsfuß stehe bräuchte ich noch mal deine Hilfe für einen Befehl.

Wie kann ich mehre Zellen in einer Zelle verbinden, so das es in diese Zeile KEINE Spaltenlinien gibt.

Von Hand in Corel geht das, in den ich den Bereich markiere, Recht Maustaste, und Zellen verbinden.

Nochmal vielen Dank für deine Hilfe.

Gruß

   Pucki
Zitieren
#23
Hallo Pucki,

Merge ist der Befehl, den Du suchst.

Code:
Sub ZellenVerbinden()
   Dim tab_1 As Shape
   Dim tab_1C As CustomShape
   Dim ZellBereich As Object
   Dim Zeile As Integer, Spalte As Integer, i As Integer
   
   Set tab_1 = ActivePage.Shapes("Tabelle1")
   Set tab_1C = tab_1.Custom
   Set ZellBereich = tab_1C.CreateEmptyCellRange
   
   Zeile = 3
   Spalte = 2
   For i = 0 To 2
       ZellBereich.AddCell tab_1C.Cell(Spalte + i, Zeile)
   Next i
   ZellBereich.Merge
End Sub

Der Code legt einen Zellbereich an und verbindet dessen Zellen.

Wenn Du die Zellen eines vorhandenen Zellbereichs verbinden willst, musst Du natürlich keinen anlegen.
Alle Zellen einer Zeile kannst Du z.B. mit tab_1C.Rows(1).Cells.All.Merge verbinden.

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Pucki
Zitieren
#24
Vielen Dank für deine Antwort. Sie hat mir wie immer sehr geholfen.


Ich habe übrigens falls es dich interessiert das Problem mit der Online-Hilfe erkannt.

In meiner X4-Version ist das Tabellen-Objekt zu neu.  Deshalb nimmt es keine Makroaufzeichungen an, und ist in der Hilfe nicht vorhanden. Jedenfalls bringt eine Suche nach "Table" bzw. "Tabelle" nix.

Und leider habe ich deshalb kein Objekt-Baum für das Tabellen-Objekt.  Weshalb es sehr sehr schwer ist, heraus zu finden, welche Funktion unter welchen "Strang" drin ist.  So ein Bäumchen habe ich nämlich als PDF für die anderen Objekte.

Aber ist ja immer so. Die Dokumentation hängt der Realität hinterher. Sad

Gruß

    Pucki
Zitieren
#25
Hallo Pucki,

(01.09.2021, 12:21)Pucki schrieb: Ich habe übrigens falls es dich interessiert das Problem mit der Online-Hilfe erkannt...

das interessiert mich sogar sehr weil ich befürchte, dass Du das Problem noch nicht erkannt hast.
Ich vermute, dass Du VBA und CorelDraw gedanklich noch nicht ausreichend trennst. In Beitrag 20 habe ich schon einmal darauf hingewiesen.

(01.09.2021, 12:21)Pucki schrieb: ...In meiner X4-Version ist das Tabellen-Objekt zu neu.  Deshalb nimmt es keine Makroaufzeichungen an, und ist in der Hilfe nicht vorhanden. Jedenfalls bringt eine Suche nach "Table" bzw. "Tabelle" nix...

Möglicherweise schaust Du in der falschen Hilfe. In der VBA-Hilfe steht (auch in neueren Versionen) nichts über das Corel-Tabellen-Objekt. Die VBA-Hilfe stammt (wie VBA selbst) von Microsoft und beschreibt nur die Sprachelemente dieser Programmiersprache. VBA steckt ja auch in anderen Programmen wie AutoCad oder Excel. Wären alle Objekte aller Wirtsanwendungen aller Hersteller in der Hilfe beschrieben, wäre das Ding auch reichlich überfrachtet.

Das Corel-Tabellen-Objekt ist in der Objektreferenz der Corel-VBA-Hilfe beschrieben. Bei Deiner Version wäre das die „draw_vba.chm“. Wenn Du diese mit installiert hast, sollte sie im Unterordner „Programs“ des Corel-Ordners zu finden sein.

Screenshot:

[Bild: zwischenablage01lkk3o.jpg]


(01.09.2021, 12:21)Pucki schrieb: ...Aber ist ja immer so. Die Dokumentation hängt der Realität hinterher...

Das ist leider oft so. In diesem Falle scheint mir aber alles ausreichend dokumentiert zu sein. Die Hilfe neuerer Versionen ist nicht mehr in CHM-Dateien sondern Online. Wenn Du hier in der neusten Version nachschaust, wirst Du sehen, dass sich nichts geändert hat. Immer noch die selben 9 Eigenschaften und 10 Methoden.

Mit den Aufzeichnungsmöglichkeiten ist es in neueren Versionen auch nicht besser bestellt.
Was die Programmierung von Tabellen betrifft, bist Du also auch mit X4 immer noch auf dem neuestem Stand.

Die Codeschnipsel, die Du so vermisst, gibt es auch in der neuesten Hilfe nicht. Aber die kannst Du Dir ja hier im Forum „maßschneidern“ lassen.  Wink

Gruß

Koter
Zitieren
#26
Ich verrate dir ein Geheimnis. Wink

Ich habe die Datei aber ich habe bis ich dein Betrag gehört habe, noch nie was von ihr gehört.

Der Fehler liegt aber bei Corel. Wenn ich im Makro-Editor F1 drücke, erwarte ich genau DIESE Hilfe. Was ich bekomme ist VBA für Anfänger. Wink. Ich habe mir mal die Fenster-Überschrift beider Hilfen verglichen und dann den Unterschied erkannt.

Ich habe mir jetzt eine Verlinkung auf den Desktop gemacht, damit ich die ja nicht wieder vergesse. Weil DA ist die Hilfe drin, die ich wirklich brauche. VB kann ich im Schlaf. VBA ist sehr leicht anders, aber die Befehle sind i.d.R. mit Standart-Tricks  1:1 an das DLL-Objekt in VB umzusetzen.

Es kommt nämlich sehr selten vor, das ich die Dateien in einen Programmverzeichnis mir näher anschaue.

Und wieder hast du mir einen sehr sehr wertvollen Tipp gegeben.  EHRLICH.  Die Datei hätte ich sonst nie geöffnet.

Gruß

   Pucki
Zitieren
#27
Auch wenn es schon lange her ist, hätte ich doch noch  eine Frage die nun auftritt.

Wie kann ich von einer bestimmten Zelle den Rahmen entfernen. 

Sinn des ganzen ist es, das in der Tabelle einfach eine Sichtbare Unterbrechung ist, so das es für den Benutzer aussieht als wären es 2 Tabellen.

Und wie kann ich eine  Zelle einfärben.

Vielen Dank für deine Hilfe.

Gruß

   Pucki
Zitieren
#28
Hallo Pucki,

(15.11.2021, 08:56)Pucki schrieb: Auch wenn es schon lange her ist...

Das macht nichts! Um auch alte Themen weiterführen zu können, werden sie hier im Forum so gut wie nie geschlossen oder als gelöst markiert.

Um die „optische Unterbrechung“ zu erzeugen, kannst Du die Rahmenbreiten einer Zeile auf Null setzen:

Code:
Sub ZeileOhneRahmen()
   Dim tab_1 As Shape
   Dim tab_1C As CustomShape
   
   ActiveDocument.Unit = cdrMillimeter
   Set tab_1 = ActivePage.Shapes("Tabelle1")
   Set tab_1C = tab_1.Custom
   
   With tab_1C.Rows(4).Cells.All.Borders
       .Vertical.Width = 0
       .Left.Width = 0
       .Right.Width = 0
   End With
   
End Sub

So kannst Du eine Zelle einfärben:

Code:
tab_1C.Cells(5).Fill.UniformColor = CreateCMYKColor(0, 0, 50, 0)

Gruß

Koter
[-] 1 Benutzer bedankt sich bei koter für diesen Beitrag:
  • Pucki
Zitieren



Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Corel Draw Objekt dupliziert mehrfach Berlinerillustrator 1 270 24.09.2024, 10:55
Letzter Beitrag: Berlinerillustrator
  Objekt drehen Markierung wieder in Mittelpunkt Karthagos 9 1.166 08.06.2024, 06:53
Letzter Beitrag: Boerni
  objekt Bild teilweise erhellen panzerauto 6 1.170 17.06.2023, 12:28
Letzter Beitrag: mvm
  Objekt im Drehmodus fein justieren ? panzerauto 6 993 28.05.2023, 15:59
Letzter Beitrag: koter
  Objekt RGB Modus in CMYK umstellen Spaceliner 7 1.012 19.05.2023, 08:51
Letzter Beitrag: norre
  Objekt umfließen lassen honkie 4 931 27.03.2023, 13:17
Letzter Beitrag: honkie
  via VBA Objekt mit Namen ansprechen Pucki 2 1.001 24.08.2022, 18:34
Letzter Beitrag: Pucki
Photo Bogenschrift am Objekt ausrichten ist weg ? panzerauto 6 1.487 08.08.2022, 18:24
Letzter Beitrag: panzerauto
  Objekt aus Knoten mit Farbe füllen Spaceliner 7 1.823 02.08.2022, 10:11
Letzter Beitrag: Spaceliner
  Schrift oder Objekt einseitig grösser ziehen derBibo1969 2 1.491 01.03.2022, 20:00
Letzter Beitrag: derBibo1969