Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

AYUDA: modificar un string de excel

Estas en el tema de AYUDA: modificar un string de excel en el foro de Visual Basic clásico en Foros del Web. Estimados, recurro a sus conocimientso una vez mas. Resulta que tengo un Excel con miles de campos numericos donde tengo q agregarles a cada uno ...
  #1 (permalink)  
Antiguo 08/08/2008, 17:21
Avatar de Reznorcito  
Fecha de Ingreso: mayo-2008
Mensajes: 30
Antigüedad: 16 años
Puntos: 0
AYUDA: modificar un string de excel

Estimados, recurro a sus conocimientso una vez mas.

Resulta que tengo un Excel con miles de campos numericos donde tengo q agregarles a cada uno un "guión" en el medio.

Todos los números son del tipo:

123 4567 8910

y necesito q esa misma celda quede de esta forma:

123-45678910

Entonces tengo que agregarle un guión y al mismo tiempo borrarle un espacio que tiene mas adelante (pq si fuese un solo espacio, simplemente reemplazo lso espacios por guiones, pero no es tan simple)

Estoy atento a recomendaciones.. ya q no tengo idea de Visual Basic (si fuese en C o Php facilmente podria hacerlo.. jejee)

Salu2!!!
  #2 (permalink)  
Antiguo 08/08/2008, 17:45
 
Fecha de Ingreso: agosto-2008
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: AYUDA: modificar un string de excel

1.- Creas una nueva macro y escribes la siguiente función

Sub Macro1()
For i = 1 To 2
Var = Trim("A" & i)
Range(Var) = Replace(Range(Var), " ", "-", 1)
Range(Var) = f
Next i

End Sub

2.- Cambias "A" por el nombre de la fila donde están los campos que deseas cambiar, y cambias en "FOR I=1 TO 2" cambias el 2 por el número de columnas.

3.- Ejecutas la macro

Saludos.
  #3 (permalink)  
Antiguo 08/08/2008, 18:08
Avatar de Reznorcito  
Fecha de Ingreso: mayo-2008
Mensajes: 30
Antigüedad: 16 años
Puntos: 0
Respuesta: AYUDA: modificar un string de excel

Sabes que lo probe y me sale error 1004 de tiempo de ejecucion. "Error en el metodo 'Range' de objeto '_Global'"

Y yo lo deje asi:

Código:
Sub Macro1()
For i = 2 To 20900
Var = Trim(3 & i)
Range(Var) = Replace(Range(Var), " ", "-", 1)  <------- en esta linea me marca el error
Range(Var) = f
Next i

End Sub
q sera?
  #4 (permalink)  
Antiguo 09/08/2008, 02:47
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: AYUDA: modificar un string de excel

Cita:
Iniciado por Reznorcito Ver Mensaje
Estimados, recurro a sus conocimientso una vez mas.

Resulta que tengo un Excel con miles de campos numericos donde tengo q agregarles a cada uno un "guión" en el medio.

Todos los números son del tipo:

123 4567 8910

y necesito q esa misma celda quede de esta forma:

123-45678910

Entonces tengo que agregarle un guión y al mismo tiempo borrarle un espacio que tiene mas adelante (pq si fuese un solo espacio, simplemente reemplazo lso espacios por guiones, pero no es tan simple)

Estoy atento a recomendaciones.. ya q no tengo idea de Visual Basic (si fuese en C o Php facilmente podria hacerlo.. jejee)

Salu2!!!
Hola,
en VB6 lo podrías hacer de esta forma (suponemos que la columna a modificar es la 3, la primera fila la 2 y la última 20900 y el nombre de la hoja a modificar 'Hoja1'):

Código:
Dim miXLS As String
    Dim oExcel As Object, oWorkbook As Object
    Dim sVar As String, sCelda As String, i As Long
    
    miXLS = App.Path & "\MiExcel.xls"
    Set oExcel = CreateObject("Excel.Application")
    Set oWorkbook = oExcel.Workbooks.Open(miXLS)
    oExcel.Sheets("Hoja1").Select
    For i = 2 To 20900
        sCelda = oExcel.Cells(i, 3)
        sVar = Left(sCelda, 3) & "-" & Mid(sCelda, 5, 4) & Right(sCelda, 4)
        oExcel.Cells(i, 3).Value = sVar
    Next i
    oExcel.ActiveWorkbook.Close True  'Guarda los cambios sin preguntar
    oExcel.Quit
    Set oWorkbook = Nothing
    Set oExcel = Nothing
    MsgBox "Se modificaron las celdas"
Te advierto que el código es bastante lento, no sé si habrá otra forma más rapida de hacerlo.

  #5 (permalink)  
Antiguo 09/08/2008, 13:27
 
Fecha de Ingreso: agosto-2008
Mensajes: 13
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: AYUDA: modificar un string de excel

Sub Macro1()
For i = 2 To 20900
Var = Trim(3 & i)
Range(Var) = Replace(Range(Var), " ", "-", 1) <------- en esta linea me marca el error
Range(Var) = f
Next i

End Sub

Esque en Var = Trim(3 & i) Debes de poner la letra de la columna entre comillas no un 3
Por ejemplo si todos los registros están en A1, A2, A3, pondrias "A" & i, Si están en la B pondrias "B" & i, etc.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:20.