Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Auswertungen bearbeiten+ Wert an Zelle zurückgeben

Auswertungen bearbeiten+ Wert an Zelle zurückgeben
14.09.2006 01:00:17
Catie
Hallo liebe Helfer,
ich hoffe, daß man den Betreff versteht, wenn ich erläutere was ich gern erreichen möchte:
Ich habe eine Arbeitsmappe mit ca 50 Sheets (Projektbeschreibung und -bewertung).
Die Bewertungen werden auf einem Extrasheet (Summary) zusammengefasst und mit der Formel =ZELLE("inhalt";'Worksheet'!Zelle) dargestellt. Man möchte in der Besprechung auf jedem Sheet Änderungen vornehmen können, die dann in der Summary automatisch geändert werden. Das funktioniert auch.
Bei der Schlussbewertung nimmt man sich allerdings die Summary vor und passt eventuell noch Werte dort an. Damit ist die Formel ja weg, die auf den Zellinhalt des Worksheets verweist.
Hat jemand eine Idee, wie ich umsetzen kann, dass beides möglich ist, also editieren sowohl auf dem Worksheet als auch in der Summary? Vielleicht eine 2. Summary? Aber wie dann weiter?
Vielleicht geht sowas ja auch gar nicht, aber wenn, wär's schön wenn jemand mir helfen könnte.
Hoffnungsvolle Grüsse
Catie

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
14.09.2006 01:22:16
Christian
Hi Catie,
sorry, ich habe grad nicht die Zeit es zu erklären, aber vielleicht hilft Dir die Zielwertsuche unter Extras weiter.
Schöne Grüße
Christian
PS: Bitte um kurzes Feedback.
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
14.09.2006 01:52:20
Catie
Hi Christian,
ich glaube nicht, dass mir das weiterhilft, denn man will ja kein Ergebnis finden, sondern in der Summary einen an die im Meeting besprochenen Umstände angepassten Wert eintragen, der dann auch auf dem Arbeitsblatt reflektiert werden soll.
Gruß
Catie
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
14.09.2006 13:16:19
Oberschlumpf
Hallo Cati
Vielleicht kann ich dir mit einer VBA-Lösung helfen.
Aber dafür wäre es sehr hilfreich, wenn du eine Bsp-Datei auf dem Server speicherst.
Es müssen keine Realdaten vorhanden sein - Bsp-Daten wären ok.
Wichtig ist aber, dass die Bsp-Datei von der Struktur genau so wie das Original aussieht.
Ciao
Thorsten
Anzeige
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
14.09.2006 21:09:18
Catie
Hi Thorsten,
das Ding war zu gross, musste es zippen. Hoffe, alle Links bleiben erhalten und freue mich sehr, wenn du eine Lösung für mich hast.
Datei: https://www.herber.de/bbs/user/36682.zip
Grüsse
Catie
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
14.09.2006 21:18:01
Catie
Nachtrag:
Auf dem Sheet PTS werden die Bewertungen abgebildet, auf dem Sheet PTS Calibration will man sie ändern können und auf die Sheets übernehmen.
Grüsse
Catie
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
15.09.2006 09:28:45
Oberschlumpf
Hallo Catie
Ich habe mal mein Glück versucht :-)
Versuch es zuerst mal mit dieser Bsp-Datei:
https://www.herber.de/bbs/user/36689.zip
Meine Lösung sieht so aus:
Sobald du im Sheet "PTS Calibration" einen oder mehrere Werte im Bereich C3:G3 änderst, werden die geänderten Werte mit VBA in das Sheet "Project1" übertragen - automatisch ändern sich dann natürlich auch die Werte im Sheet "PTS".
Die Formeln in allen oben erwähnten Sheets werden nicht geändert.
Ich hoffe, ich habe deinen Hinweis,
Zitat: "Auf dem Sheet PTS werden die Bewertungen abgebildet, auf dem Sheet PTS Calibration will man sie ändern können und auf die Sheets übernehmen.",
richtig verstanden?
Oder sollen Änderungen aus PTS Calibration NUR in PTS übertragen werden?
Dann stimmen aber in PTS die Werte nicht mehr mit den Werten in Project1 überein.
Aus diesem Grund habe ich die Änderungen so vorgenommen, wie beschrieben.
Ein weiteres Problem könnte sein, dass ich mich in deinem Job so gar nicht auskenne, und nicht weiß, was Portfolio etc bedeutet.
Ich gehe bisher davon aus, dass in den Sheets PTS & PTS Calibration nur jeweils diese eine Wertezeile besteht, dessen Änderung(en) ich mit VBA "überwache".
Wenn du aber nur wegen eines Beispieles nur eine Zeile angegeben hast, in der Originaldatei in diesen Sheets aber mehrere Zeilen vorhanden sind, dann wird dir mein Bsp so wie es ist leider noch nicht helfen, da es sich nur eben auf die eine Zeile bezieht.
Trotz aller Unklarheiten :-) meine obligatorische Frage...
Konnte ich helfen? :-)
Ciao
Thorsten
Anzeige
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
15.09.2006 10:05:38
Catie
Hi Thorsten,
vielen Dank erst einmal für deine Mühe, aber das ist es noch nicht ganz.
Vom Sheet PTS Calibration aus funktioniert die Änderung rückwärts zum Sheet Project1, aber Änderungen in Project1 werden nicht in PTS Calibration übernommen. Es sollte eigentlich in beide Richtungen möglich sein. Und - ich habe nachher ca 70 Sheets in einer Arbeitsmappe, müsste ich dann im Code jedes einzelne Sheet aufführen?
Viele Grüsse
Catie
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
15.09.2006 11:11:31
Oberschlumpf
Hallo Catie
Jetzt müsste es (zumindest im Bsp) funktionieren:
https://www.herber.de/bbs/user/36696.zip
Nun werden auch manuelle Änderungen in Project1 in PTS Calibration übertragen.
Ja, du müsstest die VBA-Codes, die sich jetzt in den Sheets "PTS Calibration" und "Project1" befinden, auf alle Sheets, in denen das Gleiche geschehen soll, übertragen. Natürlich musst du immer die Zellbereiche anpassen.
Ich gehe davon aus, dass das Design deiner Excel-Datei steht - dass also alle Zellen so formatiert sind, wie gewünscht.
So hast du nur 1x die 70fache Arbeit - und dann sollte ales passen.
Wenn aber hin und wieder sich die Zellen ändern, in den jetzt die Werte stehen, dann musst du immer den VBA-Code anpassen.
Daher sollte zuerst das Design einer Excel-Datei "stehen".
Bevor du mit der Original-Datei arbeitest, mach lieber eine Kopie derselben, mit der du erst mal testen kannst.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
15.09.2006 11:24:53
Catie
Hi Thorsten,
jaaaa, du konntest helfen :D herzlichen Dank!
Bleibt für mich nur noch die Frage, wie ich die Zeile
Dim lwsProj1 As Worksheet
für jedes Blatt ändern muss. Im Code wird jedes Blatt dann genannt, das hab ich begriffen.
Erklärst du mir bitte noch den Ausdruck Dim lws + Abkürzung Sheetname, damit ich das richtig mache?
Viele Grüsse
Catie
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
15.09.2006 15:00:41
Oberschlumpf
Hi Catie :-)
Schön, freut mich, dass du voran kommst.
Ich erkläre dir jetzt mal den ganzen VBA-Code. Brauchst ja nur das lesen, was dich interessiert:

'alles an Code, was nach der folgenden Zeile kommt, wird ausgeführt, wenn sich der Wert einer Zelle verändert
Private Sub Worksheet_Change(ByVal Target As Range)
'mit Dim werden Variablen deklariert (lies dir für mehr Info die Excel-Hilfe zu diesem Befehl durch)
'warum ich hier DIm ... verwende, erkläre ich gesondert weiter unten
Dim lwsProj1 As Worksheet
'mit der nächsten Zeile wird der Bereich bestimmt, bei dessen Wertveränderung dieser Code ausgeführt werden soll
'd. h., generell gilt das Ereignis Worksheet_Change dann, wenn der Wert einer
'beliebigen Zelle verändert wird
'aber hier wollen wir ja gar nicht, dass dieser Code auch dann gestartet wird,
'wenn sich z Bsp der Wert in A1 ändert.
'deswegen "bestimmen" wir mit der nächsten Zeile, dass der Code nur dann aus-
'geführt werden soll, wenn sich der Wert in einer der Zellen B519:F519 ändert
If Not Intersect(Target, Range("$B$519:$F$519")) Is Nothing Then '<-- den Bereich in den $-Zeichen musst du für jedes Blatt anpassen
'die nächste Zeile schaltet Ereignis-Reaktionen aus
'da der gesamte Code Veränderungen im Sheet "PTS Calibration" vornimmt, und
'da auch in dem Sheet an gleicher Stelle fast der selbe Code steht, würde
'auch im Sheet "PTS Calibration" das Ereignis Worksheet_Change gestartet werden
'und der Code, der da steht, würde starten - das Ganze hätte eine Endlos-
'schleife zur Folge, und Excel würde sich aufhängen :-)
'um so etwas vermeiden zu können, kann man Ereignis-Reaktionen abschalten
Application.EnableEvents = False
'in der nächsten Zeile wird der Variablen lwsProj1 ein Wert zugewiesen - in diesem Fall
'ein bestimmter Sheet-Name
Set lwsProj1 = Sheets("Project1") '<-- hier musst du immer DEN Sheet-Namen eintragen,
'in dessen Change-Ereignis dieser Code steht
'die nächste Zeile "öffnet" einen "Container", in dem man auf alle Ereig-
'nisse, Methoden usw des "Containers" zugreifen kann.
'benutzt du nicht diesen Container, musst du immer anstelle von
'".Range(Zelle).Value" den Befehl "Sheets("PTS Calibration").Range(Zelle).Value" schreiben
'diese "Container" ermöglichen es, dass man nicht immer das gleiche schreiben muss
With Sheets("PTS Calibration")
'hier werden den Zellen C3:G3 im Sheet "PTS Calibration" die Werte aus
'den Zellen B519:F519 aus dem Sheet "Project1" übertragen
.Range("C3").Value = lwsProj1.Range("B519").Value
.Range("D3").Value = lwsProj1.Range("C519").Value
.Range("E3").Value = lwsProj1.Range("D519").Value
.Range("F3").Value = lwsProj1.Range("E519").Value
.Range("G3").Value = lwsProj1.Range("F519").Value
End With
'in der nächsten Zeile wird die zuvor belegte Variable wieder auf Null gesetzt
Set lwsProj1 = Nothing
'in der nächsten Zeile wird die Ereignis-Überwachung wieder eingeschaltet
'wenn du diese Zeile nach dem Ausschalten mal vergessen solltest, wird
'kein VBA-Code mehr ausgeführt - egal, welches Ereignis eintritt
Application.EnableEvents = True
End If
End Sub

Und nun zu der Variablen lwsProj1.
Ich verwende diese Variable nur wegen Schreibfaulheit :-)
Würde ich die DIM-Zeile weglassen, müsste ich in diesem Fall jede Zeile, die lwsProj1 enthält, so schreiben:
Sheets("Project1").Range("B519").Value
im Vergleich
lwsProj1.Range("B519").Value
ist doch um ein paar Zeichen kürzer, oder? :)
Anstelle von lwsProj1 hätte ich die Variable auch einfach nur X nennen können.
Dann würden all die Zeilen so aussehen:
X.Range("B519").Value
(was noch kürzer ist :-) )
Aber X ist nicht sehr aussagefähig. Wenn in einem Makro viele Variablen verwendet werden, kommt man schnell durcheinander, wenn man sie z Bsp nur "a" "b" "X" etc nennt.
Die Variable lwsProj1 habe ich so genannt weil:
l = es handelt sich um eine (l)okale Variable - es gibt auch sogenannte Public-Variablen, die nenn ich am Anfang immer p...
ws = kennzeichnet den Typ der Variablen - es gibt String (str), Integer (i), Double (db) usw Variablen - ws ist eine (w)ork(s)heet-Viariable
Proj1 = nur ein Kürzel für Project1, damit ich auch später noch weiß, um welches Sheet es sich handelt.
Sooooo....Text zu Ende - ich habe fertig! :-)
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Auswertungen bearbeiten+ Wert an Zelle zurückg
15.09.2006 23:26:39
Catie
Hi Thorsten
Wow, das ist ja mal ne tolle Erklärung :D
Deine Mühe soll auch belohnt werden: Ich habe alles verstanden ;)
Ich lese schon immer zuerst in der Hilfe, aber manchmal ist mir das zu hoch.
Deine Erklärung ist richtig gut angekommen, herzlichen Dank dafür!
Hab mir die Arbeit mit nach Hause genommen und werde den Code nachher da einfügen, muss erst noch die ca 100000 Verlinkungen anpassen....
Für Thorsten als Erklärbär: Note 1+
Viele Grüsse
Catie
AW: Gruppierung öffnen trotz Blattschutz?
16.09.2006 05:16:42
Catie
Moin Thorsten ;)
wie du sicher gesehen hast, habe ich Gruppierungen in den Sheets - leider. Diese einzelnen Sheets werden von verschiedenen Personen bearbeitet und ich habe festgestellt, dass da einige "Designer" dabei sind, die Zeilen löschen, hinzufügen oder was auch immer. Das zerstört mir meine Zellverweise, am liebsten würde ich nur die editierbaren Zellen freigeben und das Blatt dann sperren. Dann kann man aber die Gruppierungen nicht mehr öffnen/schliessen.
Weisst du auch dafür Rat?
Viele (müde) Grüsse
Catie
Anzeige
AW: Gruppierung öffnen trotz Blattschutz?
16.09.2006 09:20:25
Oberschlumpf
Hi Catie :-)
Na...ich als DER Erklär-Bär..hihi..bringe doch gleich noch den passenden waschBÄrbauch (NICH zu verwechseln mit waschBRETTbauch - leider :-) ) mit..grins...dann passt das doch :-)))
Schön, freut mich, dass wir dein ursprüngliches Problem schon mal so weit lösen konnten.
Als ich dein neues Problem las, dachte ich erst mal "ups, ob ich da auch helfen kann?"
Aber dann fiel mir die geniale Zusammenarbeit zwischen Hans W. Herber und google.de ein...hehe :-)
Mit dem Suchtext "löschen verhindern site:herber.de" fand ich dann unter anderem diesen Eintrag: https://www.herber.de/forum/archiv/304to308/t305378.htm
Daraus entnahm ich dann den Teil, der mir helfen konnte, passte ihn ein wenig an - und ich, bzw jetzt auch du hast nun wieder ein Problem weniger :-)
Will also sagen, dass diesmal NICHT alles auf meinem Mist gewachsen ist :-)
Nun werden in deiner Datei alle Menü- und Kontextmenüeinträge deaktiviert, die ganze Zellen/Zeilen/Spalten löschen können - hoffe ich zumindest..grins :-)
ups...fast vergessen....die Datei!!! :-))
Hier..bitte schön:
https://www.herber.de/bbs/user/36717.zip
-----------------------------------------------------------------------------
Und dann habe ich noch etwas, was mir vielleicht gleich wieder ein paar Minuspunkte bei dir einbringen wird, wenn ich sehe, um wieviel Uhr du deinen letzten Beitrag gesendet hast :-)
Vielleicht ist es möglich, den Code, den du jetzt wahrscheinlich 70x oder noch öfter immer wieder in verschiedene Sheets reinkopiert hast, nur 1x zu schreiben..*duck* :-)
Möglich ist das vielleicht, wenn von den ganzen Sheets die erforderlichen Werte (welche Zellbereiche, der Sheetname, etc) an das 1 Makro übertragen werden.
Hierfür mal ein Konstrukt für 3 Sheets:

Sub WorkSheet_Change()
Blattname1 = "Project1"
Blattname2 = "?"
Zellbereich1 = "B519:G519"
Zellbereich2 = "?"
Rufe Makro
End Sub
Sub WorkSheet_Change()
Blattname1 = "PTS Calibration"
Blattname2 = "?"
Zellbereich1 = "C3:G3"
Zellbereich2 = "?"
Rufe Makro
End Sub
Sub WorkSheet_Change()
Blattname1 = "anderes Sheet"
Blattname2 = "?"
Zellbereich1 = "anderer Bereich"
Zellbereich2 = "?"
Rufe Makro
End Sub
Sub Rufe Makro()
Dim lwsProj1 As Worksheet
If Not Intersect(Target, Range(ZELLBEREICH)) Is Nothing Then '<-- hier wird der Bereich übergeben
Application.EnableEvents = False
Set lwsProj1 = Sheets(BLATTNAME1)
With Sheets(BLATTNAME2)
lwsProj1.Range(ZELLBEREICH1).Value = .Range(ZELLBEREICH2).Value
lwsProj1.Range(ZELLBEREICH1).Value = .Range(ZELLBEREICH2).Value
lwsProj1.Range(ZELLBEREICH1).Value = .Range(ZELLBEREICH2).Value
lwsProj1.Range(ZELLBEREICH1).Value = .Range(ZELLBEREICH2).Value
lwsProj1.Range(ZELLBEREICH1).Value = .Range(ZELLBEREICH2).Value
End With
Set lwsProj1 = Nothing
Application.EnableEvents = True
End If
End Sub

Aber dafür wäre es notwendig, dass du die komplette (leere) Datei als Bsp auf dem Server speicherst.
Da ich aber vermute, dass dir bei den vielen Formatierungen auch Winzip nicht helfen kann, müsstest du es selbst versuchen :-)
Oder schick mir mal die leere Bsp-Datei an m-neugierig AT gmx.de (maximale Mailgröße = 10 MB)
Schreib aber bitte in diese Datei, wo genau du in welche Richtung(en) welche Veränderungsmöglichkeiten haben möchtest.
Ich schau dadnn mal, ob es a) überhaupt möglich ist und b) ob sich der ganze Aufwand lohnt, oder ob es eben doch "einfacher" ist, den ganzen Code 70x zu kopieren.
Meine letzte Frage :-))
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Gruppierung öffnen trotz Blattschutz?
18.09.2006 20:11:19
Catie
Hi Thorsten,
ja du konntest... und wiiiieee *gg ;)
Herzlichen Dank :)
Catie
PS: Ohne deine fachkundige Hilfe hätte ich das nicht so toll hinbekommen! Bei dir würd ich nen VBA-Kurs buchen, deine Erklärungen versteht man wenigstens :)
hehe..danke danke :-))))
18.09.2006 22:48:55
Oberschlumpf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige