Retroceder   Foros del Web > Temas generales de computación > Ofimática

Respuesta
 
Herramientas Desplegado
Antiguo 13-sep-2007, 09:43   #1 (permalink)
Pablus00 está en el buen camino
 
Avatar de Pablus00
 
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 843
Enviar un mensaje por MSN a Pablus00
FAQ`s Ofimatica

Tengo mas voluntad que conocimiento, asi que me limite a adaptar al formato FAQ un post que me sirvio y que me parecio muy completo (autores abrahamvj, 3pies y landa59)


Macro con la Función Edición/Buscar:

Simplificada

Sub búsqueda()
Cell.Find(What:=”palabra”).Activate
End sub

.. y extendida

Sub busqueda()
Cell.Find(What:="hola", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
End sub

Variantes:
  • Utilizando Textbox para ingresar el campo a buscar:
Sub busqueda()
Cell.Find(What:=textbox1).Activate
End sub
  • Restringiendo el campo de búsqueda a una columna/fila/rango
Reemplazando Cells (toda la hoja) por:
[B:B] (toda la columna B)
[3:3] (toda la fila 3)
Range("A2:B99") (el rango especificado).

  • Con mensaje de Alerta
Sub Macro1()

On Error GoTo lineaerror

Cells.Find(What:="hola", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate

Exit Sub

lineaerror:
MsgBox "Error"

End Sub
__________________
-- Nunca te des por vencido, aún vencido -- Web

Última edición por BrujoNic; 25-sep-2007 a las 08:31.
Pablus00 está desconectado   Responder Citando
Antiguo 25-sep-2007, 21:30   #2 (permalink)
Pablus00 está en el buen camino
 
Avatar de Pablus00
 
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 843
Enviar un mensaje por MSN a Pablus00
Re: FAQ`s Ofimatica

Tutorial: Cómo mostrar una barra de progreso con un formulario de usuario en Excel

Si tiene una macro de Microsoft Visual Basic para Aplicaciones que toma mucho tiempo terminando, quizás desea dar una indicación que la macro progresa correctamente al usuario. En este artículo se describe cómo crear una barra de progreso con un formulario de usuario en Microsoft Excel.

Más información

Microsoft proporciona ejemplos de la programación sólo para ilustración sin garantía que se expresa o implícito. Esto incluye, entre otras, las garantías implícitas de comerciabilidad e idoneidad para un fin determinado Este artículo presupone que está familiarizado por usted con el lenguaje de programación que se muestra y las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden ayudar a explicar la funcionalidad de un procedimiento determinado. Sin embargo, ellos no modificarán estos ejemplos para proporcionar que agregó funcionalidad o construir procedimientos para cumplir sus necesidades específicas.


Cree el formulario de usuario

En el ejemplo siguiente, una subrutina de Visual Basic rellena rango de celdas grandes con un número aleatorio. El indicador le muestra que la macro se ejecuta correctamente.

1.Abra un libro nuevo en Excel.

2.En Microsoft Office Excel 2003 y versiones anteriores de Excel, haga clic en Herramientas, elija Macro y a continuación, haga clic en Editor de Visual Basic.

En Microsoft Office Excel 2007, haga clic en Visual Basic en el grupo Código en la ficha Programador.

Nota Para mostrar la ficha Programador en la Cinta, siga estos pasos:
a. Start Excel 2007 hace clic en el Microsoft Office Button y a continuación, hace clic en Opciones de Excel.
b. En el cuadro de diálogo Opciones de Excel, haga clic en Popular y a continuación, haga clic para activar la casilla de verificación Show Developer tab in the Ribbon.

3.En el menú <B>Insertar</B>, haga clic en <B>UserForm</B>
4.Dibuje un control Label en el formulario de usuario.
5.Cambie las propiedades siguientes del control Label en los valores siguientes:

Property Value
--------------------------------------------
Caption Now updating. Please wait...

Nota Si la ventana Propiedades no es visible, haga clic en Ventana Propiedades en el menú Ver.

6.Dibuje un control Frame en el formulario de usuario.
7.Cambie las propiedades siguientes del control Frame en los valores siguientes:

Property Value
-----------------------------
Name FrameProgress


8.Dibuje un control Label en el control Frame.
9.Cambie las propiedades siguientes del control Label en los valores siguientes:

Property Value
-------------------------------------
Name LabelProgress
BackColor &H000000FF&
SpecialEffect fmSpecialEffectRaised



Escriba el código de macro

1.Haga doble clic en el formulario de usuario para abrir la ventana Código para el formulario de usuario.
2.En el módulo, escriba el código siguiente para el evento UserForm Activate:

Private Sub UserForm_Activate()
' Set the width of the progress bar to 0.
UserForm1.LabelProgress.Width = 0

' Call the main subroutine.
Call Main
End Sub




3.En el menú Insertar, haga clic en Módulo.
4.En la ventana Código para el módulo, escriba el código siguiente:

Sub ShowUserForm()
UserForm1.Show
End Sub

Sub Main()
Dim Counter As Integer
Dim RowMax As Integer, ColMax As Integer
Dim r As Integer, c As Integer
Dim PctDone As Single

Application.ScreenUpdating = False
' Initialize variables.
Counter = 1
RowMax = 100
ColMax = 25

' Loop through cells.
For r = 1 To RowMax
For c = 1 To ColMax
'Put a random number in a cell
Cells(r, c) = Int(Rnd * 1000)
Counter = Counter + 1
Next c

' Update the percentage completed.
PctDone = Counter / (RowMax * ColMax)

' Call subroutine that updates the progress bar.
UpdateProgressBar PctDone
Next r
' The task is finished, so unload the UserForm.
Unload UserForm1
End Sub

Sub UpdateProgressBar(PctDone As Single)
With UserForm1

' Update the Caption property of the Frame control.
.FrameProgress.Caption = Format(PctDone, "0%")

' Widen the Label control.
.LabelProgress.Width = PctDone * _
(.FrameProgress.Width - 10)
End With

' The DoEvents allows the UserForm to update.
DoEvents
End Sub


5.Vuelva a Excel.
6.En Excel 2003 y versiones anteriores de Excel, elija Macro en el menú Herramientas y a continuación, haga clic en Macros.

En Excel 2007, haga clic en Macros en el grupo Código en la ficha Programador.

7.En el cuadro de diálogo Macro, haga clic para seleccionar ShowUserForm y a continuación, haga clic en Ejecutar.
Un cuadro de diálogo que tiene una barra de progreso roja aparece. La barra de progreso aumenta como la subrutina Main rellena las celdas de la hoja de cálculo.

La subrutina ShowUserForm muestra el formulario de usuario. El procedimiento que se asocia al evento Activate del formulario de usuario llama a la subrutina Main. La subrutina Main rellena celdas con números aleatorios. La subrutina además llama a la subrutina UpdateProgressBar que actualiza el control Label del formulario de usuario.

http://support.microsoft.com/kb/211736/es
__________________
-- Nunca te des por vencido, aún vencido -- Web

Última edición por Pablus00; 25-sep-2007 a las 21:37.
Pablus00 está desconectado   Responder Citando
Antiguo 25-sep-2007, 21:45   #3 (permalink)
Pablus00 está en el buen camino
 
Avatar de Pablus00
 
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 843
Enviar un mensaje por MSN a Pablus00
Re: FAQ`s Ofimatica

- Como evitar visualizar el proceso de una Macro?
(Beneficio: agiliza la velocidad de ejecución)

Colocar al principio de la macro:
Application.ScreenUpdating=false

y al final:
Application.ScreenUpdating=true


(Si alguien tiene voluntad para postear, sera bienvenido, asi armamos una biblioteca de recursos que nos sirva a todos, y evitamos preguntas repetidas)
__________________
-- Nunca te des por vencido, aún vencido -- Web
Pablus00 está desconectado   Responder Citando
Antiguo 12-dic-2007, 15:31   #4 (permalink)
hugol ha deshabilitado el karma
 
Fecha de Ingreso: diciembre-2007
Mensajes: 3
Macro para crear Barra de Herramientas en el Menu

El siguiente procedimiento crea una barra de herramientas en el menu principal

Sub Crear Barra()


'Declaración de variables Dim'
Dim cMenu1 As CommandBarControl
Dim cbMainMenuBar As CommandBar
Dim iHelpMenu As Integer
Dim cbcCutomMenu As CommandBarControl

'BORRAR YA EXISTENTE
'Aqui se borra la barra de herramientas en caso que ya exista una con el nombre
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("&Nombre Barra").Delete
On Error GoTo 0
Set cbMainMenuBar = _
Application.CommandBars("Worksheet Menu Bar")

'CREAR NUEVO MENU'
Set cbcCutomMenu = _
cbMainMenuBar.Controls.Add(Type:=msoControlPopup, _
Before:=10)
cbcCutomMenu.Caption = "&Nombre Barra"

'AGREGAR BOTONES DENTRO DEL MENU
'Boton de sub menu
With cbcCutomMenu.Controls.Add(Type:=msoControlButton)
.Caption = "Sub Menu"
.OnAction = "MacroAsociada"
End With

End Sub

Este procedimiento se puede crear cuando automaticamente se abra el acrhivo y borrar la barra apenas se cierre para que no aparezca en otros archivos mediante el sigueinte metodo:

Sub Auto_Open()
Application.Run ("Macro222")
end sub

'y

Sub Auto_Close()
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("&Reportes e Indicadores").Delete
On Error GoTo 0

End Sub

Cualquier duda por favor avisen
hugol está desconectado   Responder Citando
Antiguo 17-dic-2007, 03:57   #5 (permalink)
milolo no se puede cailificar en este momento
 
Avatar de milolo
 
Fecha de Ingreso: mayo-2007
Ubicación: Huelva. España
Mensajes: 61
Re: FAQ`s Ofimatica

Os pongo a continuación un muy buen manual para los que estén empezando a programar con VB en excell. Ahí lo llevais:

http://www.sicem.biz/docs/tutoriales...l.PDF/download

Un saludo
milolo está desconectado   Responder Citando
Respuesta

Calificación: Calificación de Tema: 3 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 06:26.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93