externe Verknüpfungen

  • #1
F

freestyler96

Bekanntes Mitglied
Themenersteller
Dabei seit
11.01.2005
Beiträge
114
Reaktionspunkte
0
Ort
Berlin
Hallo ihr Lieben,

bis dato habe ich hier immer interessante Lösungen und Anregungen gefunden. Nun habe ich ein Problem, welches ich so behandelt, noch nicht passend ausmachen konnte.

In einer Excel-Datei mit einer Vielzahl von Registern/ Reitern sind die unterschiedlichsten Bezüge zu einer Vielzahl von weiteren Excel-Dateien. Nun möchte ich diese Verknüpfungen elegant und SCHNELL lösen und die absoluten Werte bzw. das aktuelle Ergebnis als festen/ absoluten Wert eintragen.

Leider stecke ich hier fest. Hat jemand schon eine Makro-Lösung zu diesem Thema parat?

Vielen Dank
 
  • #3
Hallo Matjes,

danke für deine Nachricht. Darüber war ich in der Tat schon gestolpert. Leider kam ich dort nicht weiter da nur die Zeichen oder Texte gesucht werden aber nicht ersetzt. Aber leider verstehe ich hier die Steuerung nicht. Wie erkläre ich, dass er nicht ersetzen sondern kopieren und den Wert einfügen soll?

z. Bsp.

dim Wert_ist as Single

Wert_ist =  activecell.value
activecell.value = wert_ist

Ginge das? Was muss ich wo abändern?

Soweit vielen Dank.

Ich hatte mich in den letzten Monaten ziemlich rar gemacht. Stress, Stress, Stress... immer das Gleiche. Ich werde mich bessern. In jedem Fall erst einmal vielen Dank für deine Impulse. Ich habe eine Menge dazu lernen können.   (~:

Freestyler96
 
  • #4
Hallo freestyler96,

versuch mal den folgenden Makro. FORMEL_ExterneVerweiseAlleEinerSeiteMarkieren stammt aus dem oben angegebenen link und ist als Function umgebaut worden (Rückgabewert: etwas gefunden).

Bitte erstmal auf einer Kopie ausprobieren und dann Rückmeldung.

Gruß Matjes :)

Code:
Option Explicit
Sub AufAllenBlaetternFormelMitExternemVerweisDurchWertErsetzen()

  Dim ws As Worksheet, b_Ersetzen As Boolean

 ->für alle Arbeitsblätter der aktiven Mappe
  For Each ws In ActiveWorkbook.Worksheets
      
    ws.Activate
    
    If FORMEL_ExterneVerweiseAlleEinerSeiteMarkieren Then
     ->Zelle mit Verweisen kopieren
      Selection.Copy
     ->Inhalte einfügen -> Werte
      Selection.PasteSpecial _
                Paste:=xlPasteValues, _
                Operation:=xlNone, _
                SkipBlanks:=False, _
                Transpose:=False
      Application.CutCopyMode = False
    End If
  Next

AUFRAEUMEN:
  Set ws = Nothing
End Sub
Private Function FORMEL_ExterneVerweiseAlleEinerSeiteMarkieren() As Boolean
   'alle Formeln des Blattes werden markiert,
   'die eine externen Verweis einhalten
'**********************************************************
 Dim r As Range, Zelle As Range, l_cnt As Long
 Dim pos1 As Long, pos2 As Long, pos3 As Long
->Formeln mit externen Verweisen suchen
 l_cnt = 0->Zaehler initialisieren
 For Each Zelle In ActiveSheet.UsedRange
   If Left(Zelle.Formula, 1) = = Then
     pos1 = InStr(1, Zelle.Formula, [)
     If (pos1 > 0) Then
       pos2 = InStr(1, Zelle.Formula, ])
       If (pos2 > 0) And (pos2 > pos1) Then
         pos1 = InStr(1, Zelle.Formula, !)
         If (pos1 > 0) And (pos1 > pos2) Then
           'Jo, ist eine Zelle mit externem Verweis
           'Muster ...[....]....!.....
           l_cnt = l_cnt + 1
           If l_cnt = 1 Then
             Set r = Zelle.Cells
           Else
             Set r = Application.Union(r, Zelle.Cells)
           End If
         End If
       End If
     End If
   End If
 Next
->gefundene Zellen markieren
 If l_cnt > 0 Then
   r.Select
   Set r = Nothing
   FORMEL_ExterneVerweiseAlleEinerSeiteMarkieren = True
 Else
   FORMEL_ExterneVerweiseAlleEinerSeiteMarkieren = False
 End If
End Function
 
  • #5
Hallo Matje,

es klappt soweit ganz gut. Er hakt jedoch, wenn er die absoluten Werte einfügen soll. Somit müsste er wohl Zelle für Zelle abarbeiten.... hmmm....

Das ist mir noch zu hoch. Ich habe es mal so probiert:

If FORMEL_ExterneVerweiseAlleEinerSeiteMarkieren Then
For Each cell In Selection
ActiveCell.Value = ActiveCell.Value
Next
End If

So schreibt er aber nur die erste Zelle um.....

gggrrrruuummmmmmeeellll
 
  • #6
Versuchs mal mit:

Code:
Dim Zelle as Range
...
For Each Zelle In Selection
...
Zelle.Value = Zelle.Value
...
next
...
Set Zelle = Nothing
Gruß Matjes :)
 
  • #7
Warum in die Ferne schweifen wenn das Gute liegt so nah.
Klappt super. Ich danke dir!

Bis zum nächsten Mal

freestyler96
 
Thema:

externe Verknüpfungen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.959
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben