Pegado Especial / dividir => Macro?

26/07/2007 - 21:28 por Arcano | Informe spam
Hola. Necesito una macro para crear un boton que, a un rango o celda
seleccionado en excel, lo divida por 1.000.
Ej. En un rango tengo varios numeros, los selecciono, y al presionar
ese boton, me los divida todos por 1.000. Por ahora, lo que hago es
copiar 1.000 y pegado especial, dividir. pero esto es muy largo.
¿es posible?
gracias.

Preguntas similare

Leer las respuestas

#1 Abraham
26/07/2007 - 22:33 | Informe spam
Activa tu grabadora de macros, realiza los mismos pasos de "siempre",
deten la grabadora y ya tienes el codigo que lo realizara, solo
asignaselo a un boton.

Abraham
Respuesta Responder a este mensaje
#2 Arcano
01/08/2007 - 15:39 | Informe spam
On 26 jul, 16:33, Abraham wrote:
Activa tu grabadora de macros, realiza los mismos pasos de "siempre",
deten la grabadora y ya tienes el codigo que lo realizara, solo
asignaselo a un boton.

Abraham



Abraham, esto no me sirve, ya que el rango que quiero seleccionar
dependerá de donde esten los datos..en cambio el codigo al grabar la
macro, asigna a un rango (range("xxxx").Select)...
Respuesta Responder a este mensaje
#3 KL
01/08/2007 - 16:14 | Informe spam
Hola Arcano,

"Arcano" wrote
Abraham, esto no me sirve, ya que el rango que quiero seleccionar
dependerá de donde esten los datos..en cambio el codigo al grabar la
macro, asigna a un rango (range("xxxx").Select)...



A ver algo asi:

Sub test1()
If Not TypeOf Selection Is Range Then Exit Sub
If Selection.Count > (8192 * 2) Then
MsgBox "Selection too large"
Exit Sub
End If
Dim c As Range
On Error Resume Next
For Each c In Selection.SpecialCells(xlCellTypeFormulas)
c = "=(" & Mid(c.Formula, 2, Len(c.Formula)) & ")/1000"
Next c
For Each c In Selection.SpecialCells(xlCellTypeConstants, xlNumbers)
c = c / 1000
Next c
End Sub

Sub test2()
Dim strRng As String
Dim strFrm As String
If Not TypeOf Selection Is Range Then Exit Sub
If Selection.Areas.Count > 1 Then
MsgBox "Can't work with multiple areas"
Exit Sub
End If
strRng = Selection.Address(, , , True)
strFrm = "IF(ISNUMBER(" & strRng & ")," & strRng & "/1000," & """""&" &
strRng & ")"
Selection = Evaluate(strFrm)
End Sub

Saludos,
KL
Respuesta Responder a este mensaje
#4 Arcano
02/08/2007 - 22:08 | Informe spam
Excelente KL es lo que necesitaba.
Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida