Registriert seit: 12.04.2014
Version(en): Office 365
(10.11.2015, 18:28)Jockel schrieb: Hallo, hier wird auch daran gearbeitet..: http://www.office-fragen.de/index.php/to...279.0.html ... ... zumindest hat der gute Detlef einen Vorschlag abgegegeben... Je mehr dran arbeiten desto besser. Ich glaube bei office-loesung.de habe ich das auch schon gesehen.
Wir sehen uns! ... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 10.11.2015
Version(en): 2013
Hallo Leute kleines update zu diesem ThemaHabe es jetzt mal mit deine Vorschlag gelöst über Power QueryFunktioniert nicht schlecht, nur ein kleiner nachteil besteht mit diese Funktion, wenn sich in der Tabelle was ändert werden die neuen Daten nicht übernommen.mein derzeitiger Code: Code: [Auswählen]Code: let Quelle = Excel.Workbook(File.Contents("Z:\004_DETAIL_PHASE_2\Site Motor and MCC survey 1011-Final.xlsx"), null, true), #"MCC MOTOR SURVEY_Sheet" = Quelle{[Item="MCC MOTOR SURVEY",Kind="Sheet"]}[Data], #"Abgeschnittener Text eingefügt" = Table.AddColumn(#"MCC MOTOR SURVEY_Sheet", "Trim", each Text.Trim([Column6]), type text), #"Neu angeordnete Spalten" = Table.ReorderColumns(#"Abgeschnittener Text eingefügt",{"Column1", "Column2", "Column3", "Column4", "Column5", "Column6", "Trim", "Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15", "Column16", "Column17", "Column18", "Column19", "Column20", "Column21", "Column22", "Column23", "Column24", "Column25", "Column26", "Column27", "Column28", "Column29", "Column30", "Column31"}), #"Umbenannte Spalten" = Table.RenameColumns(#"Neu angeordnete Spalten",{{"Trim", "Columme6.1"}}), #"Spalte nach Trennzeichen teilen" = Table.SplitColumn(#"Umbenannte Spalten","Columme6.1",Splitter.SplitTextByDelimiter("//", QuoteStyle.Csv),{"Columme6.1.1", "Columme6.1.2", "Columme6.1.3", "Columme6.1.4", "Columme6.1.5", "Columme6.1.6", "Columme6.1.7", "Columme6.1.8", "Columme6.1.9"}), #"Geänderter Typ" = Table.TransformColumnTypes(#"Spalte nach Trennzeichen teilen",{{"Columme6.1.1", type text}, {"Columme6.1.2", type text}, {"Columme6.1.3", type text}, {"Columme6.1.4", type text}, {"Columme6.1.5", type text}, {"Columme6.1.6", type text}, {"Columme6.1.7", type text}, {"Columme6.1.8", type text}, {"Columme6.1.9", type text}}), #"Ersetzter Wert" = Table.ReplaceValue(#"Geänderter Typ","Frame :","",Replacer.ReplaceText,{"Columme6.1.2"}), #"Ersetzter Wert1" = Table.ReplaceValue(#"Ersetzter Wert","Freq. :","",Replacer.ReplaceText,{"Columme6.1.3"}), #"Ersetzter Wert2" = Table.ReplaceValue(#"Ersetzter Wert1","RPM :","",Replacer.ReplaceText,{"Columme6.1.4"}), #"Ersetzter Wert3" = Table.ReplaceValue(#"Ersetzter Wert2","Volt. :","",Replacer.ReplaceText,{"Columme6.1.5"}), #"Ersetzter Wert4" = Table.ReplaceValue(#"Ersetzter Wert3","Rated Current :","",Replacer.ReplaceText,{"Columme6.1.6"}), #"Ersetzter Wert5" = Table.ReplaceValue(#"Ersetzter Wert4","Cos phi :","",Replacer.ReplaceText,{"Columme6.1.7"}), #"Ersetzter Wert6" = Table.ReplaceValue(#"Ersetzter Wert5","IP :","",Replacer.ReplaceText,{"Columme6.1.8"}), #"Ersetzter Wert7" = Table.ReplaceValue(#"Ersetzter Wert6","KW :","",Replacer.ReplaceText,{"Columme6.1.9"}), #"Bereinigter Text" = Table.TransformColumns(#"Ersetzter Wert7",{{"Columme6.1.1", Text.Clean}, {"Columme6.1.2", Text.Clean}, {"Columme6.1.3", Text.Clean}, {"Columme6.1.4", Text.Clean}, {"Columme6.1.5", Text.Clean}, {"Columme6.1.6", Text.Clean}, {"Columme6.1.7", Text.Clean}, {"Columme6.1.8", Text.Clean}, {"Columme6.1.9", Text.Clean}}), #"Ersetzter Wert8" = Table.ReplaceValue(#"Bereinigter Text","A","",Replacer.ReplaceText,{"Columme6.1.6"}), #"Abgeschnittener Text" = Table.TransformColumns(#"Ersetzter Wert8",{{"Columme6.1.2", Text.Trim}, {"Columme6.1.3", Text.Trim}, {"Columme6.1.4", Text.Trim}, {"Columme6.1.5", Text.Trim}, {"Columme6.1.1", Text.Trim}, {"Columme6.1.6", Text.Trim}, {"Columme6.1.7", Text.Trim}, {"Columme6.1.8", Text.Trim}, {"Columme6.1.9", Text.Trim}}), #"Geänderter Typ1" = Table.TransformColumnTypes(#"Abgeschnittener Text",{{"Columme6.1.3", type number}, {"Columme6.1.4", type number}, {"Columme6.1.5", type number}, {"Columme6.1.6", type number}, {"Columme6.1.7", type number}, {"Columme6.1.8", type number}, {"Columme6.1.9", type number}}), #"Zusammengeführte Spalten" = Table.CombineColumns(#"Geänderter Typ1",{"Column7", "Column8", "Column9", "Column10", "Column11", "Column12", "Column13", "Column14", "Column15"},Combiner.CombineTextByDelimiter("//", QuoteStyle.None),"test"), #"Entfernte Spalten" = Table.RemoveColumns(#"Zusammengeführte Spalten",{"test"}) in #"Entfernte Spalten"
Setzt mich heute am Abend mal mit einen alten Bekanten zusammen.Ob man diesen Sonderabfall mit einen VBA Makro lösen kann.MFG Christophselbst verständlich gibt es dann den VBA Code hier wenn er funzt.
Registriert seit: 12.04.2014
Version(en): Office 365
Zitat:Funktioniert nicht schlecht, nur ein kleiner nachteil besteht mit diese Funktion, wenn sich in der Tabelle was ändert werden die neuen Daten nicht übernommen. Das ist korrekt. Wie bei allen Datenverbindungen muss diese dann aktualisiert werden.
Wir sehen uns! ... Detlef
Meine Beiträge können Ironie oder Sarkasmus enthalten.
Registriert seit: 10.11.2015
Version(en): 2013
Hallo Alle zusammen.So hab mich gestern Abend mit einem Bekannten zusammen gesetzt um das Problem mit einen VBA Code zu Lösen.Das funktioniert echt super.Hier der VBA Code für die ihn brauchen könnten.Code: [Auswählen]Code: ' Initale Generierung der Daten über die Komplette Tabelle Sub init() Dim Zeile As Integer Zeile = 14 While Cells(Zeile, 2) <> "" If Cells(Zeile, 6) <> "" Then Call splitData(Zeile) End If Zeile = Zeile + 1 Wend End Sub
' Aktualisierung der Daten bei änderung der Zelle Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row > 6 And Target.Column = 6 Then For i = 0 To 8 Cells(Target.Row, i + 7) = "" Next i Call splitData(Target.Row) End If End Sub
' Daten aus Spalte 6/F der jeweiligen Zeile auslesen ' Zerlegen und die die weiteren Spalten eintragen Sub splitData(Zeilennummer As Integer) Dim line As String Dim WrdArray() As String Dim WrdArray2() As String Dim StaArray Dim EndArray ' Zelle einlesen line = Cells(Zeilennummer, 6).Value ' Zerlegen mit Teiler // WrdArray() = Split(line, "//") ' wenn 9 Teile gefunden wurden If UBound(WrdArray) = 8 Then ' Über die 9 Teile drüber gehen For i = 0 To 8 ' Falls ein Fehler passiert (bei umwandlung in Zahl) diesen einen Teil überspringen On Error GoTo Fehler ' Versuchen den Teil nochmal mit Teiler : zu zerlegen WrdArray2() = Split(WrdArray(i), ":") ' Wenn das geklappt hat und 2 weitere Teilen entstanden sind If UBound(WrdArray2) = 1 And i <> 5 Then ' den 2. Teil in die jeweilige Zelle eintragen Cells(Zeilennummer, i + 7) = Trim(WrdArray2(1)) ' ausser es handelt sich um die 6. Spalte (Strom) ElseIf UBound(WrdArray2) = 1 And i = 5 Then l = Len(Trim(WrdArray2(1))) ' dann noch das A wegschneiden Cells(Zeilennummer, i + 7) = CDbl(Left(Trim(WrdArray2(1)), l - 2)) ' konnte nicht geteilt werden alles in die Zelle eintragen Else Cells(Zeilennummer, i + 7) = WrdArray(i) End If Fehler: Next i End If End Sub
MFG Christoph
|