Adicionar Columnas

12/11/2009 - 19:13 por jforero | Informe spam
Buenas tardes grupo, deseo realizar los siguiente:

en la hoja Formulario en la celda:
e16 tengo el numero de cotizacion
c20 la fecha
b22 la nota y/o observaciones

en la hoja Cotizaciones en la:

Columna E tengo el numero de cotizacion
Columna K el ultimo dato almacenado

entonces lo que necesito si es posible es que al darle click al boton
btnActualizar (insertado en la hoja formulario) con el numero de cotizacion
de la hoja formulario, me adicione la columna L con la fecha almacenada en
la hoja formulario celda c20 y en la columna M las observaciones.

si se realiza esta operacion para el mismo numero de cotizacion, me adicione
las columnas N y O respectivamente y asi sucesivamente.
y de ser posible que me titule las columnas insertadas:

La de la fecha: "Fecha " n ,donde n sera 1 para la primera observacion y 2
para la segunda (en negrilla y centrado)
la de la observacion con "Notas y observaciones " n, donde n sera 1 para la
primera observacion y 2 para la segunda (en negrilla y centrado)
y asi sucesivamente

gracias por la colaboración

Jorge f

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
13/11/2009 - 00:16 | Informe spam
hola, jorge !

prueba asignando al boton que tienes incrustado en "formulario" una macro +/- como la siguiente:
(OJO: no contempla la prevencion/correccion/... de -posibles- errores)

Sub Anotaciones()
Dim Fila As Integer, Col As Byte, uCol As Byte
With Worksheets("cotizaciones")
Fila = .Columns("a").Cells.Find([e16], .[a1]).Row
Col = Application.Max(12, .Range("iv" & Fila).End(xlToLeft).Column + 1)
uCol = 12: On Error Resume Next
uCol = .Cells.Find("*", .[a1], xlValues, xlWhole, xlByColumns, xlPrevious).EntireColumn
.Cells(Fila, Col) = [c20]
.Cells(Fila, Col + 1) = [b22]
With .Range("l1:m1")
Select Case Col
Case Is <= uCol
.Value = Array("Fecha 1", "Observaciones 1")
.Font.Bold = True: .HorizontalAlignment = xlHAlignCenter
Case Is > uCol
.AutoFill .Resize(, Col - 10)
End Select
End With
End With
End Sub

saludos,
hector.

__ OP __
Mostrar la cita
#2 jforero
17/11/2009 - 14:36 | Informe spam
Hola Hector.. he implementado el código pero me sale el siguiente error

Se ha producido el error "91" en tiempo de ejecucion
variable de objeto o bloque with no establecido.

y la interrupcion es en la línea

Fila = .Columns("a").Cells.Find([e16], .[a1]).Row

Hector como siempre gracias por tu colaboracion

Jorgef


"Héctor Miguel" escribió en el mensaje de
noticias news:%23$wOk4%
Mostrar la cita
#3 Héctor Miguel
18/11/2009 - 06:20 | Informe spam
hola, jrge !

Mostrar la cita
1) la linea que causa el error, esta "intimamente" ligada con la linea anterior de la propuesta de macro...
Mostrar la cita
2) podrias comentar como has hecho la "implementacion" del codigo y/o cualquier "adaptacion" al mismo ?
modulo, tipo de procedimiento, esta asignado a algun objeto ? (de que tipo ?), ???

saludos,
hector.

__ OP __
Mostrar la cita
#4 jforero
19/11/2009 - 15:59 | Informe spam
Hola Hector.

El código es el siguiente, en la hoja de cálculo tengo un option button por
eso el if, ya verifiqué que el nombre de la hoja de cálculo esté bien
escrito.

Gracias por tu colaboración

Jorgef

Private Sub btnActualizar_Click()
'Desproteje hojas
Worksheets("Cotizaciones").Unprotect ("sure")

If opbCotizaciones.Value = True Then
Dim Fila As Integer, Col As Byte, uCol As Byte
With Worksheets("Cotizaciones")
Fila = .Columns("a").Cells.Find([e16], .[a1]).Row
Col = Application.Max(17, .Range("iv" & Fila).End(xlToLeft).Column +
1)
uCol = 17: On Error Resume Next
uCol = .Cells.Find("*", .[a1], xlValues, xlWhole, xlByColumns,
xlPrevious).EntireColumn
.Cells(Fila, Col) = [c20]
.Cells(Fila, Col + 1) = [b22]
With .Range("r1:s1")
Select Case Col
Case Is <= uCol
.Value = Array("Fecha 1", "Observaciones 1")
.Font.Bold = True: .HorizontalAlignment = xlHAlignCenter
Case Is > uCol
.AutoFill .Resize(, Col - 10)
End Select
End With
End With


MsgBox ("Las Observaciones han Sido Actualizadas")
Else: MsgBox ("Debe Elegir Cotizaciones o Visitas")
End If
'salva los datos
ActiveWorkbook.Save
Worksheets("Cotizaciones").Protect Password:="sure",
DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub


"Héctor Miguel" escribió en el mensaje de
noticias news:%
Mostrar la cita
#5 Héctor Miguel
19/11/2009 - 19:30 | Informe spam
hola, jorge !

Mostrar la cita
1) solo por si las dudas, comprueba/corrige que en las propiedades del btnActualizar (en el editor de vba)
la propiedad "TakeFocusOnClick" este establecida como => False

2) solo como comentario... el rango para los encabezamientos de las notas (R1:S1)
inicia en la columna 18 (y en tu codigo estas iniciando como columna 17) -???-

(por lo demas y despues de probarlo, no encuentro otras posibles causas del error que comentas)

saludos,
hector.

__ el codigo expuesto __
Mostrar la cita
Ads by Google
Search Busqueda sugerida