Jump to content

Antoni

Members
  • Content Count

    10,113
  • Joined

  • Last visited

  • Days Won

    548

Everything posted by Antoni

  1. Así te ahorras incluso escribir los meses: Private Sub ComboBox1_Change() TextBox1 = "" If ComboBox1.ListIndex > -1 Then TextBox1 = Day(DateAdd("m", 1, CDate("1/" & ComboBox1.ListIndex + 1 & "/" & Year(Date))) - 1) End If End Sub Private Sub UserForm_Initialize() For x = 1 To 12 ComboBox1.AddItem UCase(Left(MonthName(x), 1)) & Mid(MonthName(x), 2) Next End Sub Private Sub CommandButton1_Click() Unload Me End Sub
  2. ¿Y esto que se supone que es? 🤔🤔🤔 Public Sub Worksheet_Selection_Change(ByVal Target As Range)
  3. Vale más tarde que nunca, esto vale incluso para los años bisiestos. Private Sub ComboBox1_Change() TextBox1 = "" If ComboBox1.ListIndex > -1 Then TextBox1 = Day(DateAdd("m", 1, CDate("1/" & ComboBox1.ListIndex + 1 & "/" & Year(Date))) - 1) End If End Sub 🙂
  4. Sub Macro2() Dim Fila As Long Dim H1 As Worksheet Dim H2 As Worksheet Dim H3 As Worksheet '-- Application.ScreenUpdating = False 'Evita el parpadeo Set H1 = Sheets("FICHA") Set H2 = Sheets("BD") Set H3 = Sheets("RESUMEN") '-- BD Fila = H2.Range("B" & Rows.Count).End(xlUp).Row + 1 H2.Range("B" & Fila) = H1.Range("K9") 'Número reserva H2.Range("C" & Fila) = H1.Range("B4") 'Tipo reserva H2.Range("D" & Fila) = H1.Range("I6") 'Emitido H2.Range("E" & Fila) = H1.Range("C9") 'Nombre del grupo H2.Range("F" & Fila) = H1.Range("J5") 'Estado de la reserva H2.Range("B6:K" & Fila).Sort Key1:=H2.Columns("B") '-- RESUMEN Fila = H3.Range("B" & Rows.Count).End(xlUp).Row + 1 H3.Range("B" & Fila) = H1.Range("K9") 'Número reserva H3.Range("C" & Fila) = H1.Range("B4") 'Tipo reserva H3.Range("D" & Fila) = H1.Range("I6") 'Emitido H3.Range("E" & Fila) = H1.Range("C9") 'Nombre del grupo H3.Range("F" & Fila) = H1.Range("J5") 'Estado de la reserva H3.Range("B6:K" & Fila).Sort Key1:=H3.Columns("B") '-- H1.Activate H1.Range("B4:K4").ClearContents H1.Range("B2").Select End Sub
  5. Ya está revisado, salvo error u omisión, el formulario adjunto es la fusión de todos los demás. 🙂 Contar2.xlsm
  6. Falta revisar, pero esta sería la idea. Si te convence, mañana lo termino de pulir. Contar2.xlsm
  7. Me da la impresión que se llena alguna pila de eventos de tanto Unload Me y .Show. Prueba añadiendo la sentencia DoEvents después de cada Unload Me, a ver si se soluciona. Lo suyo sería hacerlo todo en un único formulario a base de motrar/ocultar frames. Mañana si tengo un hueco te subo un ejemplo de lo que quiero decir, mientras, prueba lo que te he comentado.
  8. Pues a mi no me funciona, en Europa utilizamos la coma como separador decimal, en cualquier caso, no tiene sentido convertir a doble una variable que ya está definida como doble y se acumula convirtiendo a doble los textbox, definiendo las variables como moneda se arregla el problema . Imagino que es un problema de precisión a la hora de convertir. (¿?) Otra forma sería convertir a moneda antes de comparar Vendes = CCur(Vendes) Mitxans = CCur(Mitxans) que es mas o menos lo que haces tú, o sea eliminar a partir del tercer decimal. X1 = CDbl(Format(Vendes, "#.00")) '<<<<<<------------ X2 = CDbl(Format(Mitxans, "#.00")) '<<<<<<------------ Se agradece el interés y la dedicación.🙂🙂
  9. Hola a todos: Abrir el adjunto y pulsar el botón Registrar en el formulario que se muestra. ¿Porque aparece el mensaje si la condición que controla el mensaje no se cumple? Gracias anticipadas. Descuadre.xlsm
  10. La macro ya hace todo lo que estás pidiendo, si se trata de una modificación, en la columna N se registra la fecha y la hora. Solo tienes que preguntar por esa columna, si está informada, es una liquidación, por el contrario, si está vacía se trata de una previsión.
  11. Es que soy daltónico, detecto el color "marrón" a la legua, jajaja............😂😂😂
  12. ¡Dios mío, que carácter! Con poner Me.Zoom = 85 en el evento Initialize del formulario se acaba el problema, ¡Ale!, ya no tienes excusa.😂😂😂
  13. Suponiendo que el archivo y las imágenes están en la misma carpeta y son jpg. Sub InsertarImágenes() Application.ScreenUpdating = False Set FSO = CreateObject("Scripting.FileSystemObject") Set Folder = FSO.GetFolder(ThisWorkbook.Path) 'Carpeta Imágenes For Each File In Folder.Files If LCase(Right(File, 3)) = "jpg" Then x = x + 1 Do Until Range("A" & x) = "": x = x + 1: Loop Range("A" & x).Select ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & File.Name).Select Rows(x).RowHeight = Selection.Height End If Next End Sub
  14. Define una variable como Public en un módulo y podrás usarla donde te interese.
  15. Lo más adecuado para este caso es utilizar la función Dir() para comprobar si el archivo existe o no: If Dir(nombre de archivo) = Empty Then 'El archivo no existe
  16. Serías hasta gracioso si no fueras tan patético. 😂😂😂
  17. Y además pretendes que contestemos a tus preguntas sin ver el archivo, difícil o tienes.
  18. Private Sub ComboBox5_Change() Range("I16") = CDbl(ComboBox5) End Sub Da formato porcentaje a la celda I16.
  19. Abre el adjunto y pulsa sobre la flecha azul. Ejemplo.xlsm
  20. Tanto te cuesta intentar entender el código, basta con poner un poco de interés, se trata de repetir estas 2 líneas para cada una de las columnas que desees: x.Sheets("RV").Range("B1:B" & ufila1).Copy y.Sheets("Hoja1").Range("A1").PasteSpecial Y no, no voy a modificarte la macro a menos que subas un archivo con un ejemplo práctico de lo que quieres.
  21. Pulsa cualquier celda de la columna H a partir de la celda 6 y mira si es eso lo que quieres. Lista de validación múltiple.xlsm
  22. El resultado del método Range.Find es un objeto range de una sola celda. Cuando asignas un objeto es necesario utilizar la instrucción Set para diferenciar cuando te refieres al objeto o a su valor. Si no se encuentra la celda en el rango buscado devuelve Nothing en el resultado. Y no, no es Excel quien te juega malas pasadas, es tu cerebro por falta de tequila. 😂
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png