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

Modificar una celda en Excel con macro

Estas en el tema de Modificar una celda en Excel con macro en el foro de Visual Basic clásico en Foros del Web. Estimados, a ver si me pueden ayudar, ya q yo algo se de programacion, pero en Visual Basic no me manebjo para nada !! Resulta ...
  #1 (permalink)  
Antiguo 06/06/2008, 11:01
Avatar de Reznorcito  
Fecha de Ingreso: mayo-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Modificar una celda en Excel con macro

Estimados, a ver si me pueden ayudar, ya q yo algo se de programacion, pero en Visual Basic no me manebjo para nada !!

Resulta que tengo una planilla de Excel con varios campos, y una columna es con las respecivas fechas. El problema es q esas fechas estan con el formato del tipo "dd-mm-yyyy". Yo necesito hacer una macro q me lea toda la columna (o sea todos los datos ingresados) y q ese campo fecha me lo modifique al formato tipo "yyyy-mm-dd". OJO, que no me sirve simplemente cambiarle el formato a las celdas, sino q necesito q el texto de la celda se modifique. De alguna manera tengo q leer el String de la celda y cambiar los caracteres de orden... pero como se hace eso en VB?? ni idea !! jajaja..

Alguna ayudita please??

SAlu2!!
  #2 (permalink)  
Antiguo 06/06/2008, 11:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Modificar una celda en Excel con macro

Cita:
Iniciado por Reznorcito Ver Mensaje
Estimados, a ver si me pueden ayudar, ya q yo algo se de programacion, pero en Visual Basic no me manebjo para nada !!

Resulta que tengo una planilla de Excel con varios campos, y una columna es con las respecivas fechas. El problema es q esas fechas estan con el formato del tipo "dd-mm-yyyy". Yo necesito hacer una macro q me lea toda la columna (o sea todos los datos ingresados) y q ese campo fecha me lo modifique al formato tipo "yyyy-mm-dd". OJO, que no me sirve simplemente cambiarle el formato a las celdas, sino q necesito q el texto de la celda se modifique. De alguna manera tengo q leer el String de la celda y cambiar los caracteres de orden... pero como se hace eso en VB?? ni idea !! jajaja..

Alguna ayudita please??

SAlu2!!
Debes hacer un bucle For que recorra todos los campos y cambiarlo con Format...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 06/06/2008, 13:03
Avatar de Reznorcito  
Fecha de Ingreso: mayo-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Modificar una celda en Excel con macro

Cita:
Iniciado por David el Grande Ver Mensaje
Debes hacer un bucle For que recorra todos los campos y cambiarlo con Format...
Es q eso nome sirve, pq si le cambio el formato, el texto de la celda es el mismo de siempre. Y yo esa celda despues la exporto a MySQL, y por eso es q necesito q la fecha este escrita yyyy-mm-dd ..

Yo se lo q quiero hacer, pero en pseudo-codigo ya q no se nada de VB. Lo voi a escribir a ver si alguien me lo puede "traducir" a VB (suponiendo q las fechas parten de A1 hacia abajo):

Código:
while ( hayan datos ingresados)
{
  leer activeCell;
  variable = activeCell; //guarda el string actual en "variable"
  crear string temporal; //crea string del mismo tamaño q "variable", y lo llamamos "temporal"
  temporal[en la posicion 1] = variable[en la posicion 7]
 .... // de esa forma se sigue copiando de la manera q quiero los string para ordenarlo correctamente // ...
  activeCell = temporal // le devuelvo el valor de la cadena ya ordenada a la celda en cuestion
  avanza una celda hacia abajo;
  
}

OK.. ESO es mas menos lo q necesito.. como ven esta en muy seudo-codigo.. asi que a ver si alguien me puede ayduar a hacer eso PLESASEEEE!!!


SAlu2!!
  #4 (permalink)  
Antiguo 06/06/2008, 13:12
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Modificar una celda en Excel con macro

Con Format no vas a cambiar el formato de la celda, vas a cambiar el formato de lo que está escrito en la celda. Algo así:
Código:
 
Sub ChangeCells(Column As Integer, First As Integer, Last As Integer)
Dim Looping As Integer
Dim Value As String
For Looping = First To Last
    Value = Cells(Looping, Column)
    Cells(Looping, Column).Value = Format(CDate(Value), "yyyy-mm-dd")
Next Looping
End Sub
P.S.: Las celdas deben estar en formato texto...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 06/06/2008, 15:03
Avatar de Reznorcito  
Fecha de Ingreso: mayo-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Modificar una celda en Excel con macro

Mmm.. sorry pero como dije al principio mi nulo conocimiento de VB me juega encontra como para comprender tu respuesta

Igual copie.pegue eso mismo en una macro y no me transformo como yo queria...
  #6 (permalink)  
Antiguo 06/06/2008, 15:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Modificar una celda en Excel con macro

Cita:
Iniciado por Reznorcito Ver Mensaje
Mmm.. sorry pero como dije al principio mi nulo conocimiento de VB me juega encontra como para comprender tu respuesta

Igual copie.pegue eso mismo en una macro y no me transformo como yo queria...
Debes llamarla usando los parámetros.
Por ejemplo:
Código:
ChangeCells 5, 1, 10
Cambiará la columna "E"(5) desde la fila 1 hasta la fila 10...
Saludos
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 06/06/2008, 17:52
Avatar de Reznorcito  
Fecha de Ingreso: mayo-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Modificar una celda en Excel con macro

Casi q me da verguenza preguntarlo.. pero y como se llama a la funcion??

Sorry amigo.. es mi primer macro y primer trabajo con Visual Basic...
  #8 (permalink)  
Antiguo 10/06/2008, 08:01
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Modificar una celda en Excel con macro

Cita:
Iniciado por Reznorcito Ver Mensaje
Casi q me da verguenza preguntarlo.. pero y como se llama a la funcion??

Sorry amigo.. es mi primer macro y primer trabajo con Visual Basic...
Así como te expliqué en el otro mensaje:
Código:
ChangeCells 5, 1, 10
Puedes colocarlo donde quieres que se ejecute. Por ejemplo, en el evento click de un botón:
Código:
 
Private Sub CommandButton1_Click()
ChangeCells 5, 1, 10
End Sub
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 12/06/2008, 10:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Modificar una celda en Excel con macro

¿Has logrado resolver el problema?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 31/07/2008, 10:35
 
Fecha de Ingreso: julio-2008
Mensajes: 1
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Modificar una celda en Excel con macro

selecciona el rango que contiene las fechas (sabes hacerlo?)
Ejecuta la sig macro:

Sub Macro4()

Selection.NumberFormat = "yyyy-mm-dd"
Dim cad As String
For Each a In Selection
cad = a.Text
a.ClearContents
a.NumberFormat = "@"
a.Value = cad
Next
End Sub

De nada

Última edición por yacarecito; 31/07/2008 a las 11:01 Razón: mejoré la respuesta, me había equivocado en lo que pedían
  #11 (permalink)  
Antiguo 08/08/2008, 17:16
Avatar de Reznorcito  
Fecha de Ingreso: mayo-2008
Mensajes: 30
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Modificar una celda en Excel con macro

Muchas gracias.

Con sus ayudas logre resovler mi problema (sorry la demora del agradecimiento, estaba sin internet.. jeje)}


Salu2!!
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 16:09.