Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Problem "#Bezug!"
26.05.2008 11:39:43
M
Hallo Forumsgemeinschaft,
wieder einmal plagt mich ein Problem bei der Erstellung meines Exceltools.
Nachdem ich es nun über ein Makro hinbekommen habe, dass automatisch tabellenblätter erzeugt und gelöscht werden, habe ich nun das folgende Problem:
- Es können/sollen maximal 10 Tabellenblätter erzeugt werden (das funktioniert soweit)
- Ich habe mir ein Auswertungstabellenblatt angelegt, in dem vorgesehen ist, dass Werte aus diesen 10 Tabellenblättern über eine Wennfunktion (es ist eine Prüfung der Werte notwendig) erfolgt.
- Wenn ich nun in der Auswertungstabelle eine Verknüpfung zu z.B. Tabellenblatt 8 erstelle, dann funktioniert die Übernahme der Werte(sofern auch tatsächlich 8 Tabellenblätter erzeugt wurden). Lasse ich jetzt allerdings nur 7 Tabellenblätter erzeugen kommt der Fehler "#Bezug!" für die Werte in den Tabellenblättern 8 bis 10. Ich möchte aber im Falle, dass nicht alle 10 Tabelleblätter erzeugt wurden, das für die nicht erzeugten Tabellenblätter in der Auswertungstabelle der Wert 0 steht und falls dann doch alle Tabellenblätter erzeugt werden, dass auch die entsprechenden Werte übernommen werden. Das funktioniert aber nicht. Selbst wenn ich in der Auswertungstabelle auf alle 10 Tabellenblätter verweise, kommt es im falle dass Tabellenblätter gelöscht werden und zu einem späteren Zeitpunkt wieder erzeugt werden, stets zu dem "Ergebnis": "#Bezug!"- was ein unbefriedigender Zustand ist. Hat jemand schon mal mit einem ähnlichen Problem zu tun gehabt?
Ich würde mich über Antworten sehr freuen.
Viele Grüße
Marc

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
=Wenn(istfehler('Deine Formel');0;'Deine Formel')
26.05.2008 11:58:00
David
... wäre die Lösung als normale Formel. Mir ist nicht ganz klar geworden, ob du das als VBA oder Formel brauchst.
Gruß
David

AW: =Wenn(istfehler('Deine Formel');0;'Deine Forme
26.05.2008 12:01:00
Renee
Hi David,
Dein Vorschlag funktioniert nicht, wenn Tabellenblätter gelöscht werden, werden die Bezüge durch #Bezug!ersetz. Verhindern kannst du das nur durch INDIREKT... (s.unten)...oder eben durch VBA (korrigieren der Formeln oder ersetzen durch 0-Werte).
GreetZ Renée

AW: Problem "#Bezug!"
26.05.2008 11:59:00
Renee
Hi Marc,
Excel gut?
Arbeite mit Formeln des Typs:

=WENN(ISTFEHLER(INDIREKT("Tabelle2!A10"));0;INDIREKT("Tabelle2!A10"))


GreetZ Renée

Anzeige
AW: Problem "#Bezug!"
26.05.2008 12:36:00
M
Hey David, Hey Renée,
danke für die Hinweise.
Die idee mit wenn und indirekt hatte ich auch - nur leider ist da das Problem, dass der den Wert nicht auf 0 setzt, wenn das Tabellenblatt gelöscht wird - deswegen scheidet auch diese variante aus. Wie könnte das als VBA aussehen - oder habt ihr noch ne andere Idee wie man es vllt. als Excelformel besser lösen kann (wäre mir lieber, wenn ich hierfür ne Excelformel verwenden könnte)
Danke und viele Grüße
Marc

AW: Problem "#Bezug!"
26.05.2008 12:40:00
M
... ah, da fällt mir grad noch was auf, wenn ich das Tabellenblatt lösche und dann wieder erstelle, dann bezieht der sich auch nicht auf das wieder erstellte Tabellenblatt ...
schwierig, schwierig

Anzeige
Warum denn auch?! Die Verbindung ist ja...
26.05.2008 12:46:00
Luc:-?
...zwischenzeitig verloren gegangen und nicht wieder neu erstellt worden!
Gruß Luc :-?

Problem mit Problem...
26.05.2008 13:03:00
Renee
Hi Marc,
dass der den Wert nicht auf 0 setzt, wenn das Tabellenblatt gelöscht wird
Wer ist der? und wieso funktioniert das bei mir?
lösche und dann wieder erstelle, dann bezieht der sich auch nicht auf das wieder erstellte Tabellenblatt ... wenn die Namen des Tabelleblatts in der INDIREKT-Formel richtig sind, funktioniert auch das!
GreetZ Renée

AW: Problem mit Problem...
26.05.2008 16:42:45
M
hi zusammen,
jetzt funktionert das zwar alles wunderbar, allerdings stürzt excel jetzt jedes mal ab, wenn ich tabellenblätter lösche --- alles ziemlich ungünstig :( - woran kann das liegen?
Grüße,
marc

Anzeige
AW: Problem mit Problem...
26.05.2008 16:55:00
Renee
Hi Marc,
Wir können deinen Code nicht sehen, du schon!
Für weitere Auskünfte bitte hier klicken
GreetZ Renée

AW: Problem mit Problem...
26.05.2008 17:27:18
M
hier ist der code:
=WENN(WENN(ISTFEHLER(INDIREKT("Unit?9!B15"));0;INDIREKT("Unit?9!B15"))="MR";1; WENN(WENN(ISTFEHLER(INDIREKT("Unit?9!B15"));0;INDIREKT("Unit?9!B15"))="PR/MR";1; WENN(WENN(ISTFEHLER(INDIREKT("Unit?9!B15"));0;INDIREKT("Unit?9!B15"))="SR/MR";1; WENN(WENN(ISTFEHLER(INDIREKT("Unit?9!B15"));0;INDIREKT("Unit?9!B15"))="PR/SR/MR";1;0))))
grüße
Marc

VBA Code nicht Formeln!
26.05.2008 17:29:00
Renee

Anzeige
AW: Problem mit Problem...
26.05.2008 18:26:00
M

Private Function MakeWorksheets(name As String, anzahl As Integer, times() As Date) As Integer
Dim ws1 As Worksheet
Dim ws As Worksheet
Dim wslast As Worksheet
Dim nr As Integer
On Error Resume Next
Set ws1 = ThisWorkbook.Worksheets(name & " 1")
If ws1 Is Nothing Then
MakeWorksheets = ERR_NOFIRSTWORKSHEET
Else
If anzahl > 0 Then MakeWorksheets = MakeTimeTable(ws1, times)
Set wslast = ws1
nr = 2
Do
Set ws = Nothing
Set ws = ThisWorkbook.Worksheets(name & " " & nr)
If ws Is Nothing Then
If nr  anzahl Then 'löschen
ThisWorkbook.Application.DisplayAlerts = False
ws.Delete
ThisWorkbook.Application.DisplayAlerts = True
End If
End If
If nr  0 Then Exit Do
Set wslast = ws
nr = nr + 1
Loop While Not ws Is Nothing
If nr 


Anzeige
AW: Problem mit Problem...
27.05.2008 10:58:00
Renee
Hi Marc,
jetzt funktionert das zwar alles wunderbar, allerdings stürzt excel jetzt jedes mal ab, wenn ich tabellenblätter lösche --- alles ziemlich ungünstig :( - woran kann das liegen?
Ich betrachte deinen Code als ziemlich ungünstig:
- Der Code ist für mich nicht verständlich geschrieben und v.a. nicht dokumentiert!
- Was macht z.B. MakeTimeTable? Wieso ist MakeWorksheets eine Function?
- Wieso du etwa ein Blatt addierst, und erst nachher feststellt, dass es zuviel ist?
- Wieso du mit Error Resume Next arbeitest und nur bestimmte (von dir erwartete) Fehler abfängst?
- Unnötige Befehle (v.a. Set Anweisungen) gebrauchst?
GreetZ Renée
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige