Foros del Web » Soporte técnico » Ofimática »

VBA Excel y crear hojas de calculo

Estas en el tema de VBA Excel y crear hojas de calculo en el foro de Ofimática en Foros del Web. Tengo un problema con un script, en el cual, entre otras cosas, quiero ver si existe una hoja de cálculo que se llame como el ...
  #1 (permalink)  
Antiguo 25/03/2010, 15:17
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 16 años, 2 meses
Puntos: 1
VBA Excel y crear hojas de calculo

Tengo un problema con un script, en el cual, entre otras cosas, quiero ver si existe una hoja de cálculo que se llame como el valor que toma mi variable (expediente), que puede tomar varios valores. Si no hay una hoja que se llame igual, quiero que cree una hoja nueva y que se llame como el valor de la variable expediente.

He probado con esta subrutina, pero no me funciona bien, porque me crea muchas hojas.

Alguien me podría ayudar?

Gracias


Sub Crearhojas()
Dim WS_Count As Integer

Dim I As Integer
Dim expediente As String
expediente = "Hoja_3"

WS_Count = ActiveWorkbook.Worksheets.Count

For I = 1 To WS_Count

If expediente = ActiveWorkbook.Worksheets(I).Name Then
MsgBox ActiveWorkbook.Worksheets(I).Name

Else
Set NewSheet = Worksheets.Add
NewSheet.Name = "expediente_2"
End If
Next I
End Sub
__________________
Genética animal y veterinaria
  #2 (permalink)  
Antiguo 26/03/2010, 02:26
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 21 años
Puntos: 144
Respuesta: VBA Excel y crear hojas de calculo

Prueba algo con esto. El expediente lo pasamos por un inputbox, aunque puedes tomarlo de cualquier otro sitio:

Código:
Sub Nuevahoja()
'si hay errores, que continúe
On Error Resume Next
'preguntamos cual es el expediente
hoja_de_calculo = InputBox("Introduce el expediente")
'eliminamos los caracteres raros
hoja_de_calculo = Replace(hoja_de_calculo, ":", "")
hoja_de_calculo = Replace(hoja_de_calculo, "/", "")
hoja_de_calculo = Replace(hoja_de_calculo, "\", "")
hoja_de_calculo = Replace(hoja_de_calculo, "?", "")
hoja_de_calculo = Replace(hoja_de_calculo, "*", "")
hoja_de_calculo = Replace(hoja_de_calculo, "[", "")
hoja_de_calculo = Replace(hoja_de_calculo, "]", "")
'seleccionamos la hoja
Sheets(hoja_de_calculo).Select
'si no existe esa hoja, la creamos
If ActiveSheet.Name <> hoja_de_calculo And hoja_de_calculo <> "" Then
    Sheets.Add
    ActiveSheet.Name = hoja_de_calculo
End If
End Sub
  #3 (permalink)  
Antiguo 26/03/2010, 11:54
 
Fecha de Ingreso: septiembre-2008
Mensajes: 113
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: VBA Excel y crear hojas de calculo

Me ha valido tu respuesta. Muchas gracias.

Ahora me queda otro asunto mas dificil. Desde mi hoja "resultados", donde en cada fila tengo una celda con el nombre del expediente (se puede repetir) quiero que busque los registros de los expediente y los coloque en cada una de sus hojas que ha creado... Es como que quiero clasificar los datos, colocandolos por expedientes uno en cada hoja.

Gracias
__________________
Genética animal y veterinaria
  #4 (permalink)  
Antiguo 26/03/2010, 12:48
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 21 años
Puntos: 144
Respuesta: VBA Excel y crear hojas de calculo

Esa misma pregunta la hizo hace 3 días uno en mi blog. Léete el comentario del día 23 y 24 de marzo, y las respuestas que le doy: http://hojas-de-calculo-en-excel.blo...-del-blog.html

Etiquetas: calculo, excel, hojas, vba
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 04:08.