Saltar al contenido

Macros y programación VBA

Temas sobre la automatización de Excel utilizando macros y VBA. Errores de VBA. ¿No consigues que tus macros hagan lo que necesitas?

  1. Started by nitrito,

    Estimados: Desde ya gracias por su ayuda. Les explico un poco lo que debo hacer: Recibo documentos, los cuales tienen un numero de cuenta el que debo ingresar (llámese previsación). Luego, ese documento va a otro proceso interno, y puede que vuelva hacia mi nuevamente(llámese liquidación). La cosa es que cuando previso y guardo los datos, estos se guardan en otra planilla con fecha y hora. Sin embargo, si recibo nuevamente el documento con un número de cuenta ya guardado en previsación, este al guardarlo nuevamente no se guarda con la fecha actual. Entonces necesito por favor, en esta macro (que me ayudaron a crear) lo siguiente: -Si es que es pos…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.4k visitas
  2. Started by Mario1974,

    Buenas tardes. Necesito cargar estos CheckBox en una tabla pero solo si están "check". De no ser así la celda debería quedar vacía. Se entiende? Desde ya muchas gracias por cualquier ayuda o aporte. .Cells(NuevaFila, 33).Value = Me.Comp35.Caption .Cells(NuevaFila, 34).Value = Me.Comp85.Caption .Cells(NuevaFila, 35).Value = Me.Comp205.Caption .Cells(NuevaFila, 36).Value = Me.Comp206.Caption .Cells(NuevaFila, 37).Value = Me.Comp207.Caption .Cells(NuevaFila, 38).Value = Me.Comp329.Caption

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 497 visitas
    • 1 seguidor
  3. Buenas tardes! Tengo el siguiente código: Private Sub btnCargaBancos_Click() Dim TasaCompra, TasaVenta As Double Dim InvBanesco, InvVzla, MontoBanesco, MontoVzla As Double Dim TasaDiaBan, TasaDiaVzla, TasaActual As Double 'Inversion = Val(txtInversion.Text) InvBanesco = Val(CDbl(txtInverBanesco.Text)) InvVzla = Val(CDbl(txtInverVzla.Text)) TasaCompra = Val(CDbl(txtTasaCompra.Text)) TasaVenta = Val(CDbl(txtTasaVenta.Text)) MontoBanesco = (InvBanesco / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) MontoVzla = (InvVzla / TasaCompra) * (1 - 0.18 / 100) * (TasaVenta * (1 - 0.18 / 100)) TasaDiaBan = (MontoBanes…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 484 visitas
  4. Started by ANtrax07,

    Buena noche tengo un formulario que tiene un combobox de cual debo elegir un codigo y esta accion me debe llenar los campos del formulario con la linea de datos correspondiente al codigo seleccionado. agradezco la ayuda Marco ejemplo1.xls

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 965 visitas
  5. Started by pojafaro,

    Hola, necesito de su ayuda, resulta que debo imprimir un formulario, pero antes que se imprima, se debe crear una copia de este en formato pdf y en una ubicacion especifica, esto es por si la impresora falla, favor ayudar, gracias

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 709 visitas
  6. Qué tal, tengo problemas realizando el copiado y pegado de una columna(libro1 | Columna G) a otra columna ( libro2 | Columna O), quiero que se pegue en la última fila disponible de la columna O. Esta es mi macro: Private Sub CopiarColumna(Archivo As String) Dim Lcopia As Workbook Dim LDestino As Workbook Dim Destino As Worksheet Set LDestino = ActiveWorkbook Set Destino = ActiveSheet Set Lcopia = Workbooks.Open(Archivo) Sheets(“ReporteCifrasControl”).Range(“G2”& Sheets(1).Range(“G” & Rows.Count).End(xlUp).row).Copy Destino.Range(“O” & Destino.Range(“O” & Rows.Count).End(xlUp).row + 1).PasteSp…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  7. Started by federtuc,

    BUENOS DIAS, TRATO DE HACER UNA CONSULTA PARA EXTRAER LOS DATOS DE ACCES CON UNAS CONDICIONES Y ME APARECE ERROR Dim Sql Sql = "SELECT Id, NOMBRE, PRECIO, IMAGEN FROM PRODUCTOS WHERE EMPLEADO =" & Label1.Caption & " AND SUSPENDIDO = 0 ORDER BY NOMBRE" Call Conecta 'Crea la conexion Set Rs = New ADODB.Recordset Rs.Open Sql, miConexion, adOpenKeyset, adLockOptimistic -------Aqui es donde me sale el error No coinciden los tipos de datos en la expresion de criterios

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 749 visitas
  8. Hola Gente!!! ¿como estan? Estoy en un proyecto y me freno un tema, el el listbox me aparece un dato pero no en forma de hora como esta la planilla. ¿Como puedo cambiar ese tema para que se vea en hh:mm? Desde ya gracias!! If UCase(Description) Like "*" & UCase(Me.TextBox1.Value) & "*" Then Me.LISTA.AddItem Me.LISTA.List(Y, 0) = Sheets("PLANILLA").Cells(File, 2).Value Me.LISTA.List(Y, 1) = Sheets("PLANILLA").Cells(File, 3).Value 'Hora hh:mm Me.LISTA.List(Y, 2) = Sheets("PLANILLA").Cells(File, 4).Value Me.LISTA.List(Y, 3) = Sheets("PLANILLA").Cells(File, 5).Value Me.LISTA.List(Y, 4) = Sheets("PLANILLA").Cells…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  9. Necesito crear una macro que copie el valor númerico de una celda de referencia incrementandolo en una unidad y que al mismo tiempo actualice la celda de referencia situandose para finalizar en la celda de origen. Ejemplo: si estoy situado el la celda (I8) necesito que copie el valor de la celda (I1) = 6 incrementandolo en una unidad. (I8) = 7. Actualizando el valor de la celda de referencia (I1) = 7 y finalizando su posicion en la celda de origen (I8)

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.3k visitas
  10. Buenas amigos foristas Tengo una macro la cual toma los datos de una hoja y con eso se llena una base de datos de una aplicacion que tenemos, en la actualidad coloco For i = 4 To 8 session.findById("wnd[1]/usr/cmbRF02D-KTOKD").Key = objSheet.Cells(i, 35) session.findById("wnd[1]/usr/ctxtRF02D-BUKRS").Text = objSheet.Cells(i, 36) Next i Lo que deseo es que en la macro si existe informacion en la fila siguiente ejecuta el proceso sino pare Agrdezco su colaboracion Fernando Trujillo

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 824 visitas
  11. Started by fboza,

    AMIG@S, Agradeceré sus apoyos para solucionar con problemita en excel vba, les comento: Estoy tratando de automatizar una tarea, se trata registro de evaluaciones de check list de calidad en atención. He adjunto una replica del trabajo con los datos minimos por tema de capacidad. El formulario tiene un frame donde se ingresaran los datos del empleado mediante cajas de texto, tambien un multipages con 2 paginas (1 atributo por pagina), dentro de estas paginas existen 3 criterios de evaluación (label) y cada uno con 3 resultados (SI - NO - N.A.) estos últimos son optionbutton. En el archivo original tiene 4 multipage c/u con 4 a 5 paginas he avanzado gran parte del mini…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 637 visitas
  12. Started by DaveRoos,

    Hola. He escrito un Macro en un libro de Excel para que traiga información desde otro archivo de Excel, (ambos .xls), pero el código sólo trae 16.383 filas y las demás las borra. ¿Puede haber un máximo para este tipo de código?¿Por cuál lo puedo reemplazar para que no tenga este problema?. Transcribo el código que hace la conexión y trae los registros: 'crea la conexión Set Conn = New ADODB.Connection Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source= C:\Users\Proyecto\gestion.xls;" & _ "Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1;""" 'crea el recordset Set rs = New ADODB.Recordset 'Selecciona lo…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  13. hola buen dia. quisiera ayuda en este proyecto para guardar datos en rangos diferentes de celdas y que al guardar los coloque al inicio de la base datos y no al ultimo como lo hace ahora esta es la macro Sub GUARDAR_DATOS() Dim NombreHoja As String Dim HojaDestino As Range Dim NuevaFila As Integer Dim FilasFactura As Integer Dim i As Integer …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.1k visitas
  14. Hola grupo recurro a ustedes para la ayuda para completar un Macro Tengo este macro que me valida desde Excel si un dato ya existe en la base de datos de ACCESS. Set Rs = New ADODB.Recordset Sql = "SELECT Count(*) FROM a_revisiones WHERE [cedula]='" & .Range("J2") & "'" Rs.Open Sql, Cnn, 3, 3, adCmdText Datos = Rs.GetRows If Datos(0, 0) > 0 Then MsgBox "El registro ya existe en la base de datos!!!", vbCritical, "Sistema" Else Nombre de base de datos en Access "a_revisiones", campos "cedula, nombre y estado" Me funciona bien cuando solo solo requiero ingresar un registro igual en cedula, cuando debo registrar más datos me…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.6k visitas
  15. Hola compañeros. Esta es mi primera consulta. Me presento, mi nombre es Jose. Necesito vuestra ayuda ya que estoy estancado en un proyecto y no se solucionarlo. Tengo un formulario, al que accede pulsando un botón colocado en la hoja 1, en el que hay un InkEdit/Textbox. La cuestión es que ese InkEdit/TextBox contiene bastante texto, motivo por el que le he añadido una barra de desplazamiento vertical. El problema es que, al pulsar el botón imprimir (que permite imprimir o guardar en pdf) tan solo se imprime la parte visible en la pantalla. Lo que no soy capaz de conseguir es imprimir todo el texto, tanto el que se ve en pantalla, como el que se ve al …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 884 visitas
  16. Buen día. Estoy buscando ayuda para el siguiente macro: Si en el rango B13:L24 (Son casillas combinadas) no se tiene nada de texto. ocultar el rango B11:L24

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 702 visitas
  17. buenas estoy teniendo problemas con el codigo en los siguientes aspectos no hay problema en mostrar el nombre pero no logro hacerlo desde la la hoja 2 teniendo los datos en la hoja 1. a la hora de seleccionar el codigo luego la ubicacion y luego al intentar cambiar el codigo me salta error 13 me gustaria saber como se hace para que al presionar siguiente el codigo salte a la siguiente linea, es decir se selecciono el codigo 3 y al presionar siguiente debe salir el numero 4 no se si me doy a entender espero que si buscar con conbobox.rar

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.3k visitas
  18. Started by cecirt84,

    Macro para copiar ciertos datos a otra hoja Hola! Estoy intentando hacer un formato de ordenes de compra, en el cual se va registrando cada una de las órdenes y lo que quiero lograr es que también se registren los materiales comprados en cada orden. Mi archivo consta de 5 hojas, en la primera "Indice" es en la hoja que se va llevando el registro de las ordenes elaboradas, la segunda "OC" es la orden de compra, la tercera y la cuarta son bases de datos de proveedores y obras, para facilitar su manejo en la OC y la última es donde quiero que se vaya llevando el registro de los materiales. Se me ha dificultado debido a lo siguiente, puedo copiar los materiales en la hoja…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 1.5k visitas
  19. Hola , Adjunto un archivo sencillo( el original tiene miles de lineas). He buscado pero no entiendo algunas lineas de codigo , como para poder replicarlas en mi archivo. Son dos cosas las que necesito realizar. 1)ordenar alfabeticamente los nombres de los equipos 2) eliminar las filas que dicen "NO" en la columna de visita Desde ya muchas gracias por su ayuda! Saludos Codigo Torneo.xlsm

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 944 visitas
  20. Started by jhon fredy,

    como puedo cambiarle la linea a este codigo que en vez de colorear me bordee la celda Sub Macro1() ' ' Macro1 Macro ' ' Sheets("hoja1").Select With ActiveWorkbook.Sheets("programa4cifras").Tab .color = 255 .TintAndShade = 0 End With Sheets("hoja2").Select With ActiveWorkbook.Sheets("hoja2").Tab .ThemeColor = xlThemeColorAccent6 .TintAndShade = -0.249977111117893 End With Sheets("hoja3").Select With ActiveWorkbook.Sheets("hoja3").Tab .ThemeColor = xlThemeColorAccent1 .TintAndShade = -0.249977435298762 End With Sheets("hoja4").Select With ActiveWorkbook.Sheets("hoja4").Tab …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 848 visitas
  21. Buenas tardes, muchas gracias de antemano por la ayuda, ya que sin abrir tema ya me han ayudado mucho viendo los ejemplos en otros temas, solo que este problema no lo pude encontrar. el problema que presento es que necesito que se oculten y muestren filas de acurdo al número de la lista desplegable, el macro funciona bien a mi parecer, pero no logro que funcione al cambiar el número de filas de la lista ubicada en la casilla "D2", espero me puedan ayudar, muchas gracias... ejemplo introcucir filas.zip

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 3.9k visitas
  22. Invitado guindall
    Started by Invitado guindall ,

    ¿Cómo reemplazar los datos del rango D6:M6 que coincidan, al menos, con los 8 primeros caracteres, de los datos del rango A6:A20? reemplazar.rar

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 777 visitas
  23. Started by tripasdhule,

    Hola intentaré exponer mi problema lo mas claramente posible, dada mi condición de novato en excel Mi hoja de calculo está toda bloqueada para impedirlos cambios no deseados con excepción de las celdas en las que quiero introducir información. Utilizo botones de comando para introducir información en las celdas de un rango C19:M384 por ejemplo. La informacion se introduce celda por celda y necesitaria saber la manera de que el cursor se desplace a la siguiente celda vacia a la derecha y al llegar a la ultima celda desbloqueada en la fila activa vuelva a la primera celda vacia de la siguiente fila. Lo he intentado con: Private Sub CommandButton23_Click()'introducir…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 9.1k visitas
  24. Started by Furadosuka,

    Estimados, estoy desarrollando un programa en el que tengo 2 hojas: BASE DE DATOS y REGISTRO. Lo que realiza el programa es: tener una base de datos a tiempo real sobre el trabajo del dia(BASE DE DATOS), y tener un registro del trabajo diario (registro) El código realiza lo siguiente: copia el rango( ej "a1:l:350") de la hoja "BASE DE DATOS" , busca el primer espacio vacío (bucle), y luego pega en la hoja "REGISTRO". Range("a1:l350").Copy Sheets("REGISTRO").Range("A1"), utilizando esto solo me sirve para el primer día pues en el segundo día la información se pegará encima del día anterior. Lo que me gustaría es eliminar ese bucle. Y mantener la hoja registro oculta. …

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 919 visitas
  25. Buenas tardes Estimados ..por favor me pueden ayudar con error que me aparace cuando presiono el boton grabar Private Sub CommandButton1_Click() On Error Resume Next Sheets("compras").Select ULinea = Range("a" & Rows.Count).End(xlUp).Row + 1 'llevar desde formulario a planilla excel' Range("A" & ULinea).Value = Me.TextBox5.Text Range("B" & ULinea).Value = Me.TextBox4.Text Range("C" & ULinea).Value = Me.TextBox18.Text Range("D" & ULinea).Value = Me.TextBox2.Text Range("E" & ULinea).Value = Me.TextBox8.Text Range("F" & ULinea).Value = Me.TextBox9.Text Range("G" & ULinea).Value = Me.TextBox10.Text Range("H" &amp…

    • 0

      Reacciones de usuarios

    • 2 respuestas
    • 16.8k visitas

Información básica de protección de datos

  • Responsable: Sergio Andrés Celemín
  • Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.
  • Legitimación: Consentimiento del interesado.
  • Destinatarios : Hetzner Online GmbH.
  • Duración: Mientras se conserve este post o hilo en la comunidad, o decidas eliminar el comentario.
  • Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso, rectificación, supresión, oposición y demás derechos legalmente establecidos a través del email sergio@ayudaexcel.com

Información adicional: Encontrarás más información en la política de privacidad.