Eliminar links a otros libros.

20/07/2003 - 05:04 por Ricardo Lopez-Herrera | Informe spam
Necesito eliminar los links a otros libros, respetando el
resto de las formulas.

Hice un procedimiento en VBA para que busque todas las
celdas que tienen un "XLS" y las convierta en valores, lo
malo es que tiene que hacerlo varias veces.

Alguna idea??
Gracias de Antemano.

Ricardo

_______________________________________________________

Sub kill_all_links2()
Dim Counter As Integer
Application.ScreenUpdating = False
For Counter = 1 To 100
On Error Resume Next
Application.StatusBar = "Left " & 150 - Counter
Cells.Find(What:="XLS", After:=ActiveCell,
LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows,
SearchDirection:=xlNext, MatchCase:= _
False).Activate
Selection.Copy
Selection.PasteSpecial Paste:=xlValues,
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next

For Each x In ActiveSheet.Names
If x.Name <> "Print_Area" Then
x.Delete
End If
Next


Application.StatusBar = False
Application.CutCopyMode = False
End Sub
 

Leer las respuestas

#1 Héctor Miguel
20/07/2003 - 08:37 | Informe spam
Hola, Ricardo !

... eliminar los links a otros libros, respetando el resto de las formulas.
... procedimiento en VBA para que busque ... celdas que tienen un "XLS" y las convierta en valores
... lo malo es que tiene que hacerlo varias veces.



==> Adaptaste un codlgo (de algun libro o foro en ingles) "recortando" el bucle (For...Next) de 150 a 100.
Esto "hace" que se ejecute 100 veces aunque existan mas (o inclusive ninguno) vinculos en una hoja,
y ademas sera necesario ejecutarlo en cada hoja del libro.
Solo como observacion:
-o- NO todo lo que en una celda "diga" XLS es necesariamente un vinculo,
-o- ni todo nombre "necesita" ser eliminado (por "posiblemente ser" un vinculo)
-o- TODO vinculo SI "necesita" ser parte de una formula (o Nombre) y contiene los caracteres "[" y "]"
==> es mejor (y mas rapido) "descartar" todo aquello que "NO cumpla" estos "requisitos" <=
El siguiente codigo, "recorre" los nombres y las celdas CON formula de todas las hojas del libro activo y [...]
==Sub Eliminar_Vinculos()
Dim Nombre As Name, Hoja As Worksheet, Celda As Range
Application.ScreenUpdating = False
With ActiveWorkbook
For Each Nombre In .Names
If InStr(Nombre.RefersTo, "]") > 0 Then Nombre.Delete
Next
For Each Hoja In .Worksheets
With Hoja
.Activate
.Cells.SpecialCells(xlCellTypeFormulas).Select
For Each Celda In Selection
If Celda.HasFormula Then
If InStr(Celda.Formula, "]") > 0 Then Celda = Celda
End If
Next
End With
Next
End With
End Sub

Nota: Es posible que existan "otros" objetos con referencias "vinculadas" (botones, cuadros de texto, etc.)
_______
Saludos,
Héctor.
MS-MVP

Preguntas similares