Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Excelliste sortieren

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Excelliste sortieren (2030 mal gelesen)
Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 24. Apr. 2008 15:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,
ich bin noch ganz frisch in der Macroprogrammierung. Zur Zeit versuche ich mich an einer Stückliste. Ich schreibe über die Stücklistenfunktion in CATIA V5 die Teilenummern, Nomenklatur, etc. aller Produkte und Parts in eine Excel Datei. Das klappt auch schon gut.
Jetzt möchte ich aber diese Einträge in Excel sortieren (A->Z).

Hat jemand eine Idee wie das in VBA for CATIA funktioniert?

In Excel VBA habe ich das mit Hilfe von Macro Aufzeichnen ganz leicht hinbekommen. Leider lässt sich dieser befehl nicht in CATIA VBA anwenden.

Gruss
Meggie

[Diese Nachricht wurde von Meggie275 am 24. Apr. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

efbe
Mitglied
Entwicklungsingenieur


Sehen Sie sich das Profil von efbe an!   Senden Sie eine Private Message an efbe  Schreiben Sie einen Gästebucheintrag für efbe

Beiträge: 174
Registriert: 18.12.2003

Pro/E WF2, CATIA V5R14, Pro/MECH 2001

erstellt am: 24. Apr. 2008 15:33    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Meggie275 10 Unities + Antwort hilfreich

Wenn du direkt im CATIA programmierst, dann musst du erstmal eine Verbindung zum EXCEL-Objekt aufbauen:

Dim my_EXCEL As Excel.Application
Set my_EXCEL = GetObject(, "Excel.Application")
Dim my_sheet As Excel.Worksheet
Set my_sheet = my_EXCEL.ActiveWorkbook.Sheets("PackData")

Den Namen des Worksheets musst du natürlich anpassen - oder du wählst einfach das Aktive Sheet aus. Über my_sheet kannst du jetzt auf sämtliche Spalten und deren Sortierungen zugreifen - wie gewohnt.

Viel Spaß, frank.

------------------
  So long, Frank

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 24. Apr. 2008 15:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Frank,

das habe ich gemacht. Ich öffne aus CATIA die Excel Datei, in die die Stückliste geschrieben wurde. ich habe es auch schon geschafft, da dann alles zu löschen, was ich nicht in der Liste haben will, aber mit dem Sortieren klappt es nicht.

EXCEL.Application.Range("B5", "B14").Select
EXCEL.Application.Selection.Sort  <- diesen Befehl kennt er nicht

Hast Du eine Idee, wie es heissen muss?

Gruss
Meggie

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

erstellt am: 24. Apr. 2008 15:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Meggie275 10 Unities + Antwort hilfreich

Wie übergibst Du die Parameter für den Sort Befehl ? Ich nehme mal an das liegt daran.

Axel

------------------
Inoffizielle deutsche CATIA Hilfeseite

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 24. Apr. 2008 16:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Ich wollte es genauso machen wie in Excel: Zellen markieren und dann sortieren. In Excel wäre das

Range("A1:B3").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal

Anbei mal mein komplettes Marco. Vielleicht wird es dann klarer.

Sub CATMain()

Dim productDocument1 As ProductDocument
Set productDocument1 = CATIA.ActiveDocument

Dim product1 As Product
Set product1 = productDocument1.Product

Dim assemblyConvertor1 As AssemblyConvertor
Set assemblyConvertor1 = product1.GetItem("BillOfMaterial")

Dim arrayOfVariantOfBSTR1(4)
    arrayOfVariantOfBSTR1(0) = "LFD-Nr."
    arrayOfVariantOfBSTR1(1) = "Teilenummer"
    arrayOfVariantOfBSTR1(2) = "Benennung"
    arrayOfVariantOfBSTR1(3) = "Menge"
    arrayOfVariantOfBSTR1(4) = "Typ"
Set assemblyConvertor1Variant = assemblyConvertor1
assemblyConvertor1Variant.SetCurrentFormat arrayOfVariantOfBSTR1

Dim Datei As String
Datei = CATIA.FileSelectionBox("Stückliste speichern", "*.xls", CatFileSelectionModeSave)

If Datei <> " " Then
    If Right(Datei, 4) <> ".xls" Then
        Datei = Datei & ".xls"
    End If

    assemblyConvertor1.[Print] "XLS", Datei, product1
       
    Dim EXCEL As Object
    Set EXCEL = CreateObject("Excel.Application")
    EXCEL.Workbooks.Open Datei
    EXCEL.Visible = True
   
   
    EXCEL.Application.Range("B5").Select

    i = 5
    Do While EXCEL.Application.Range("B" & i) <> Empty
        EXCEL.Application.Range("B" & i + 1).Select
        i = i + 1
    Loop
    j = i + 1
       
    EXCEL.Application.Range("A" & j, "E500").ClearContents
             
    EXCEL.Application.Range("A5", "E" & i).Select
    EXCEL.Application.Selection.Sort

    EXCEL.Application.ActiveWorkbook.Save
    EXCEL.Application.ActiveWindow.Close
   
    MsgBox ("Die Stückliste wurde unter " & Datei & " gespeichert.")
Else
    Exit Sub
End If
End Sub

Meggie

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

erstellt am: 24. Apr. 2008 16:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Meggie275 10 Unities + Antwort hilfreich

... und warum versuchst Du nicht die Parameter mit anzugeben ? So in etwa:

Code:
xlObj.Columns("A:Y").Sort Key1:=xlObj.Columns("T"), Order1:=xlDescending, Header:=xlYes


Axel

------------------
Inoffizielle deutsche CATIA Hilfeseite

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 24. Apr. 2008 17:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

da kommt dann nur "object required"... 

meggie

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

erstellt am: 24. Apr. 2008 18:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Meggie275 10 Unities + Antwort hilfreich

Sorry, aber ein wenig solltest Du schon schauen was die einzelne Syntax bedeutet, alles vorgekaut wird Dir hier meistens auch nicht.   

Code:
  Dim EXCEL As Object
    Set xlObj= CreateObject("Excel.Application")
    xlObj.Open Datei
    xlObj.Visible = True
 
 
    xlObj.Range("B5").Select

    i = 5
    Do While xlObj.Range("B" & i) <> Empty
        xlObj.Range("B" & i + 1).Select
        i = i + 1
    Loop
    j = i + 1
     
    xlObj.Range("A" & j, "E500").ClearContents
           
    xlObj.Range("A5", "E" & i).Sort Key1:=xlObj.Columns("B"), Order1:=xlDescending, Header:=xlNo

    xlObj.ActiveWorkbook.Save
    xlObj.ActiveWindow.Close

    Set objXL = Nothing

   


So auf die Schnelle, ungetestet (VGIT). Was Du mit Deiner Schleife genau willst bzw Deinen leeren der Spalten ist mir auch nicht ganz klar

------------------
Inoffizielle deutsche CATIA Hilfeseite

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 25. Apr. 2008 08:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Axel,

danke, dass Du Dich meinem problem annimmst!
Und sorry, wenn es so rueber kam als wollte ich, dass mir hier jemand etwas vorkaut! Ich suche nur verzweifelt nach einem Befehl. Und so wie Du es in Deiner letzten Antwort beschrieben hast, habe ich es in meinem Code dann auch angepasst gehabt, aber leider laeuft es nicht.

Warum ich vorher Zeilen loesche ist, weil ich nur die Stueckliste der Hauptbaugruppe brauche, Catia aber auch die Stuecklisten aller Unterbaugruppen rausschreibt. Diese loesche ich dann mit der Schleife raus. Ist dann nur die Liste der Hauptbaugruppe uebrig, moechte ich diese nach der LFD-Nr. sortieren... aber wie gesagt, ich bekomm einfach nicht raus, wie es heissen muss.

Gruss
Meggie

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

erstellt am: 25. Apr. 2008 08:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Meggie275 10 Unities + Antwort hilfreich

Vielelicht kannst Du mal eine V5 Excel Ausgabedatei hier posten (xls ändern auf txt). Was bekommst Du für einen Meldung ?
Ich habe ansosnetn noch einen Fehler in dem Code gefunden
Statt 
Code:
Dim EXCEL As Object

sollte es heissen
Code:
Dim xlObj As Object

Axel

------------------
Inoffizielle deutsche CATIA Hilfeseite

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 25. Apr. 2008 09:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


vor_bearbeitung.txt


nach_bearbeitung.txt

 
Ich habe den Code ao geaendert, wie Du es in Deinen antworten vorgeschlagen hast. Wenn ich es mit xlObj.Columns("A:E").Sort usw. probiere, bekomme ich die Fehlermeldung "Die Sort-Methode des Range-Objektes konnte nicht ausgefuehrt werden". Ersetze ich Columns durch .Range("A5","E14") kommt die Fehlermeldung "Application-defined or Object-defined error" mit der selben Fehlernummer 1004.

Anbei die Exceltabelle (als txt) so wie Catia sie rausschreibt, und einmal so wie es spaeter aussehen soll.

Meggie

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

erstellt am: 25. Apr. 2008 10:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Meggie275 10 Unities + Antwort hilfreich

Versuch es mal hiermit (wieder ungetestet auf die Schnelle):
Code:
xlObj.Range("A4", "E" & i).Sort Key1:=xlObj.Range("A4"), Order1:=xlAscending, Header:=xlYes


Die Löscherei kann mal sicherlich noch effizienter gestalten, da komme ich jetzt nicht dazu, vielleicht heute Abend auf Basis Deiner txt Dateien.

Axel

------------------
Inoffizielle deutsche CATIA Hilfeseite

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 25. Apr. 2008 13:56    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

So funktioniert es leider auch nicht. Er sagt immer wieder, dass er die Methode Sort nicht ausfuehren kann. Ich hab schon soviele Kombinationen ausprobiert, es klappt einfach nicht. Es ist zum Haare raufen...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Axel.Strasser
Ehrenmitglied V.I.P. h.c.
Selbstständig im Bereich PLM/CAx



Sehen Sie sich das Profil von Axel.Strasser an!   Senden Sie eine Private Message an Axel.Strasser  Schreiben Sie einen Gästebucheintrag für Axel.Strasser

Beiträge: 4107
Registriert: 12.03.2001

erstellt am: 27. Apr. 2008 21:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Meggie275 10 Unities + Antwort hilfreich

Hier ist noch mal eine neue Basis. Ich habe das mit einem vbs Script getestet und es hat funktioniert (Achtung, es gibt noch Unterschiede zwischen Office 2003 und Office 2007).

Code:
Dim objXL As Object
Const xlTopToBottom = 1
Const xlPinYin = 1
Const xlYes = 1

Set objXL = WScript.CreateObject("Excel.Application")
Set fso = CreateObject("Scripting.FileSystemObject")
Set WshShell = WScript.CreateObject("WScript.Shell")

Datei="C:\Dokumente und Einstellungen\Axel\Desktop\test\vor_bearbeitung.xls"

objXL.Workbooks.Open Datei
objXL.Visible = True

objXL.ActiveWorkbook.Worksheets(1).Range("B5").Select

i = 5
Do While objXL.ActiveWorkbook.Worksheets(1).Range("B" & i) <> Empty
    objXL.ActiveWorkbook.Worksheets(1).Range("B" & i + 1).Select
    i = i + 1
Loop
j = i + 1

objXL.ActiveWorkbook.Worksheets(1).Range("A" & j, "E500").ClearContents

' Office 2003
objXL.ActiveWorkbook.Worksheets(1).Range("A5", "E" & i).Sort(objXL.ActiveWorkbook.Worksheets(1).Range("A4"))

' Office2007
'With objXL.ActiveWorkbook.Worksheets(1).Sort
'        .SetRange objXL.Worksheets(1).Range("A4:E10")
'        .Header = xlYes
'        .MatchCase = False
'        .Orientation = xlTopToBottom
'        .SortMethod = xlPinYin
'        .Apply
'End With


objXL.ActiveWorkbook.Save
objXL.ActiveWindow.Close

Set objXL = Nothing


Deine Schleifen kann man mit Sicherheit noch optimaler gestalten, da hatte ich aber noch keine Gelegenheit.

Axel

------------------
Inoffizielle deutsche CATIA Hilfeseite

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Meggie275
Mitglied
Konstrukteurin


Sehen Sie sich das Profil von Meggie275 an!   Senden Sie eine Private Message an Meggie275  Schreiben Sie einen Gästebucheintrag für Meggie275

Beiträge: 12
Registriert: 24.04.2008

CATIA V5 Rel.18 auf Windows

erstellt am: 28. Apr. 2008 09:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Super! Danke Axel! Mit der Version fuer Office 2003 hat es geklappt!
An meinen Schleifen werde ich selbst noch ein bisschen herumfeilen. Ein bisschen muss ich ja auch tun 

Gruss
Meggie

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz