Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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
Inhaltsverzeichnis

Suchen und Ersetzen in Formel

Suchen und Ersetzen in Formel
26.04.2016 13:29:35
Reinhard

Hallo zusammen,
habe folgendes Problem (Ausführungen sind vereinfacht und auf angehängten upload angepasst):
Habe eine Arbeitsmappe; Tabellenblatt 1 "Vorlage" hat in Feld A1 eine Formel hinterlegt mit welcher abgefragt wird, ob in Tabellenblatt 2 "Auto" in Feld A1 etwas steht. Falls ja, wird dies in Tabellenblatt 1 übertragen. Falls in Tabellenblatt 2 nichts steht, soll in Tabellenblatt 3 "Bus" nachgesehen werden.
Jetzt bräuchte ich eine Lösung, welche mir anschließend die Formel in Tabellenblatt 1 so umschreibt, dass die nächsten beiden Tabellenblätter bearbeitet werden - im upload müßte also in Tabellenblatt1 in der Formel der Ausdruck "Auto" durch "Fahrrad" und der Ausdruck "Bus" durch "Flugzeug".
VBA-Lösung wäre grandios...
Besten Dank!
Reinhard

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
angehängten upload ???
26.04.2016 13:43:54
UweD
der fehlt

AW: angehängten upload ???
26.04.2016 15:12:22
Piet
Hallo Reinhard
anbei zwei simple Makro Lösungen, einmal über Index, oder über Blatt Namen.
Bei Index ist zu beachten das die Ranfolge der Blaetter nicht immer stimmen muss.
Da könnte auch Flugzeug vor Auto kommen, je nachdem, wie die Blaeeter angelegt wurden.
In dem Fall ist die Choose Variante besser, weil hier der Blatt Name und die Reihenfolge vom User festgelegt wird.
Einfach mal ausprobieren was brauchbar ist.
mfg Piet
Option Explicit         '26.4.2016    Piet für Herber Forum
Dim j As Integer, Blatt As String
'auflisten über den Worksheets Index
Sub Tabelle_A1_auflisten_über_Index()
For j = 1 To Worksheets.Count
With Worksheets(j)
If .Name = "Tabelle1" Then       'Tabelle1 überspringen !!
ElseIf .Range("A1") <> "" Then   'A1 auswerten
Worksheets("Tabelle1").Range("A1") = _
.Range("A1") & "  " & .Name
Exit For  'vorrangiger Aussprung
End If
End With
Next j
End Sub
'auflisten über den Worksheets Namen
Sub Tabelle_A1_auflisten_über_BlattName()
For j = 1 To 4    'Schleife 1-4  über Choose
Blatt = Application.Choose(j, "Auto", "Bus", "Fahrrad", "Flugzeug")
With Worksheets(Blatt)
If Worksheets(Blatt).Range("A1") <> "" Then
Worksheets("Tabelle1").Range("A1") = _
.Range("A1") & "  " & Blatt
Exit For
End If
End With
Next j
End Sub
Sub Index_mit_MsgBoxprüfen()
For j = 1 To Worksheets.Count
MsgBox Worksheets(j).Name
Next j
End Sub

Anzeige
AW: Suchen und Ersetzen in Formel
26.04.2016 15:24:21
Piet
Nachtrag:
.Range("A1") & " " & .Name/Blatt
in meinem Beispiel habe ich den Blatt Namen hinten angehaengt,
damit man weiss aus welcher Tabelle diese Daten stammen.
Wenn das unerheblich ist kann man es so schreiben:
Worksheets("Tabelle1").Range("A1") = .Range("A1")

AW: Suchen und Ersetzen in Formel
26.04.2016 17:15:40
Reinhard
Hallo Piet,
vielen Dank für die Ideen - ist aber nicht genau was ich brauche. Vermutlich habe ich das Problem auch nicht gut genug beschrieben. Die hochgeladene Beispieldatei ist ja stark vereinfacht, in Wirklichkeit hat sie ca. 500 Tabellenblätter. Der Aufbau der Arbeitsmappe und die Funktion der Arbeitsmappe ist folgendermaßen:
Tabellenblatt1 ist eine Art Maske/Vorlage in welche zunächst bestimmte Inhalte aus Tabellenblatt2 (im Beispiel "Auto" und ZelleA1) eingelesen werden. Sollte eine einzulesende Zelle in Tabellenblatt2 leer sein, so wird anschließend in Tabellenblatt3 ("Bus") in der entsprechenden Zelle nachgesehen. Habe dazu in Tabellenblatt 1 in A1 eingegeben:
=WENN(Auto!A1>0;Auto!A1;Bus!A1)
Das funktioniert im Original auch, anschließend wird das Tabellenblatt 1 unter einem neuen Namen am Ende der Arbeitsmappe abgespeichert.
Dann springt das Programm zurück zum Tabellenblatt 1.
Jetzt sollen die nächsten beiden Datenblätter miteinander verglichen werden (im Beispiel "Fahrrad" und "Flugzeug") usw.
Ich hatte ursprünglich versucht, dass die vorher bearbeiteten Tabellenblätter 2 und 3 einfach gelöscht werden und dann einfach die nächsten beiden an der Reihe sind. Das funktioniert aber nicht, da - sobald ich die Tabellenblätter 2 "Auto" und 3 "Bus" lösche, das Tabellenblatt 1 eine Fehlermeldung #Bezug bringt...
Hoffe, dass das verständlich ist...
Beste Grüße
Reinhard

Anzeige
AW: Suchen und Ersetzen in Formel
27.04.2016 13:19:58
Piet
Hallo Reinhard,
ich habe einiges verstanden, teilweise aber auch nicht. Gehen wir es gemeinsam durch.
Zunaechst habe ich begriffen das es sich um 500 Tabellen handelt, die bearbeitet werden.
Ich habe auch das Problem mit dem Bezug verstanden. Das ist bei Formeln völlig normal
Unklar ist mir aber das Ausmass der gesamten Arbeit?? Das laesst sich mit VBA evtl.
anders lösen, dazu muss ich die Aufgabe aber erst einmal insgesamt verstehen!!
Was mir noch unklar ist, Warum schaue ich bei 2 Tabellen auf A1 und lösche sie dann??
Und in welchen Namen soll Tabelle1 umbenannt werden? Wozu dient das ganze??
Wass für mich schwer vorstellbar ist, das ich 500 Tabellen habe die nur in A1 einen Wert
haben, in denen aber sonst keine Daten stehen. Sonst könnte man sie nicht einfach löschen.
Dieser Teil liegt für mich ausserhalb meiner normalen Excel Praxis, wo es viele Spalten und
Zeilen mit Daten gibt. Da habe ich Probleme mit meinem gewohnten Excel Denken.
Was ist anschliessend mit den reduzierten 250 Tabellen? Was geschieht mit diesen Daten??
Da habe ich im Augenblick Null Durchblick über das gesamte System, und wozu es dient.
Über Programmieren können wir in Ruhe reden, aber zuerst müsste ich den Sinn verstehen.
Auf Grund meiner langen Praxis gibt es da vielleicht andere Lösungen??
Was geschieht anschliessend mit den Daten in den 250 neu erstellten Tabellen?
Theoretisch könnte man auch eine Übersicht Tabelle nehmen und alle 500 Tabellen
mit Namen und Werten in A1 untereinander auflisten.
Ich muss nur erst mal einen klaren Kopf in die Aufgabe bekommen.
mfg Piet

Anzeige
AW: Suchen und Ersetzen in Formel
27.04.2016 14:38:37
Reinhard
Hallo Piet,
tut mir leid, wenn meine Erklärungen suboptimal sind - werde versuchen die Aufgabe besser zu erläutern. Falls Du dabei auf einen komplett neuen Lösungsansatz kommst wäre das kein Problem (und würde mich auch nicht wundern, denn ich habe halt mit meinen bescheidenen Kenntnissen solange herumgewurschtelt, bis ich stecken geblieben bin. Möglicherweise war der Anfang schon Mist...)
Ausgangslage: Es gibt eine Arbeitsmappe "Verwaltung" mit ca. 250 Tabellenblättern, jede einem Namen zugeordnet. Regelmäßig wird von dieser Mappe eine Sicherungskopie erstellt und in einen anderen Ordner verschoben. Diesmal wurde aber das Verschieben nicht durchgeführt und es wurde teilweise in der neuen Mappe und teilweise in der alten Mappe weitergearbeitet. Jetzt müssen die beiden Mappen halt verglichen werden und die Daten irgendwie zusammengeführt werden.
Beide Mappen sind also vom Grundaufbau identisch: gleiche Anzahl/Benennung/Reihenfolge der Tabellenblätter. Es gibt halt nun manchmal Eintragungen, welche in beiden Blättern vorkommen, aber auch Eintragungen, welche nur in der "alten" oder "neuen" Vorkommen. Diese "isolierten" Eintragungen sollen zusammengeführt werden.
In jedem Tabellenblatt müssen ca. 300 verschiedene Felder ausgelesen werden; das mit Feld A1 sollte nur zur Vereinfachung dienen.
Ich bin halt bislang so vorgegangen, dass ich die Tabellenblätter aus der "alten" Mappe (Sicherungskopie) in die neue/aktuelle Mappe kopiert habe. Anschließend habe ich sie alphabetisch sortieren lassen (daher die Reihenfolge "Müller" und dann "Müller (2)"). Jetzt habe ich als aller erstes Tabellenblatt quasi ein leeres Formular eingefügt und in die Felder, in die Daten aus den Tabellenblättern "Müller"/"Müller (2)" eingelesen werden sollen, meine Formel geschrieben =WENN(Müller!... usw. Anschließend - aber jetzt wird es wirklich 100% amateurhaft - wurde dieses erste Tabellenblatt mit neuem Namen (hier habe ich einfach noch den Vornamen einfügen lassen) z.B. als "Müller Michael" ans Ende der Mappe einfügen lassen. Das anschießende Löschen der beiden Tabellenblätter "Müller" und "Müller (2)" war nur gedacht, weil ich mich irgendwie dahin retten wollte, dass immer das aktuell 2. und 3. Tabellenblatt in der Mappe in das "Leerformular" (Tabellenblatt 1) eingelesen werden sollen.
Hier gibt es sicher eine VIEL bessere Lösung - bei meinen Kenntnissen gilt aber leider 1/2-Wissen mal 1/2-Wissen gibt 1/4-Wissen
Bin für jede Hilfe/Neuansatz sehr dankbar!
Reinhard

Anzeige
AW: Identisch mit clever-excel???
27.04.2016 15:33:12
Fennek
Hallo,
Sheets mit 'Müller' und 'Müller(2)' zu benennen ist vermutlich nicht allzu häufig. Kann es sein, dass eine Kollegin die gleiche Frage bei 'clever-excel' gestellt hat?
Mfg

AW: Identisch mit clever-excel???
27.04.2016 16:33:02
Reinhard
Möglich - sind schon einige Leute in der Abteilung. Chef war "not amused" wegen des Problems und nachdem nicht klar ist, wer einen Fehler gemacht hat, zappeln wir jetzt alle herum und versuchen eine Lösung zu finden...
Reinhard
P.S.: Falls das mit "Müller" und "Müller (2)" ein Problem ist: Man könnte die Kopien ("... (2)") auch anders benennen, da jedes Tabellenblatt auch eine eindeutige Kundennummer hat

Anzeige
AW: Identisch mit clever-excel???
28.04.2016 14:35:54
Piet
Hallo Reinhard
beim durchlesen deiner Antwort fiel mir ein Thread ein mit gleichem Problem.
Dort liegt bereits eine fertige Makrolösung von mir vor. Ich bitte dich höflich
dir einmal diese Aufgabe mit Beispieldateien und meiner Lösung dazu anzusehen.
Dort ging es "nur" um 12o Tabellen, aber 120 oder 500, das ist mir vçllig wurscht!
Wenn man diese Arbeit auf dein Problem ummodeln kann waere es eine Erleichterung.
Dann brauche ich das Rat nicht neu zu erfinden. Diese Makros laufen ja bereits.
Ich denke es ist einfacher die Grundidee auf dein Problem abzuaendern.
mfg Piet
Thread hier im Forum:
Arbeitsmappen vergleichen und zusammenführen - Reinhard 23.04.2016 10:46:48
https://www.herber.de/bbs/user/105161.xlsx  - (2 Beispieldateien)
https://www.herber.de/bbs/user/105162.xlsx  - (fast identisch, mit Differenzen)
2. Lösung von mir
https://www.herber.de/bbs/user/105185.xls 

Anzeige
AW: Suchen und Ersetzen in Formel
28.04.2016 14:58:28
Piet
Nachtrag:
ich weiss nicht ob es Euch auffaellt, meine Lösung kopiert auf Wunsch gefundene
Differenz Daten aus der Mappe 2 per Button in die Mappe 1 als "Master Datei".
Das muss man am Anfang sorfaeltig prüfen, den Makros könnten Fehler machen.
Diese Möglichkeit, Daten per Button zu korrigieren, dürfte bei 500 Tabellen sicher
ein entscheidender Vorteil für eure Arbeit sein.
Sollte euch meine Lösung gefallen waere es gut wenigstens 1-2 Beispiel Tabellen zu haben
aus denen ich den Adressbereich ersehen kann. Wieviele Spalten und Zeilen es bei Euchsind.
Ohne diese Informationen kann ich kein vernünftiges Makro entwickeln/aendern.
Wie man in meiner Lösung sieht notiere ich mir auch die Adresse wo Formeln stehen.
Es waere fatal eine Formel durch einen simplen Wert zu überschreiben.
Ich sollte also auch wissen, oder besser am Beispiel sehen, ob und wo ihr mit Formeln arbeitet.
Schaut euch meine Arbeit erst einmal in Ruhe an
bis dann ... mfg Piet

Anzeige
AW: Suchen und Ersetzen in Formel
29.04.2016 12:15:47
Reinhard
Hallo Piet,
vielen Dank für die Hinweise - soweit ich es mitbekommen habe, ist das Problem inzwischen gelöst worden.
Vielen Dank für alle Hilfe!!!
Reinhard

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige