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.

Exel Hauptarbeitsmappe mit mehreren Arbeitsmappen synchronisieren
#1
Hallo erstmal in die Runde!

Erstmal vorne weg, ich bin absolut unbedarft in Exel....Ich habe in meiner Berufsschulzeit Mal etwas mit Wenn Dann Gleichungen spielen dürfen und das war es.

Jetzt bin ich auf der Arbeit in eine neue Abteilung gekommen und hier wird leider sehr old school gearbeitet....

Folgende Sachlage: Es werden von mehreren Personen Auftragszettel erstellt und ausgedruckt. Auf diesen Blättern stehen verschiedene Daten wie z.B. Kundennummer , Datum, Kundenanschrift, Lieferscheinnummer....Diese Zettel werden dann ausgedruckt und ein Kollege nimmt sich dann jeden einzelnen Zettel vor und tippt diese Daten noch einmal manuell in eine seperate Tabelle ein. Dort erhalten er dann eine laufende Nummer (jede Zeile eine neue Nummer+1) die dann per Hand auf den ausgedruckten Zettel geschrieben....Die hier eingegebenen Daten werden dann in der Tabelle am Monatsende ausgewertet....

Zeitaufwand mehrere Stunden pro Tag.... Die Kollegen machen das in ihrem Trott und sind da eigentlich an Lösungen nicht so wirklich iteressiert und neuen Gegenüber nicht aufgeschlossen deshalb ist mit Hilfestellungen von da nicht zu rechnen....

Mein Gedanke ist nun aber das die Daten ja schon einmal eingegeben worden sind und das es doch möglich sein müsste hier eine automatische Synchronisation zu realisieren, oder?

Es besteht ein Netzwerk auf das alle zugreifen können. Die Frage lautet jetzt, ist es möglich für jeden KollegenK(10Stuck) eine Arbeitsmappe für die Auftragszettel (Tabell1) zuzerstellen und eine Hauptarbeitsmappe (Tabelle2). Es muss dann so sein, dass ich die Daten in die Tabelle 1 eingebe, nach der Eingabe eine Synchronisierung starte und dann die Daten in die Tabelle2 übernommen werden. In der Tabelle 2 müssen dann diese Daten entspr. in die nächstfreie Zeile eingefügt werden. Jetzt müsste die laufende Nummer dieser Zeile entspr. automatisch in die Tabelle 1 übernommen werden, so das die Tabelle 1 ausgedruckt werden kann....Ich hoffe ihr versteht worauf ich hinaus möchte....Tabelle 1 muss nach dem Druck nicht gespeichert werden. 

Jetzt die Frage, ist so ein Prinzip für einen Laien umsetzbar? In welche Richtung muss ich mich da belesen? 

Wie erwähnt werde ich leider beruflich kein Backup bekommen und wenn es den Rahmen für einen Laien sprengt lasse ich das sein und kümmere mich wieder um meine Kaffetasse;)

Danke für eure Aufmerksamkeit!

Gruß

Torben
Antwortento top
#2
Hi Torben,

mal 'ne kurze Überlegung am Anfang. Wenn, wie du schreibst, deine Kollegen Neuerungen gegenüber nicht aufgeschlossen sind, warum willst du dir dann die Mühe einer automatisierten Datei machen? Dann wirst du wohl davon ausgehen können, dass sie auch daran nicht interessiert sind. "Des hond mir scho immer so g'macht, des nuie Glump kascht b'halte."
Gruß Günter
Misserfolg ist eine Chance, es beim nächsten Mal besser zu machen.
(Henry Ford) www.zitate.net
[-] Folgende(r) 1 Benutzer sagt Danke an WillWissen für diesen Beitrag:
  • Newby81
Antwortento top
#3
Hallöchen,

eventuell wäre da eine kleine Datenbankanwendung vorteilhafter. Da können mehrere Kollegen darauf zugreifen und die Auftragszettel erstellen. Du könntest das auch in Excel realisieren, eine Variante wäre über die Freigabe der Arbeitsmappe, sodass mehrere Kollege damit arbeiten können. Allerdings sind freigegebene Mappen nicht unumstritten. Die andere Variante wäre, wenn die Mappe nicht freigegeben ist, dass die eben nach der Verwendung gleich wieder geschlossen werden muss, sodass der nächste Kollege damit arbeiten kann. EIne weitere Variante wäre, dass es 10 Mappen gibt und jeder Kollege bekommt "eigene" Nummern bzw. eine Kennung. Z.B. Kollege A schreibt vor seine Nummern ein A -> A000001, Kollege B ein B -> B000001 usw.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • Newby81
Antwortento top
#4
Hallo und erstmal Danke das ihr euch die Zeit genommen habt:)

Mein Problem ist das ich halt echt das Kotzen kriege wenn ich so extrem unnötige und uneffektive Abläufe sehe.... Ich bbi dann so einer der es auch für sich wissen will ob es nicht besser und einfacher geht.... 

Nun zum Thema....Es muss Exelbassiert sein, eine andere Möglichkeit wird es bei uns nicht geben....Ich sollte vielleicht kurz anmerken das ich im öffentlichen Dienst bin, da ist also keine Chance für mich rgendwelche Programme aufzuspielen oder auch nur ein Script auszuführen aufgrund mangelnder Rechte....

Ich fürchte ich verstehe schauans Kommentar auch leider nicht ganz.... Also grundsätzlich ist das mit der Freigabe kein Problem....Aber wahrscheinlich habe ich da einfach Verständnisprobleme.... Um es auf den Punkt zu bringen, die Kollegen die die Auftragszettel erstellen müssen natürlich parallel jeder an seinem eigenen Zettel arbeiten, und dann müssten diese sich alle mit Einer Haupttabelle synchronisieren.... Also Kollege 1 bis 10 hat jeder seine eigene tabelle und wenn er die Daten erfasst hat müssten die Daten in die Haupttabelle übertragen werden. Jetzt müsste im Gegenzug die Hauptabelle jedem der Kollegen sagen wie seine entspr. fortlaufende Nummer ist. Also Kollege 5 ist mit Daten erfassen fertig, drückt speichern, die Daten von Kollege 5 werden in die Haupttabelle in Zeile 18 geschrieben, hier wurde vorher die laufende Nummer 1188 vergeben, das teilt dann die Haupttabelle der vom Kollegen 5 mit, der Kann jetzt den Auftragszettel ausdrucken welche auch die laufende Nummer 1188 in einem Feld stehen hat....Kollege 8 macht kurz danach das gleiche, kriegt dann automatisch Zeile 19 in der Haupttabelle zugewiesen(da 18 ja schon besetzt ist) 7nd dort entspr. die laufende Nummer 1189.....and so on....

Mir geht es hier erstmal um eure Einschätzung ob dies überhaupt grundsätzlich Möglich ist, bevor ich mich stundenlang probiere in die Materie einzuarbeiten und dann feststelle das es von Vornerhein unmöglich war....


Dankschön

Gruß

Torben
Antwortento top
#5
Hi Torben,

wie gesagt, schaue Dir mal die Freigabe von Arbeitsmappen an und teste das. Deine Kollegen würden alle direkt mit der freigegebenen Mappe arbeiten und Du brauchst nix mehr synchronisieren. Du musst vor allem schauen, ob die Kollegen rechtzeitig die Information über neue Nummern bekommen, nicht, dass durch Zeitverzug Duplikate auftreten. Da sehe ich ein Risiko.

Alternativ wäre dann die Variante ohne Freigabe und mit der "Wartezeit" für den nächsten Kollegen, bis die Mappe geschlossen ist.

Beide Varianten haben aber den Nachteil, dass die Kollegen versehentlich Daten löschen könnten und dadurch eine mehrfache Nummernvergabe auftreten kann. Mehrere Kollegen sind da halt ein höheres Risiko als der eine zentrale ...

Die Synchronisation, wie Du sie Dir vorstellst, ist nur per Makro möglich und wenn die bei Euch nicht erlaubt sind, wird das nix.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • Newby81
Antwortento top
#6
Hallo, 

Andre, das war gerade genau der Stein des Anstoßes den ich gebraucht habe! Ich  glaube jetzt hat es bei mir (zumindest etwas ) Klick gemacht:D 

Wie gesagt, ich habe mich mit Exel noch nicht intensiv beschäftige und noch gar nicht mit der Programmierung von Makros.... Ja okay, zugegebenermaßen sollte ich ehrlich sein und sagen dass ich nicht einmal wusste das es sowas wie Makros eingebunden in Exel gibt.... Ich habe bis jetzt lediglich Mal eine zu Hause batch Datei erstellt die automatisch was löscht.... Aber das mit den Makros scheint genau das zu sein was ich suche.... 

Ich habe das mit den Zugriffsrechten was Makros angeht noch nicht probiert... Das werde ich jetzt Mal austesten! Ich weiß das ich definitiv keine Batch Dateien ausführen kann, aber ich denke das es mit Makros gehen könnte....

Ich habe mir nun ein kleines Grundlagenvideo zu dem Bereich VBA angesehen....Und wie du gesagt hast scheint das auf den ersten Blick genau das zu sein was ich bräuchte!Smile Ich werde das nächste Woche Mal antesten! 

Vielen Dank schon Mal bis hier!

Gruß Torben
Antwortento top
#7
Hallo Torben,

na dann schauen wir mal, was sich ergibt. Bei uns gab's mal eine Zeitlang keine Möglichkeit, Exceldateien mit Makros im Netz zu speichern. Ging nur lokal. Kann man aber auch lokal verhindern. Da sind viele Barrikaden möglich, kommt ganz auf die IT an Sad
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • Newby81
Antwortento top
#8
So liebes Forum, die Gute Nachricht ist, dass grundsätzlich die Sache mit dem Marko bei uns funktioniert:) 

Die schlechte Nachricht ist das ich natürlich noch nie damit gearbeitet habe und die Sprache/Befehle für mich wenig Sinn machen....

Bis jetzt habe ich mir folgendes Zusammengeklaut ....

Sub FormularAbschicken()
'Pfad zur Masterdatei festlegen:
Const MasterDat As String = "G:\Datenbank VBA\buch.xlsx"
Dim wsBeschauauftragtest As Worksheet
Dim wsbuch As Worksheet
Dim lngZeile As Long, rngTmp As Range


'Festlegen aus welchem Tabellenblatt die Daten kopiert werden sollen
Set wsBeschauauftrag = ActiveSheet

'Überprüfen, ob Masterdatei geöffnet ist
If DateiGeoeffnet(MasterDat) Then
MsgBox "Die Daten konnten nicht erfolgreich übermittelt werden!" & vbLf & vbLf & _
"Die Datei" & vbLf & MasterDat & vbLf & _
"ist im Augenblick wahrscheinlich von einem anderen Benutzer geöffnet." & vbLf & vbLf & _"Bitte versuchen Sie es später noch einmal.", vbExclamation, "Abbruch"

Exit Sub 'Makro beenden

End If



'Masterdatei öffnen

Set wsMasterTab = Workbooks.Open(MasterDat).Worksheets("Tabelle1")




'Daten übernehmen


Kopierbefehl bekomme ich einfach nicht hin....


Masterdatei speichern und schließen

wsMasterTab.Parent.Close savechanges:=True



Set wsMasterTab = Nothing

Set wsQuelle = Nothing

Set rngTmp = Nothing



End With




End Sub

......Ich muss ehrlich zugeben, das das alles Zusammengeklaut ist und ich eigentlich nur die Parameter so abgeändert habe das es auf meine beiden Dateien passt.....SoShat ein ganz einfacher Kopierbefehl zumindest schon Mal geklappt. 

Den richtigen Kopierbefehl bekomme ich aber nicht hin, liegt sicher an meinem Nichtverständnis der Sprach....

Ich möchte jetzt eigentlich sagen : kopiere aus meinem Beschauauftrag (Quelle) die Zelle b9 in die Arbeitsmappe "Buch" in Tabelle 1( Datenbank) auf Spalte B die Nächte freie Zeile.... Wenn b 10 besetzt ist nimm automatisch die nächste freie Zeile ( b11) and so on..... Das müsste ich dann für 5 Zellen aus der Quelle einrichten. Zudem müsste ich jetzt aus der Datenbank die laufende Nummer des Falles in die Quelle (Beschauauftrag) kopieren....Die laufenden Nummer hängen mit der Zeile zusammen in der der Eintrag gemacht wurde....

Also z.b. die Zeile 9 der Datenbank hat die laufende Nummer 11223 (die werden vorher alle einfach in die Spalte A gemacht, manuell) A9 hat also den Wert 11223. Wenn jetzt der Kopiervorgang startet soll er also aus der Quelle die eine Zeile wie oben beschrieben in die Datenbank kopieren. Die nächste freie Zelle ware jetzt Mal angenommen B9....Dann soll er jetzt schauen welcher Wert in A9 hinterlegt ist und diesen dann von der Datenbank in die Quelle kopieren. Der nächste Auftrag würde dann entspr. In B10 eingetragen, also schaue in A10 übernehme den Wert und kopiere ihn wieder ruber.....
Ich hoffe ihr versteht worauf ich hinaus möchte....Vielen Dank für eure Mühen und Unterstützung!

Gruß Torben
Antwortento top
#9
Hallo liebes Forum,

ich probiere mich gerade an den Kopierbefehlen, natürlich nicht erfolgreich :(

Ich muss ja nun die nächste Freie Zelle definieren, das probiere ich mit 'Freie Zelle finden.....


Wenn er diese Zelle gefunden hat muss ich ihm ja sagen, dass er die Daten aus der 
Quelle (B9) in diese Zeile Kopieren soll.... Daran scheitere ich aber total:(:(

Befehle wie oben geschrieben und dann:

'Masterdatei öffnen
   Set wsMasterTab = Workbooks.Open(MasterDat).Worksheets("tabelle1") 

'Daten übernehmen
   With wsMasterTab

      'freie Zeile finden
      i = .Cells(Rows.Count, 2).End(xlUp).Row + 1
      
      
    'Daten übernehmen
      
      .Range(.Cells(i, 2)).Value = Application.Transpose(wsBeschauauftrag.Range("B9").Value)

Was mache ich falsch???

Gruß

Torben
Antwortento top
#10
Hallo Torben,

wenn Du Fehler beschreibst ist es auf jeden Fall angebracht, die genaue Stelle zu nennen und auch die Meldung.

Klemmt es etwa schon da:

Set wsMasterTab = Workbooks.Open(MasterDat).Worksheets("tabelle1")

Dann gibt es vielleicht die Datei nicht oder das Blatt. Oder klemmt's wo anders? …

oder vielleicht da:
.Range(.Cells(i, 2)).Value = Application.Transpose(wsBeschauauftrag.Range("B9").Value)

Da wird es auf jeden Fall klemmen,
.Range(.Cells(i, 2))
ist nicht so gut.
.Cells(i, 2)
wäre ausreichend wenn das die Zielzelle sein soll.

Mal abgesehen davon, dass eine Zelle zu transponieren auch nicht unbedingt nötig ist.
   \\\|///      Hoffe, geholfen zu haben.
   ( ô ô )      Grüße, André aus G in T  
 ooO-(_)-Ooo    (Excel 97-2016)
[-] Folgende(r) 1 Benutzer sagt Danke an schauan für diesen Beitrag:
  • Newby81
Antwortento top


Gehe zu:


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