Grabar libro con el nombre o valor de una celda

Solo consultas sobre macros y código VBA Excel.

Reglas del Foro
1. Antes de hacer tu pregunta intenta con el buscador de este foro (muchas preguntas ya fueron respondidas antes!)
2. Si haces una nueva pregunta, es muy recomendable que adjuntes el ejemplo Excel para poder comprenderla mejor!
3. Realiza tu pregunta de forma clara, explicando bien cada paso de lo que haces y tendrás más probabilidad de respuesta!
Compartir en:
     

Grabar libro con el nombre o valor de una celda

Notapor ferchogz2005 » 19 May 2006 11:04

Hola a todos los excelnautas.

La pregunta es si es posible que al clickear un boton me grabe el libro con el nombre que se encuentre en una celda.

Saludos

Ferchogz
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ferchogz2005
Miembro Frecuente
Miembro Frecuente
 
Registrado: 01 Sep 2005 13:33
Ubicación: Bogota

Re: Grabar libro con el nombre o valor de una celda

Notapor ST » 19 May 2006 22:26

ferchogz

algo como esto.... :arrow: :?:
No tiene los permisos requeridos para ver los archivos adjuntos a este mensaje.
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
Avatar de Usuario
ST
Miembro Frecuente
Miembro Frecuente
 
Registrado: 06 Jun 2005 17:56
Ubicación: Acapulco

Re: Grabar libro con el nombre o valor de una celda

Notapor ferchogz2005 » 23 May 2006 15:03

Es exactamente lo que necesitaba..

Mil gracias por tu colaboración....sos un genio

Nuevamente Gracias

Ferchogz
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ferchogz2005
Miembro Frecuente
Miembro Frecuente
 
Registrado: 01 Sep 2005 13:33
Ubicación: Bogota

Re: Grabar libro con el nombre o valor de una celda

Notapor KL » 23 May 2006 16:03

Abajo un codigo que hice para otra consulta que te podria dar algunas ideas sobre el tratamiento de los imprevistos:

Código: Seleccionar todo
Sub CrearArchivo()
    Dim Archivo As String, Ruta As String
    'Establecemos la ruta
    Ruta = "C:\COPIAS\"
    'Formamos el nombre del nuevo archivo
    Archivo = Left([A1], 2) & Format(Date, "yymmdd") & ".xls"
    'Comprobamos si el nuevo nombre contiene caracteres invalidos
    If Not NombreValido(Archivo) Then Exit Sub
    'Comprobamos si el disco existe
    If Not DiscoExiste(Ruta) Then Exit Sub
    'Comprobamos si la ruta existe y, si no, la creamos o cancelamos
    If Not RutaExiste(Ruta) Then Exit Sub
    'Inhabilitamos alertas para reemplazar
    'archivos existentes sin previo aviso
    Application.DisplayAlerts = False
    'Guardamos la copia
    ActiveWorkbook.SaveAs Ruta & Archivo
    'Volvemos a habilitar las alertas
    Application.DisplayAlerts = True
End Sub

Function NombreValido(Nombre As String) As Boolean
    Dim CarInvalidos As Variant, i As Long
    CarInvalidos = Array(":", "\", "/", "?", "*", "[", "]")
    For i = 0 To UBound(CarInvalidos)
        If InStr(Nombre, CarInvalidos(i)) Then
            MsgBox "El nombre """ & Nombre _
                & """ contiene caracteres invalidos: """ _
                    & CarInvalidos(i) & """."
            NombreValido = False
            Exit Function
        End If
    Next i
    NombreValido = True
End Function

Function RutaExiste(Ruta As String) As Boolean
    Dim Directorios, i As Long, x As String
    On Error Resume Next
    x = GetAttr(Ruta) And 0
    If Err.Number <> 0 Then
        Respuesta = MsgBox( _
            "La carpeta no existe. Desea crearla?", _
                vbExclamation + vbOKCancel)
        If Respuesta = vbCancel Then
            MsgBox "Se ha cancelado la operacion.", vbInformation
            Exit Function
        End If
        On Error GoTo 0
        Directorios = Split(IIf(Right(Ruta, 1) = "\", _
            Left(Ruta, Len(Ruta) - 1), Ruta), "\"): Ruta = ""
        For i = LBound(Directorios) To UBound(Directorios)
            Ruta = Ruta & Directorios(i) & "\"
            On Error Resume Next
            x = GetAttr(Ruta) And 0
            If Err.Number <> 0 Then MkDir Ruta
            On Error GoTo 0
        Next i
    End If
    RutaExiste = True
End Function

Function DiscoExiste(Ruta As String) As Boolean
    Dim fs, Disco, Discos
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set Discos = fs.Drives
    For Each Disco In Discos
        If Left(Ruta, 1) = Disco.DriveLetter Then
            DiscoExiste = True
            Exit Function
        End If
    Next Disco
    MsgBox "No existe la unidad de disco solicitada", vbCritical
End Function
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
KL
Miembro Frecuente
Miembro Frecuente
 
Registrado: 18 Mar 2006 13:57
Ubicación: Madrid

Notapor ferchogz2005 » 25 May 2006 12:12

Gracias KL

Le verdad me has ayudado a optimizar un trabajo que estaba realizando en elcual tenia que generar varios formularios y guardarlos acad uno con un nombre de ususario dieferente..

De nuevo mil gracias

Saludos desde Colombia

Ferchogz
* Te recomendamos estos productos Excel: Manual de Macros | Manual de Funciones | Nuevas Funciones | ddTraDa
ferchogz2005
Miembro Frecuente
Miembro Frecuente
 
Registrado: 01 Sep 2005 13:33
Ubicación: Bogota


Compartir en:
     

  • Anuncio
Manual Excel avanzado

Volver a Macros

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 8 invitados