Necesito condicionar al guardar mi archivo Microsoft Excel dependiendo el valor de una celda

Que tal, espero te hayas pasado unas Felices Fiestas, Mi pregunta es la siguiente: Tengo esta instrucción, lo que necesito es condicionar al guardar la hoja cómo nuevo archivo según el valor de una celda (L12), en carpetas diferentes.De antemano muchas gracias.
Private Sub CommandButton1_Click()
Dim CARPETA As String
CARPETA = "C:\Documents and Settings\All Users\Documents\FAM\COTCLIENTES\"
Dim wb As Workbook
'En la variable guarda la celda con nbre de cliente
nvaFact = Sheets("[email protected]").Range("C6").Value & "-COT." & Sheets("[email protected]").Range("S10")
'copio la hoja activa FACT
Sheets("[email protected]").Copy
' guarda esa hoja con el nombre de la variable y cierra el libro
'inhabilitamos el movimiento de hojas
Application.DisplayAlerts = False
'creamos un nuevo objeto Libro
Set wb = ActiveWorkbook
On Error Resume Next
With wb
.BreakLink Name:= _
"C:\Documents and Settings\All Users\Documents\FAM\FAMSYS.xls" _
, Type:=xlExcelLinks
'guardamos el libro en la misma carpeta y con nombre = variable
.SaveAs CARPETA & nvaFact & ".xls"
'cerramos el libro
.Close
End With
'se libera el objeto
Set wb = Nothing
End Sub

1 Respuesta

Respuesta
1
La reconozco a esta macro... :)
Necesitas evaluar antes de definir la variable CARPETA, con esta consulta:
if range("L12") = 1 then
CARPETA = "C:\Documents and Settings\All Users\Documents\FAM\COTCLIENTES_1\"
elseif range("L12")= 2 then
CARPETA = "C:\Documents and Settings\All Users\Documents\FAM\COTCLIENTES_2\"
else
'otra comparación
End if
Saludos
Elsa
http://es.geocities.com/lacibelesdepunilla/manuales
Antes que nada feliz año Elsa, y no creas que se me ha olvidado el proyecto que tenemos, lo que pasa es que he estado muy ocupado. Con respecto a este problemilla, necesito mantener la aplicación anterior para llevar un general, y además Tener dos carpetas para condicionar según el valor de (L12), ¿entonces en que parte pongo lo que recién me mandaste? Gracias
Al inicio, donde estabas asignando valores a la variable CARPETA. Agregá el nombre de la hoja por si en ese momento no está activa la hoja que contiene la celda L12:
Private Sub CommandButton1_Click()
Dim CARPETA As String
if Sheets("la_hoja").range("L12") = 1 then
CARPETA = "C:\Documents and Settings\All Users\Documents\FAM\COTCLIENTES_1\"
elseif Sheets("la_hoja").range("L12")= 2 then
CARPETA = "C:\Documents and Settings\All Users\Documents\FAM\COTCLIENTES_2\"
else
'otra comparación
End if
Hola, Saludos, soy yo de nuevo, mira no se bien cómo ponerlo, ya que quiero mantener el proceso de guardado cómo lo habías puesto antes, y agregarle la opción para que haga una "copia" a la carpeta "COTCLIENTES" y la otra "copia" condicionarla según el valor de la celda "L12" si es "1" se copie a la carpeta"COTCLIENTES_1" y si es "2" a la carpeta "COTCLIENTES_2". De antemano muchas gracias por la molestia.
Ajustá las direcciones y pruébala por favor...
Private Sub CommandButton1_Click()
Dim CARPETA As String
CARPETA = "C:\Documents and Settings\All Users\Documents\FAM\COTCLIENTES\"
If Range("L12") = 1 Then
carpCopia="C:\Documents and Settings\Administrador\Mis documentos\Consultas\cliente1\"
ElseIf Range("L12") = 2 Then
carpCopia = "C:\Documents and Settings\Administrador\Mis documentos\Consultas\cliente2\"
Else
'otra comparación
End If
Dim wb As Workbook
'En la variable guarda la celda con nbre de cliente
nvaFact = Sheets("[email protected]").Range("C6").Value & "-COT." & Sheets("[email protected]").Range("S10")
'copio la hoja activa FACT
Sheets("[email protected]").Copy
' guarda esa hoja con el nombre de la variable y cierra el libro
'inhabilitamos el movimiento de hojas
Application.DisplayAlerts = False
'creamos un nuevo objeto Libro
Set wb = ActiveWorkbook
On Error Resume Next
With wb
.BreakLink Name:= _
"C:\Documents and Settings\All Users\Documents\FAM\FAMSYS.xls" _
, Type:=xlExcelLinks
'guardamos el libro en la misma carpeta y con nombre = variable
.SaveAs CARPETA & nvaFact & ".xls"
'guarda copia
.SaveAs carpCopia & nvaFact & ".xls"
'cerramos el libro
.Close
End With
'se libera el objeto
Set wb = Nothing
End Sub
Excelente asesor, muy puntual y atinado, de muy buen trato 100% recomendable. Entonces en que quedamos, cómo retomamos el proyecto, ¿por este medio o por mail? Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas