Microsoft Excel

Herbers Excel/VBA-Archiv

Namensbereich durch anderen in Formel ersetz

Betrifft: Namensbereich durch anderen in Formel ersetz von: No
Geschrieben am: 10.10.2014 22:11:13

Hallo zusammen,
in der Datei möchte ich die Inhalte der verschiedenen Worksheets auf dem ersten Worksheet darstellen, so dass das erste Sheet als "Arbeitssheet" und der Rest nur als Datenbank dient.
Die Darstellung erfolgt aktuell über bereich.verschieben mit vergleich für die korrekte Zeile und Spalte
Sowohl der Bezug in bereich.verschieben als auch die Suchmatrizen sind durch Namensberiche gegeben.
Nun zur Problematik
Nennen wir die "Daten-Worksheets" mal ws1, ws2 und ws3 sowie das Ausgabe-Sheet wsa
Wenn ich nun im wsa zwischen ws1 und ws2 wechseln möchte, muss ich den Bezug für bereich.verschieben als auch die Suchmatrizen ersetzen. mit strg+g kein Problem, aber ich hätte gerne eine vba-Lösung
replace geht nicht
auch bei

Dim ersatz As String
ws2 = Cells(1, 1).Value 'hier steht der Namensbereich

Cells.Replace What:=";*ws1", Replacement:=ws2, LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

tut sich zu meinem Erschrecken gar nichts.

Ich weiss leider nicht mehr weiter. Danke für die Hilfe

  

Betrifft: AW: Namensbereich durch anderen in Formel ersetz von: Ewald
Geschrieben am: 11.10.2014 01:03:57

Hallo,

besser wäre nur einen Names zu verwenden und diesen dann jeweils mit neuem Refers To zu versehen.

Allerdings kann es Probleme geben wenn nur Refers To geändert wird, sauberer ist es Names zu löschen und dann neu erstellen.

ein Beispiel mit Names "PUR" und normaler Bereichangabe

Rangename("PUR").Delete
Select Case ActiveSheet.Cells(1, 1).Value
Case ws1
   If Not Rangename("PUR") Then
      ActiveWorkbook.Names.Add _
        Name:="PUR", _
        RefersTo:="=ws1!$G$2:$G$101"
   End If
Case ws2
  If Not Rangename("PUR") Then
      ActiveWorkbook.Names.Add _
        Name:="PUR", _
        RefersTo:="=ws2!$G$2:$G$101"
   End If
Case ws3
  If Not Rangename("PUR") Then
      ActiveWorkbook.Names.Add _
        Name:="PUR", _
        RefersTo:="=ws3!$G$2:$G$101"
   End If
End Select
die hier gezeigte Standardzuweisung ersetzt du dann durch deine Bereich verschieben formel

andere Formeln die jetzt Names "PUR" benutzen, werden nicht geändert.

Gruß Ewald


  

Betrifft: AW: Namensbereich durch anderen in Formel ersetz von: No
Geschrieben am: 11.10.2014 11:55:48

Besten Dank. Namensbereiche löschen und neu anlegen sollte funktionieren.


 

Beiträge aus den Excel-Beispielen zum Thema "Namensbereich durch anderen in Formel ersetz"