Saludos de nuevo y una cuestión.

10/12/2004 - 12:40 por Imanol | Informe spam
x-no-archive:yes

Hola. Hace tiempo que no escribía aquí. O sea que un saludo inmenso para todos.
Tengo una cuestión para no variar.
Tengo en una celda lo siguiente; =a1+pepe2 (pepex es el nombre que en su momento
le asigné a la celda correspondiente).
En otras muchas celdas tengo otros nombres como por ejemplo, pepe3, pepe4, etc.
¿ Cómo puedo hacer para cambiar ese pepex de cada una de las celdas por su
correspondiente a2, b4, g98, etc, sin tener que hacerlo a mano con cada una de
las celdas (es decir, borro pepe1 y pongo d3,etc.) ?. Lo más sencillo y cómodo
posible.
Gracias y un saludo.

Preguntas similare

Leer las respuestas

#6 Imanol
12/12/2004 - 18:04 | Informe spam
x-no-archive:yes

Hola. Dime si me equivoco.
Entro en herramientas, macros, editor de visual basic
y ahí, dentro de ver, le doy a código.
Ahí copio el que me mandas abajo, y me dice tras pulsar ctrl-f8 "error de
compilacion:error de sintaxis" y la línea que se pone azul es
Dim miLista As String
Yo creo que el problema es que no tengo nada claro donde meter
el código de abajo y necesito hacerlo pronto.
Ayuda para el tonto please.
Gracias por molestaros en contestarme.
Un saludo.


KL escribió (Sat, 11 Dec 2004 14:44:02 +0100):
Sub test1()
Dim miLista As String
Dim n As Name
Dim nn As Name
Dim Contador As Integer
Dim c As Range
Dim RespUsuario
Dim Mensaje As String

For Each n In ThisWorkbook.Names
For Each nn In ThisWorkbook.Names
If InStr(nn.Name, n.Name) > 0 And nn.Name <> n.Name Then
miLista = miLista & "[" & nn.Name & "]" & _
" contiene: " & "[" & n.Name & "]" & Chr(13)
Contador = Contador + 1 End If Next nn
Next n

If Contador > 0 Then
Mensaje = "Se han detectado las siguientes irregularidades:"
_ & Chr(13) & Chr(13) Mensaje = Mensaje &
miLista & Chr(13)
Mensaje = Mensaje & "?Quieres seguir con la presente
operacion?" _ & Chr(13) & Chr(13)
Mensaje = Mensaje & "Si decides seguir, es posible que los"
_ & Chr(13)
Mensaje = Mensaje & "nombres listados arriba se sustituyan"
_ & Chr(13) Mensaje = Mensaje &
"incorrectamente."

RespUsuario = MsgBox(Mensaje, vbYesNo + vbCritical, _
"!Nombres Duplicados Detectados!") If RespUsuario > vbNo Then Exit Sub Else
Mensaje = "No se han detectado nombres duplicados." _
& Chr(13) & Chr(13) Mensaje = Mensaje & Chr(13) & _
"?Quieres seguir con la presente operacion?"

RespUsuario = MsgBox(Mensaje, vbYesNo + vbInformation, _
"Nombres Duplicados No Detectados") If RespUsuario
= vbNo Then Exit Sub End If

For Each c In ActiveSheet.Cells. _
SpecialCells(xlCellTypeFormulas)
With ThisWorkbook
For Each n In .Names
If n.Name Like "*###" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If Next n For Each n In .Names
If n.Name Like "*##" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If Next n For Each n In .Names
If n.Name Like "*#" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If Next n End With Next c End Sub
Respuesta Responder a este mensaje
#7 KL
12/12/2004 - 18:29 | Informe spam
Imanol,

Lo estas haciendo correctamente por lo q puedo entender de tu mensaje. Lo q
creo es q al copiar (o tal vez antes) se hayan desconfigurado las lineas del
codigo. He intentado acortarlas un poquito mas y aunque ha quedado feo,
espero q no vuelva a ocurrir el error. Tambien asegurate q has copiado todo
el codigo desde la linea --Inicio Codigo-- hasta la q dice --Fin Codigo--.
Dime algo.
Saludos,
KL

'Inicio Codigo-
Sub test1()
Dim miLista As String
Dim n As Name
Dim nn As Name
Dim Contador As Integer
Dim c As Range
Dim RespUsuario
Dim Mensaje As String

For Each n In ThisWorkbook.Names
For Each nn In ThisWorkbook.Names
If InStr(nn.Name, n.Name) > 0 _
And nn.Name <> n.Name Then
miLista = miLista & "[" & nn.Name & "]" & _
" contiene: " & "[" & n.Name & "]" & Chr(13)
Contador = Contador + 1
End If
Next nn
Next n

If Contador > 0 Then
Mensaje = _
"Se han detectado las siguientes irregularidades:" _
& Chr(13) & Chr(13)
Mensaje = _
Mensaje & miLista & Chr(13)
Mensaje = _
Mensaje & "?Quieres seguir con la operacion?" _
& Chr(13) & Chr(13)
Mensaje = _
Mensaje & "Si decides seguir, es posible que los" _
& Chr(13)
Mensaje = _
Mensaje & "nombres listados arriba se sustituyan" _
& Chr(13)
Mensaje = _
Mensaje & "incorrectamente."

RespUsuario = MsgBox(Mensaje, vbYesNo + vbCritical, _
"!Nombres Duplicados Detectados!")
If RespUsuario = vbNo Then Exit Sub
Else
Mensaje = _
"No se han detectado nombres duplicados." _
& Chr(13) & Chr(13)
Mensaje = _
Mensaje & Chr(13) & _
"?Quieres seguir con la presente operacion?"

RespUsuario = MsgBox(Mensaje, vbYesNo + vbInformation, _
"Nombres Duplicados No Detectados")
If RespUsuario = vbNo Then Exit Sub
End If

For Each c In ActiveSheet.Cells. _
SpecialCells(xlCellTypeFormulas)
With ThisWorkbook
For Each n In .Names
If n.Name Like "*###" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If
Next n
For Each n In .Names
If n.Name Like "*##" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If
Next n
For Each n In .Names
If n.Name Like "*#" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If
Next n
End With
Next c
End Sub
'Fin Codigo-



"Imanol" wrote in message
news:
x-no-archive:yes

Hola. Dime si me equivoco.
Entro en herramientas, macros, editor de visual basic
y ahí, dentro de ver, le doy a código.
Ahí copio el que me mandas abajo, y me dice tras pulsar ctrl-f8 "error de
compilacion:error de sintaxis" y la línea que se pone azul es
Dim miLista As String
Yo creo que el problema es que no tengo nada claro donde meter
el código de abajo y necesito hacerlo pronto.
Ayuda para el tonto please.
Gracias por molestaros en contestarme.
Un saludo.


KL escribió (Sat, 11 Dec 2004 14:44:02 +0100):
Sub test1()
Dim miLista As String
Dim n As Name
Dim nn As Name
Dim Contador As Integer
Dim c As Range
Dim RespUsuario
Dim Mensaje As String

For Each n In ThisWorkbook.Names
For Each nn In ThisWorkbook.Names
If InStr(nn.Name, n.Name) > 0 And nn.Name <> n.Name Then
miLista = miLista & "[" & nn.Name & "]" & _
" contiene: " & "[" & n.Name & "]" & Chr(13)
Contador = Contador + 1 End If Next nn
Next n

If Contador > 0 Then
Mensaje = "Se han detectado las siguientes irregularidades:"
_ & Chr(13) & Chr(13) Mensaje = Mensaje &
miLista & Chr(13)
Mensaje = Mensaje & "?Quieres seguir con la presente
operacion?" _ & Chr(13) & Chr(13)
Mensaje = Mensaje & "Si decides seguir, es posible que los"
_ & Chr(13)
Mensaje = Mensaje & "nombres listados arriba se sustituyan"
_ & Chr(13) Mensaje = Mensaje &
"incorrectamente."

RespUsuario = MsgBox(Mensaje, vbYesNo + vbCritical, _
"!Nombres Duplicados Detectados!") If RespUsuario > vbNo Then Exit Sub Else
Mensaje = "No se han detectado nombres duplicados." _
& Chr(13) & Chr(13) Mensaje = Mensaje & Chr(13) & _
"?Quieres seguir con la presente operacion?"

RespUsuario = MsgBox(Mensaje, vbYesNo + vbInformation, _
"Nombres Duplicados No Detectados") If RespUsuario
= vbNo Then Exit Sub End If

For Each c In ActiveSheet.Cells. _
SpecialCells(xlCellTypeFormulas)
With ThisWorkbook
For Each n In .Names
If n.Name Like "*###" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If Next n For Each n In .Names
If n.Name Like "*##" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If Next n For Each n In .Names
If n.Name Like "*#" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If Next n End With Next c End Sub
Respuesta Responder a este mensaje
#8 Imanol
12/12/2004 - 23:23 | Informe spam
x-no-archive:yes

Pues ahora, me da el mismo error pero con la línea
"miLista = miLista & "[" & nn.Name & "]" & _"

Copio todo, desde '- hasta '--fin de cod
Yo me coloco en la hopja donde tengo que hacer los cambios y selecciono 10
celdas sólo (por ejemplo) y me meto en el visual basic y hago lo que te
coimenté.
Un saludo.


KL escribió (Sun, 12 Dec 2004 18:29:28 +0100):
Imanol,

Lo estas haciendo correctamente por lo q puedo entender de tu
mensaje. Lo q creo es q al copiar (o tal vez antes) se hayan
desconfigurado las lineas del codigo. He intentado acortarlas un
poquito mas y aunque ha quedado feo, espero q no vuelva a ocurrir
el error. Tambien asegurate q has copiado todo el codigo desde la
linea --Inicio Codigo-- hasta la q dice --Fin Codigo--. Dime algo.
Saludos, KL

'Inicio Codigo-
Sub test1()
Dim miLista As String
Dim n As Name
Dim nn As Name
Dim Contador As Integer
Dim c As Range
Dim RespUsuario
Dim Mensaje As String

For Each n In ThisWorkbook.Names
For Each nn In ThisWorkbook.Names
If InStr(nn.Name, n.Name) > 0 _
And nn.Name <> n.Name Then
miLista = miLista & "[" & nn.Name & "]" & _
" contiene: " & "[" & n.Name & "]" & Chr(13)
Contador = Contador + 1
End If
Next nn
Next n

If Contador > 0 Then
Mensaje = _
"Se han detectado las siguientes irregularidades:" _
& Chr(13) & Chr(13)
Mensaje = _
Mensaje & miLista & Chr(13)
Mensaje = _
Mensaje & "?Quieres seguir con la operacion?" _
& Chr(13) & Chr(13)
Mensaje = _
Mensaje & "Si decides seguir, es posible que los" _
& Chr(13)
Mensaje = _
Mensaje & "nombres listados arriba se sustituyan" _
& Chr(13)
Mensaje = _
Mensaje & "incorrectamente."

RespUsuario = MsgBox(Mensaje, vbYesNo + vbCritical, _
"!Nombres Duplicados Detectados!")
If RespUsuario = vbNo Then Exit Sub
Else
Mensaje = _
"No se han detectado nombres duplicados." _
& Chr(13) & Chr(13)
Mensaje = _
Mensaje & Chr(13) & _
"?Quieres seguir con la presente operacion?"

RespUsuario = MsgBox(Mensaje, vbYesNo + vbInformation, _
"Nombres Duplicados No Detectados")
If RespUsuario = vbNo Then Exit Sub
End If

For Each c In ActiveSheet.Cells. _
SpecialCells(xlCellTypeFormulas)
With ThisWorkbook
For Each n In .Names
If n.Name Like "*###" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If
Next n
For Each n In .Names
If n.Name Like "*##" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If
Next n
For Each n In .Names
If n.Name Like "*#" Then
c.Formula = Replace(c.Formula, n.Name, _
Right(n.RefersTo, Len(n.RefersTo) - 1))
End If
Next n
End With
Next c
End Sub
'Fin Codigo-


"Imanol" wrote in message
news:
x-no-archive:yes

Hola. Dime si me equivoco.
Entro en herramientas, macros, editor de visual basic
y ahí, dentro de ver, le doy a código.
Ahí copio el que me mandas abajo, y me dice tras pulsar ctrl-f8
"error de compilacion:error de sintaxis" y la línea que se pone
azul es Dim miLista As String
Yo creo que el problema es que no tengo nada claro donde meter el
código de abajo y necesito hacerlo pronto. Ayuda para el tonto
please. Gracias por molestaros en contestarme. Un saludo.


KL escribió (Sat, 11 Dec 2004 14:44:02 +0100):
Sub test1()
Dim miLista As String
Dim n As Name
Dim nn As Name
Dim Contador As Integer
Dim c As Range
Dim RespUsuario
Dim Mensaje As String

For Each n In ThisWorkbook.Names
For Each nn In ThisWorkbook.Names
If InStr(nn.Name, n.Name) > 0 And nn.Name <> n.Name Then miLista
= miLista & "[" & nn.Name & "]" & _ " contiene: " & "[" & n.Name
& "]" & Chr(13) Contador = Contador + 1 End If
Next nn Next n

If Contador > 0 Then
Mensaje = "Se han detectado las siguientes irregularidades:" _
& Chr(13) & Chr(13) Mensaje = Mensaje & miLista
& Chr(13)
Mensaje = Mensaje & "?Quieres seguir con la presente operacion?"
_ & Chr(13) & Chr(13)
Mensaje = Mensaje & "Si decides seguir, es posible que los" _
& Chr(13)
Mensaje = Mensaje & "nombres listados arriba se sustituyan" _
& Chr(13) Mensaje = Mensaje & "incorrectamente."

RespUsuario = MsgBox(Mensaje, vbYesNo + vbCritical, _ "!Nombres
Duplicados Detectados!") If RespUsuario = vbNo Then Exit
Sub Else
Mensaje = "No se han detectado nombres duplicados." _ & Chr(13) &
Chr(13) Mensaje = Mensaje & Chr(13) & _ "?Quieres seguir
con la presente operacion?"

RespUsuario = MsgBox(Mensaje, vbYesNo + vbInformation, _ "Nombres
Duplicados No Detectados") If RespUsuario = vbNo Then
Exit Sub End If

For Each c In ActiveSheet.Cells. _
SpecialCells(xlCellTypeFormulas)
With ThisWorkbook
For Each n In .Names
If n.Name Like "*###" Then
c.Formula = Replace(c.Formula, n.Name, _ Right(n.RefersTo,
Len(n.RefersTo) - 1)) End If Next n For
Each n In .Names If n.Name Like "*##" Then
c.Formula = Replace(c.Formula, n.Name, _ Right(n.RefersTo,
Len(n.RefersTo) - 1)) End If Next n For
Each n In .Names If n.Name Like "*#" Then
c.Formula = Replace(c.Formula, n.Name, _ Right(n.RefersTo,
Len(n.RefersTo) - 1)) End If Next n End With
Next c End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida