Step 7 AWL mit Excel erstellen

edrSora

Level-1
Beiträge
19
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
AWL mit Excel erstellen; Zeilenumbruch funktioniert nicht

Hallo Gemeinde,
Ich würde gern eine Excel-Tabelle erstellen die mir eine Sprungliste für Step7/AWL erstellt.
Zu diesem Zweck würde ich gern 4 Zeilen AWL-Code in einer Excel-Zelle mit =verketten() verbinden.
dazu muss aber der Zeilenumbruch funktionieren. mit =verketten("zeile1";zeichen(10);"zeile2")
funktioniert es leider nicht. hat jemand eine idee.
danke im vorraus.
 
Zuletzt bearbeitet:
Der Zeilenumbruch funktioniert so. Du mußt aber in der Zelle die Ausgabe des Zeilenumbruchs erlauben: Zellen formatieren > Ausrichtung > [v] Zeilenumbruch

Sent from Haralds GT-I9082
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo PN/DP;
der zeileumbruch in excel wird erlaubt.
die anzeige der zelle in excel ist auch korrekt.
wenn ich die zelle durch copy/paste in wordpad einfüge ist der zeilenumbruch richtig.
nur im Step7 AWL-Editor wird der zeilenumbruch ignoriert.

Excel-Formel:
=VERKETTEN("u M0.0";ZEICHEN(10);"u m0.0")
Excel-Zelle-Anzeige:
u M0.0
u m0.0
(sogar hier funktioniert es richtig)

AWL-Editor:
Anhang anzeigen 22307
 
Hallo,

versuche mal
=VERKETTEN("u M0.0";ZEICHEN(10);ZEICHEN(13);"u m0.0")
oder
=VERKETTEN("u M0.0";ZEICHEN(13);ZEICHEN(10);"u m0.0")

Sent from Haralds GT-I9082
 
mit Variante 2 wird der zeilenumbruch erkannt :)
allerdings bleiben die anführungszeichen. ich dachte wenn die zeile umgebrochen wird gehen die schon weg.
woher kommen die überhaupt?
excel_to_awl_2.JPG
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallöchen

Mal eine frage wieso machst du dir nicht mal die mühe und siehst dir im AWL an wie die Zeilen aufgebaut sind. :evil:
Wenn man 1 zu 1 die Zeilen rauskopiert bekommt man das. :cool:

=VERKETTEN(" U M 0.0";ZEICHEN(10);" U M 0.0")

und dann gehts bei mir ohne Probleme :D

aber die frage ist wieso du nicht gleich ein VBA Programm schreibst das das ganze macht.
 
@kpeter;
gibt es irgendeinen grund hier so unfreundlich zu sein?
desweiteren funktioniert auch deine zeile bei mir nicht (kein zeilenumbruch in awl und die "" gehen ebenfalls nicht weg.
hab das vorher getestet und festgestellt, das es reicht wenn zw. befehl(u) und dem merker das leerzeichen steht.
mit einer einfachen zeile funktioniert es ja auch (=VERKETTEN("u m0.0").
zu deiner frage warum nicht VBA: - hab keine ahnung von VBA
- das oben beschriebene problem ist das einzige was mir noch auf dem weg zur lösung
im weg steht.

mfg
 
Hatte glaube ich ein ähnliches Problem.
Habe es aber dann irgendwie gelöst, weiß aber leider nicht mehr genau was für ein Problem das war.:confused:
Ich habe hier mal meine Exel Zeile rauskopiert, vielleicht hilft sie dir ja weiter.

=VERKETTEN("U M 18.2; = L 1.0; BLD 103; U M 18.0; = L 1.2; BLD 103; U ""SIM_";A2;"""";";= L1.3; BLD 103;")&VERKETTEN("CALL #";A2;"( I_PARA:=DB12.PARA_";A2;",I_RESET := L 1.0, I_SIM_ON := L 1.2, I_SIM_IN := L 1.3, Q_ON :=""D_QOut_";A2;""",Q_ACK := #L_QAck, Q_ALARM := ""D_QAlarm_";A2;""",Q_HMI_St :=""Data DigitalSignal"".HMI_St_";A2;",IQ_HMI_Ctrl :=""Data DigitalSignal"".HMI_St_";A2;"); NOP 0; ";)
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wenn du aus Excel zwei Zellen mit einzeiligem Text kopierst und in einen Texteditor einfügst und die nicht-druckbaren Zeichen anzeigen lässt, hast du zwei Zeilen mit dem Text der Zellen und jeweils ein CR-LF

Wenn du aber in einer Zelle zwei Zeilen hast so werden beim Kopieren und Einfügen zwei Zeilen, wobei in der ersten am Anfang die Anführungszeichen und bei der zweiten am Ende die Anführungszeichen stehen.

Eine Idee, da du kein VBA kannst:
Wenn du beipielsweise anstatt des Zeilenumbruchs in der Zelle beispielsweise ein @-Zeichen verkettest, kannst du dann mit Notepad++ die @ durch Zeilenumbrüche ersetzen ohne die Anführungszeichen berücksichtigen zu müssen

(zumindest in meiner Theorie) ;-)
 
so, hab nun was gefunden.
der zeilenumbruch sollte auch am anfang und ende eingefügt werden. danach wird der inhalt der zellen erkannt.
nun müssen nur noch die anführungszeichen entfernt werden (wenn dafür noch jemand eine lösung hat, das wäre :s1:)
die excel-zeile sieht nun so aus:
=VERKETTEN(ZEICHEN(13);ZEICHEN(10);"u m0.1";ZEICHEN(13);ZEICHEN(10);"u m0.1";ZEICHEN(13);ZEICHEN(10))

und in AWL:
excel_to_awl_3.JPG

erstmal vielen dank an alle,
arbeiten kann ich damit erstmal
 
Excel: kopieren ohne Anführungszeichen

Die Anführungszeichen sind ein "Feature" von MS Excel, was man nicht abstellen kann ...
Wenn der Wert in einer Zelle nichtdruckbare Zeichen enhält, dann packt Excel den Zellinhalt beim "Kopieren" mit Anführungszeichen in die Zwischenablage.

Es gibt mehrere Möglichkeiten, dieses Feature zu umgehen
- OpenOffice statt MS Excel benutzen
- aus MS Excel kopieren + in MS Word einfügen + erneut alles markieren und kopieren + in den AWL-Editor einfügen
- VBA benutzen, um den kompletten Quelltext zu erzeugen
- ein VBA-Makro benutzen, um den Wert aus einer Zelle (oder Bereich) ohne Anführungszeichen in die Zwischenablage zu legen


Hier ein Beispiel zur Realisierung der letzten Variante mit dem Kopiermakro:

* VBA-Editor öffnen: Extras > Makro > Visual Basic Editor

* Im VBA-Editor ein Modul einfügen, in das Modul dieses Makro einfügen
Code:
Sub Button_Copy_Click()
  Dim MyData As DataObject
  
  Set MyData = New DataObject
  MyData.SetText Range("B2").Text  [COLOR="#008000"]'ActiveCell.Text[/COLOR]
  MyData.PutInClipboard
  
  MsgBox ("Code in Zwischenablage kopiert")
End Sub

* Im Tabellenblatt in die Zelle "B2" diese Formel
Code:
=VERKETTEN("U M1.1";ZEICHEN(13);ZEICHEN(10);"U M2.2")

* In das Tabellenblatt eine Schaltfläche einfügen (aus der Symbolleiste "Formular"!)

* Auf die Schaltfläche
+ Rechtsklick > Text bearbeiten
+ Beschriftungstext ändern zu "Copy"
+ zum Beenden der Bearbeitung außerhalb der Schaltfläche klicken

* Auf die Schaltfläche
+ Rechtsklick > Makro zuweisen...
+ "Button_Copy_Click" auswählen

Ein Klick auf die Schaltfläche "Copy" kopiert nun den Wert der Zelle "B2" ohne Anführungszeichen in die Zwischenablage und kann dann erfolgreich in den AWL-Editor oder anderswo eingefügt werden. :cool: :D

Ich programmiere mit Excel 2002, in den neueren Excel-Versionen sollte es ähnlich funktionieren. Die Ausführung von Makros muß in Excel erlaubt werden.

Harald
 

Anhänge

  • copy_Excel_AWL.jpg
    copy_Excel_AWL.jpg
    46,6 KB · Aufrufe: 34
Zuviel Werbung?
-> Hier kostenlos registrieren
erst mal vielen dank für die mühe.
hab heute leider noch keine zeit gefunden. um das mal auszuprobieren.
ich habe erst gedacht, ich kann die "" mit awl-editor-eigenen mitteln loswerden. geht aber nur "händisch".
werde mich dann doch mal mit VBA beschäftigen. so schwer kann es ja nicht sein.
Danke.
 
Zurück
Oben