Saltar al contenido

AlexanderS

Moderadores
  • Contador de contenido

    1222
  • Unido

  • Última visita

  • Days Won

    46

Sobre AlexanderS

Información de perfil

  • Sexo Hombre
  • Localización: Costa Rica

Configuraciones

  • Campo que utilizas como separador de argumentos ,

Visitantes recientes del perfil

3306 visitas de perfil
  1. AlexanderS

    Convertir Excel a un archivo .Txt

    @sretamalb esta en todo su derecho de realizar consultas en el foro, ya depende de las "buenas personas" si ayudan o no. @Leopoldo Blancas no entiendo tu preocupación, es decisión de cada usuario si quiere aprender o no, al igual que lo es si alguien quiere ayudar o no. Pudiste haber contestado simplemente que no podias... Al perecer tienes un problema con las "Buenas Personas" como yo?
  2. AlexanderS

    Convertir Excel a un archivo .Txt

    Hola @sretamalb, prueba el adjunto, el código tiene algunas indicaciones que espero puedas analizar . El archivo Txt se genera donde tengas guardado el archivo de excel con el nombre "Archivo.txt", esto lo puedes cambiar desde el código por el que gustes. Comentas, saludos. EXCEL.xlsm
  3. @nickmartinez, sucede lo siguiente, cuando cargas el formulario primero ejecutas un procedimiento para ingresar los encabezados de las columnas en el listbox, esos encabezados son básicamente el problema ya que en esta línea For I = 0 To .ListCount - 1, al iniciar desde la fila 0 estas ingresando el encabezado, la columna ID solo admite números pero le estas ingresando la palabra "ID". Para solucionar esto solo debes modificar la línea así: For I = 1 To .ListCount - 1 , con esto vamos a saltarnos los encabezados. Por otra parte si vas a manejar los datos directamente en la hoja de excel no veo necesidad de utilizar SQL (dadas sus limitaciones con respecto a Access o SQL Server), por ejemplo puedes sustituir ese código por este: Private Sub SQL_Registrar() Dim ult#, I# With Sheets("Productos") For I = 1 To Lista.ListCount - 1 ult = .Range("A" & .Rows.Count).End(xlUp).Row + 1 .Cells(ult, "A") = Lista.List(I, 0) .Cells(ult, "B") = Lista.List(I, 1) .Cells(ult, "C") = Lista.List(I, 2) .Cells(ult, "D") = Lista.List(I, 3) .Cells(ult, "E") = Lista.List(I, 4) .Cells(ult, "F") = ComboBox1.List(ComboBox1.ListIndex, 0) .Cells(ult, "G") = ComboBox2.List(ComboBox2.ListIndex, 0) .Cells(ult, "H") = Lista.List(I, 7) .Cells(ult, "I") = Lista.List(I, 8) Next End With End Sub Yo utilizaria SQL solo para realizar consultas, para agregar o modificar datos utilizaria el código nativo de VBA. Saludos.
  4. Hola @nickmartinez, cual es el mensaje de error que se genera, hay varias posibilidades. Una de ellas es esta : Este error resulta de la mala apertura de la conexión a la base de datos, puedes intentar cambiar Rs.Open Sql, Cnn, 1, 1 por Rs.Open sql, Cnn, 3, 3, adCmdText Tambien puede que estes ingresando texto en un campo numerico, tu código esta bien escrito (solo me queda la duda con las columnas MEDIDA y CATEGORIA), por lo que puede que el error sea de formato o bien lo que indique mas arriba. Saludos.
  5. Hola @Haplox, en esos casos yo utilizo el control Frame para crear grupos de controles y despues recorrer los mismos mas facilmente. Por ejemplo a la hora de crear un control lo coloco dentro de un frame Me.Frame1.Controls.Add("Forms.TextBox.1", "txtEjemplo") Y para recorrer los controles dentro de Frame algo así: For Eah Ctrl In Me.Frame1.Controls Next Saludos a todos.
  6. Hola @Antoni, yo lo haria utilizando variables en la misma formula. Saludos Ejemplo Fórmula.xlsm
  7. Hola @AlexanderS,

    Estoy haciendo una aplicación y utilice tu Procedimiento que pongo más abajo, lo que resulta es que en un libro nuevo si genera el Botón y el código en la hoja y en mi proyecto solo genera el Botón y el código en la hoja NO.  Sabras algo de incompatibilidad. Los libros están habilitados para macros.

    Private Sub Insert_Boton()
    Dim hoja As Object
    Dim m As Double
    Dim bt As Range
    Dim cTexto As String
    On Error Resume Next
    Set bt = Application.InputBox(Prompt:="Selecciona donde se creara el botón para llamar el formulario", Title:="By Riddle", Type:=8)
    
    Set hoja = ThisWorkbook.VBProject.VBComponents(bt.Parent.Name)
        With Sheets(bt.Parent.Name).OLEObjects.Add(classtype:="Forms.CommandButton.1", _
             Top:=bt.Top, Left:=bt.Left, _
             Height:=bt.Height * 2, Width:=bt.Width * 2)
             .Object.Caption = "Formulario"
             .Name = "boton" & "Leopoldo"
         End With
       
         With hoja.CodeModule
         cTexto = "Private Sub boton" & "Leopoldo" & "_Click()" & vbNewLine
         cTexto = cTexto & "    MsgBox """ & " Hola """ & vbNewLine
         cTexto = cTexto & "End Sub"
         .InsertLines .CountOfLines + 1, cTexto
         End With
     
    End Sub

    Saludos.

    NOTA: Lo que me queda hacer es pasar mis modulos  a un nuevo libro y veo si resulta, gracias.

    1. Leopoldo Blancas

      Leopoldo Blancas

      OK, Creo que el archivo estaba ya "Dañado", Copie módulos a un nuevo libro y ya quedo.

      Gracias y saludos.

    2. Leopoldo Blancas

      Leopoldo Blancas

      OK, Creo que el archivo estaba ya "Dañado", Copie módulos a un nuevo libro y ya quedo.

      Gracias y saludos.

  8. Ya estaba apunto de reponderte eso mismo. Saludos.
  9. Hola @chilaquil, revisa el código que te dejo, debes tener activa la referencia "Microsoft ActiveX Data Objects 6.1 Library", esto para que funcione el código. La Base de Datos debe estar en la misma carpeta que el archivo excel. Public Sub Exportar_Access() Set cn = CreateObject("ADODB.Connection") dbPath = Application.ActiveWorkbook.Path & "\Base de datos11.accdb" dbWb = Application.ActiveWorkbook.FullName dbWs = Application.ActiveSheet.Name scn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & dbPath dsh = "[" & Application.ActiveSheet.Name & "$]" cn.Open scn ssql = "DELETE FROM uno": cn.Execute ssql ssql = "INSERT INTO uno([Reg_Patr], [Num_Afil], [Tip_movs], [Fec_Inic], [Fec_Fin], [Fol_Inc]) " ssql = ssql & "SELECT * FROM [Excel 8.0;HDR=YES;DATABASE=" & dbWb & "]." & dsh cn.Execute ssql End Sub Comentas. Saludos
  10. AlexanderS

    CREAR MIS PROPIAS FECHAS

    Hola @paikerr, no veo necesario usar macros para esto. Si seleccionas la celda donde esta la fecha -> click derecho -> Formato de Celdas -> Personalizada, y colocas por ejemplo en el cuadro "tipo" lo siguiente : [$-040C]dddd mmmm yyy Crearas un formato de fecha personalizado donde [$-040C] indica el idioma Frances y dddd mmmm yyy el día mes y año en formato largo. [$-0410] Italiano [$-040C] Frances [$-0409] Ingles (U.S.) Otro Ejemplo: Comentas, saludos.
  11. AlexanderS

    separar texto en diferentes casillas

    Hola, parecido a la de Leopoldo, igualmente seleccionando el rango de celdas antes. Sub separar() Dim tx As Variant, celda As Range For Each celda In Selection tx = Split(celda, " ") Cells(celda.Row, celda.Column + 1).Resize(1, UBound(tx) + 1) = tx Next End Sub Saludos.
  12. AlexanderS

    Función contar sangría VBA

    Hola @joselopezitot tal como lo indica Héctor, excel no tiene forma de detectar un cambio en un formato, pero podemos valernos de algunos trucos como en tu caso donde insertas las sangrías con los botones de la cinta de opciones de excel. Este truco funciona utilizando el "Custom IU Editor", lo que haremos es interceptar el evento al presionar los botones para insertar o eliminar las sangrías para que ejecuten una macro y podamos re-calcular la hoja al presionar uno de estos 2 botones. Adjunto el ejemplo, me comentas. Saludos. Copia de SANGRÍA.xlsm
  13. AlexanderS

    Buscar registro en base access con un TextBox

    Hola @Pirtrafilla, te recomiendo leer un poco sobre lo básico de las consultas en SQL, puesto que si quieres trabajar con access utilizando ADO tendrás que utilizar SQL. Por el momento tomando en cuenta que no se la estructura de tu tabla "Tab_Procedimientos" , te dejo este código: Sub Prueba() Set rs = CreateObject("ADODB.Recordset") 'Indicamos en la consulta SQL, donde buscaremos en la columna "TuColumna" el valor del Textbox2 Sql = "Select * From Tab_Procedimientos where TuColumna =' & Texbox2 &'" 'Abrimos la conexión rs.Open Sql, Cnn, 3, 3, adCmdText 'Comprobamos si existe un registro If rs.EOF = False Then MsgBox "Existe" Else MsgBox "No Existe" End If 'cerramos la conexión rs.Close End Sub Ademas te dejo un pequeño ejemplo básico que había hecho para otro usuario con conexiones a Access, debes tener los dos archivos en la misma carpeta. Saludos. Ejemplo ADO.rar
  14. Hola @JSDJSD, modifica esta linea: Private Sub CommandButton3_Click() Dim Comentario As String For X = 0 To ListBox2.ListCount - 1 If ListBox2.Selected(X) Then Hoja2.Range("H" & ListBox2.List(X, 3)) = TextBox5.Value If TextBox4 <> "" Then Let Comentario = TextBox4.Value On Error Resume Next With Hoja2.Range("B" & ListBox2.List(X, 3)) .AddComment .Comment.Visible = False .Comment.Text Text:=Comentario End With End If End If Next CargarFacturas End Sub Y agrega estas nuevas: Private Sub ListBox2_Click() Dim comt As Range With Me.ListBox2 Set comt = Hoja2.Range("J:J").Find(.List(.ListIndex, 0), , , xlWhole) On Error Resume Next If Not comt Is Nothing Then Me.TextBox4 = Hoja2.Cells(comt.Row, "B").Comment.Text End With End Sub Comentas. Saludos.
  15. AlexanderS

    Cinta de Opciones Personalizada

    Hola @Haplox, se refiere a la galería de iconos integrados en Microsoft Office, los llamados imageMSO . Saludos.
×

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.