Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Änderung in einer Zelle in andere Datei übertragen
#1
Hallo Excelaner,

vorab erst einmal ein schönes "Rest-" Wochenende an Euch.
Ich vertreibe mir gerade die Zeit mit der Lösung eines Problems, bin mir aber sicher da würde ich hier mindestens 2 verschiedene Lösungen ganz spontan bekommen.

Ich habe eine Datei "2015.xlsx", die aus einer ...xlsm Datei gefüllt wird. Diese xlsm Datei enthält alle Daten der 2015.xlsx Datei (hinein kopiert und filterbar) in folgender Form:

FGHIJKLM
7924.02.201511:55:42Windows UserBestellungxM5/M6 Zuschnittoffen
8025.02.201513:20:10Windows UserumrüstenSchnecke 1122 auf 1125ja25.02.2015       13:20
8126.02.201512:09:55Windows UserBestandskorrekturRückholfederoffen

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Jetzt möchte ich aber "offene" Einträge als erledigt markieren können "ja" und diese Änderung soll in die 2015.xlsx Datei übernommen werden. Als Filterkriterium habe ich die Uhrzeit mit Sekunden.

In meinem Beispiel wurde am 24.02.2015 um 11:55:42 Zuschnitt bestellt und der Eintrag ist noch offen. Nun kommt irgend wann der Zuschnitt an und ich ändere per Dropdown den Status von "offen" auf "ja".
Dann soll in der 2015.xlsx der 24.02.2015 um 11:55:42 gesucht werden und der Status von offen auf ja geändert.

Ich bedanke mich schon vorab für Unterstützung

Viele Grüße

    Thomas
Antworten Top
#2
Hallo Thomas,

das ist für mich so nicht zu beantworten.
Ich vermute aber, dass Deine xlsx nur mit den noch nicht vorhanden Datensätzen ergänzt wird.
Andernfalls würde ja auch der Datensatz entsprechend aktualisiert wenn jedes Mal alle Daten neu eingelesen/kopiert werden.
Hinzu kommt, dass Du uns leider nicht verraten hast wie die xlsm heißt, oder wo sie sich auf Deinem Rechner befindet.

Ich habe hier aber mal das was Du willst, oder das was ich verstanden habe, in einer Datei zusammengestellt. Vielleicht hilft es Dir bei Deinem Anliegen.
Das Blatt "Kopie" repräsentiert Deine xlsx und das Blatt "Ursprung" wäre dann Deine xlsm.


.xlsm   Tobi1511_Beispiel_Max.xlsm (Größe: 15,86 KB / Downloads: 7)

Gruß
Max
Antworten Top
#3
Hallo Max,


Danke für deine Antwort und Mühe.


Das trifft es nicht ganz, von daher mal die eigentliche und komplette Datei als Anhang.

Der Eintrag den ich ändern möchte ist schon vorhanden, nur ist dieser noch als "offen" markiert.


Das ganze ist ein einfaches Schichtbuch und läuft hoffentlich im Netzwerk. Kann ich hier daheim nicht testen...


Die Datei Schichtbuch. xlsm wird von 3-4 Anwendern geöffnet,(jeder eine seperate) in Zeile 8 Spalte I-L werden Vorkommnisse/Ereignisse eingetragen und in der 2015.xlsx Datei gespeichert. Über "aktualisieren" wird die Datei aus der 2015.xlsx auf den aktuellen Stand gebracht.



Offene Dinge sollten eigentlich schnell abgearbeitet oder erledigt werden, nur müssen sie dabei in der "Kopie"  Schichtbuch.xlsm als "abgeschlossen" markiert werden und per Makro soll diese Änderung in die 2015.xlsx übertragen werden, dem richtigen Ereignis zugewiesen...


Angehängte Dateien
.zip   Schichtbuch 2015 - Kopie.zip (Größe: 539,41 KB / Downloads: 7)
Antworten Top
#4
Hallo in die Runde,


hier noch mal eine "optische" Darstellung meines Problems:


in einem Ordner liegt eine Schichtbuch.xlsm und eine 2015.xlsx. 

Das ist der Eingabebereich in der Schichtbuch.xlsm:
Man wählt per Dropdown ein Ereignis, einen Arbeitsplatz und den Status(erledigt) der "ja" oder "offen" sein kann. Datum, Uhrzeit und  Wer den Eintrag tätigt wird automatisch eingetragen und wenn der Status(erledigt),"ja" ist, wird automatisch ebenfalls Datum und Uhrzeit ausgefüllt.


EFGHIJKLM
6
7DatumUhrzeitEintragenderEreignisAPErläuterung/ MassnahmeerledigtDatum/ Uhrzeit
8
9
10
Formeln der Tabelle
ZelleFormel
F8=WENN(I8="";"";F2)
G8=WENN(I8="";"";F4)
H8=WENN(I8="";"";H4)
M8=WENN(L8="ja";JETZT();"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

Direkt darunter liegen 2 Schaltflächen denen jeweils ein Makro zugewiessen ist:

Eintrag speichern: Überträgt diese Eintragung im Bereich F8-M8 in die 2015.xlsx
aktualisieren: liest die Datei 2015.xlsx aus und zeigt alle Einträge in der Schichtbuch.xlsm an

EFGHIJKLM
6
7DatumUhrzeitEintragenderEreignisAPErläuterung/ MassnahmeerledigtDatum/ Uhrzeit
8
9
10
11DatumUhrzeitEintragenderEreignisAPErläuterung/ MassnahmeerledigtDatum/ Uhrzeit
1207.01.201511:50:38Windows Uservorbereiten3122 Filterbodenja10.04.2014       11:50
1308.01.201513:06:52Windows UserStörung7Schrauberoffen
1409.01.201512:02:08Windows Userumrüsten71118 LuFioffen
Formeln der Tabelle
ZelleFormel
F8=WENN(I8="";"";F2)
G8=WENN(I8="";"";F4)
H8=WENN(I8="";"";H4)
M8=WENN(L8="ja";JETZT();"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8


Ab Zeile 12 stehen Einträge die bereits vorgenommen wurden, deren Status aber noch offen sein kann, und die müssten nachträglich als erledigt markiert werden können.

In obigen Beispiel gab es am 08.01.2015 um 13:06:52 eine Störung am Schrauber, dieser wurde zur Reparatur geschickt, der Status ist dementsprechend "offen".
Am 09.01. 2015 kam der Schrauber repariert zurück, ich wähle den Status offen und stelle per Dropdown auf "ja", also erledigt, jetzt muss dieser Eintrag in Zeile 13F-K in der 2015.xlsx Datei gesucht werden, der Status auf "ja" geändert und wenn ich im Schichtbuch auf "aktualisieren" klicke sehe ich diesen Eintrag als erledigt mit Datum und Uhrzeit in Spalte M.

Danke vorab und ein schönes Wochenende

    Thomas
Antworten Top
#5
Hallo und guten Morgen,

die für mich optimale Lösung, um bei dem Beispiel zu bleiben wäre:

FGHIJKLM
1207.01.201511:50:00Windows Uservorbereiten3122 Filterbodenja10.04.2014       11:50
1308.01.201513:06:52Windows UserStörung7Schrauberoffen
1409.01.201512:02:08<Windows Userumrüsten71118 LuFioffen

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8

- Doppelklick in L13 startet Makro (das bekomme ich noch hin)
- das Makro "merkt" sich die Werte in F13 und G13, sucht die Zeile in der Datei 2015.xlsx in der diese Werte stehen und ändert die Zelle L in dieser Zeile von "offen" nach "ja"

Als ich im September letzten Jahres damit angefangen habe diese Datei zu erstellen war mir durch aus bewusst, das ich früher oder später genau an diesem Punkt stehen würde, offene Einträge ändern zu müssen.
Die Datei enthält auch überwiegend Code den ich in Foren gefunden und entsprechend angepasst habe, nur zu diesem letzten Problem habe ich nicht wirklich was gefunden, ausser folgenden Code:


Code:
Sub Werte_Zuordnen()
Dim dic As Object, wsSource As Worksheet, wsTarget As Worksheet, rngDataStart As Range, rngDataEnd As Range, rngTargetStart As Range, rngTargetEnd As Range, cell As Range
'Dictionary Object das die Zuordnung der Daten der ersten Tabelle enthält
Set dic = CreateObject("Scripting.Dictionary")
'Worksheets referenzieren
Set wsSource = Worksheets(1)
Set wsTarget = Worksheets(2)
'Referenzbereich der ersten Tabelle festlegen
Set rngDataStart = wsSource.Range("A2")
Set rngDataEnd = rngDataStart.End(xlDown)
'Zielbereich der zweiten Tabelle
Set rngTargetStart = wsTarget.Range("A2")
Set rngTargetEnd = wsTarget.Cells(Rows.Count, 1).End(xlUp)
'Dictionary mit den Werten der ersten Tabelle füllen
For Each cell In wsSource.Range(rngDataStart, rngDataEnd)
dic.Add cell.Value, cell.Offset(0, 1).Value
Next
'Zieltabelle durchgehen und Werte zuordnen
For Each cell In wsTarget.Range(rngTargetStart, rngTargetEnd)
' Wenn Wert der Zelle nicht leer ist und der Wert in der Zuordnungstabelle vorhanden ist dann schreibe den Wert in die Zelle daneben
If cell.Value <> "" And dic.Exists(cell.Value) Then
cell.Offset(0, 1).Value = dic.Item(cell.Value)
End If
Next
End Sub

allerdings scheitert es da an der Umstellung auf meine Gegebenheiten.

Ich bin für jede Hilfe dankbar, denn wenn ich fliegen könnte wäre ich Pilot geworden ...

Danke vorab und eine angenehme (Arbeits-) Woche


   Thomas
Antworten Top
#6
(01.03.2015, 18:52)Max schrieb: Ich vermute aber, dass Deine xlsx nur mit den noch nicht vorhanden Datensätzen ergänzt wird.

Hallo Max,

Du bist mein Held :100:

Entschuldige bitte, das ich mir deine Datei auf Grund der zitierten Textzeile noch nicht eher angeschaut habe, da der Datensatz schon vorhanden ist und nur geändert wird.
Genau das macht aber dein Vorschlag- zwar in die falsche "Richtung", was jedoch nebensächlich ist, aber er macht es.

Dann werde ich mal schauen das ich das in die Datei eingebaut bekomme und melde mich wieder

Bis später

   Thomas
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste