Jump to content

Haplox

Members
  • Content Count

    2,554
  • Joined

  • Last visited

  • Days Won

    79

Everything posted by Haplox

  1. Algo me sonaba... Mira a ver este aporte https://ayudaexcel.com/foro/files/file/108-registro-de-aserrío-entrada-de-madera/
  2. ¿has buscado en el foro? Porque me suena mucho que esto ya se trato en profundidad
  3. Al entrar a un nuevo foro, lo mejor es hacer una búsqueda: Además recuerdo que @Antoni subio algo más completo. A ver si se pasa y te puede echar una mano
  4. Si todo el código que ya tienes lo has hecho tú, esto debería haberte resultado fácil de resolver.... Utiliza el siguiente código en el botón del UserForm2 Private Sub CommandButton1_Click() Dim posidO$, posidD$ Dim cO As Range, cD As Range Dim fech As Date Dim uFA&, uFD& posidO = UserForm1.TextBox2 posidD = UserForm1.TextBox4 fech = CDate(UserForm1.TextBox7) uFA = Range("A" & Rows.Count).End(xlUp).Row Set cO = Range("B2:B" & uFA).Find(posidO, lookat:=xlWhole) cO = posidD With Sheets("POS ID Disponibles") uFD = .Range("B" & Rows.Count).End(xlUp).Row Set cD = .Range("B2:B" & uFD).Find(posidD, lookat:=xlWhole) cD = posidO cD.Offset(, 1) = fech End With UserForm2.Hide End Sub POS ID Control 1.xlsm
  5. De verdad que intetnto ayudarte, pero no sigo tu logica. Si tu archivo es real, no lo entiendo: hay op con horas de inicio y fin, otras solo con inicio o fin, y no veo la relacion entre diferentes producciones. O subes un ejemplo real con el resultado que pretendes y que se vea la logica, o me siento incapaz de ayudarte 😔
  6. Bueno, bueno... enseñalo ¿No?
  7. Creo que te entendí, pero una cosa... en tu fuchero tienes 6 producciones ¿Cada una por separado o uniéndolas todas? POrque, por ejemplo, en la producción 6 no tienes "op"
  8. @Romeo En tu archivo adjunto algún cálculo real de lo que necesitas y explica con qué celdas lo haces, porque viendo tu archivo no entiendo qué quieres hacer
  9. O no he entendido lo que necesitas, o para lo que pides te sobra todo ese código . Lo que yo he entendido es esto: Sub copiar_consolidado() Dim nom$, fech$, hor$, fich$ Application.ScreenUpdating = False nom = Sheets("PLANILLA").Cells(2, "d") fech = Format(Date, "dd-mm-yy") hor = Format(Time, "hh-mm-ss") fich = ThisWorkbook.Path & "\" & nom & "_" & fech & "_" & hor & " HRS" & ".xlsx" Sheets("CONSOLIDADO").Copy ActiveWorkbook.SaveAs (fich) ActiveWorkbook.Close End Sub
  10. Private Sub Workbook_BeforeClose(Cancel As Boolean) ActiveWindow.DisplayHeadings = True End Sub Private Sub Workbook_Open() ActiveWindow.DisplayHeadings = False End Sub Private Sub Workbook_SheetActivate(ByVal Sh As Object) ActiveWindow.DisplayHeadings = False End Sub
  11. Me alegro, pero desde luego te falta el codigo para cargar la imagen... Image1.Picture=LoadPicture(Fotografia)
  12. Tienes 2 opciones: - guardar las fotos en un directorio con el nombre del empleado, y al seleccionarlo que busque la foto en el directorio y la carge - tener la ruta en una celda de la linea del operario, y que al seleccionerlo carge la imagen del offset correspondiente al operario (la linea del operario y lla columna correspondiente)
  13. Pero... ¿Porqué no explicas CUÁL es tu problema? Por que no alcanzo a verlo, ni cómo o dónde estriba en tu fichero lleno de formularios
  14. Está muy bien subir el aqrchivo, pero si explicas algo sobre él y qué necesitas, pues a lo mejor se puede hacer algo . Por cierto, si piensas cobrar 40 pavos por programa y te solucionamos los problemas ¿Parte de las ventas serán para nosotros,no? 🤔
  15. ¿preguntas o afirmas? Si seria asi si te he entendido bien
  16. ¿Pero eso lo ejecutas desde una macro (el elegir la plantilla)? Pues entonces ese código iría en el botón: Private Sub OptionButton1_Click() If ComboBox1="Planilla1" Then Call macro1 End if
  17. Ni siquiera te haría falta el botón, el ejmplo para uno de ellos Private Sub ComboBox1_Change() If ComboBox1="Planilla1" Then Call macro1 End if
  18. ¿Pero dónde quieres ponerla, en el formulario? ¿Tienes el control Image en él? ¿Dónde están las fotos?... Aparte de todo esto no estaría mal que subieras tu archivo de ejemplo
  19. Yo te propondría que usases la función Find, declarando VALOR como range, con lo cual siempre puedes hayar su offset, Sub pasar_valor() Dim valor As Range Dim encontrar As String Dim r% encontrar = "INSTALACIONES GENERALES" Set valor = Range("A2:M500").Find(encontrar, lookat:=xlWhole) If Not valor Is Nothing Then For r = 0 To 2 Cells(valor.Row + r, valor.Column).Copy Sheets("SEMANAL PV1-PV3-PV5-M16").Cells(27, 9 - r) Next r Else MsgBox "No se encuentra INSTALACIONES GENERALES" Exit Sub End If End Sub
  20. debes validar el valor introducido en la celda (con enter, o pasando a otra celda, etc). No hay manera de que VBA vaya reconociendo los dígitos según los introduces (al estilo como sí se hace en un textbox)
  21. Private Sub Worksheet_Change(ByVal Target As Range) Dim i&, j& Dim caracter, item caracter = Array("$", "%", "&", "/", """", "=") If Intersect(Range("A:B"), Target) Is Nothing Then Exit Sub '----- SI LA CELDA FUESE UN NUMERO ----- If Target.Column = 1 And IsNumeric(Target) Then MsgBox "No se permiten neros" Exit Sub End If '----- SI LA CELDA CONTUVIESE UN NUMERO ----- For i = 1 To Len(Target) If IsNumeric(Mid(Target, i, 1)) Then Target = "" MsgBox "No se permiten neros" Exit Sub End If Next i '----- SI LA CELDA CONTIENE UN CARACTER ESPECIAL ----- If Target.Column = 2 Then For Each item In caracter For j = 1 To Len(Target) If Mid(Target, j, 1) = item Then Target = "" MsgBox "No se permiten caracteres especiales" Exit Sub End If Next j Next item End If End Sub
  22. Deberias comentar si es que no se paermite que la celda sea un numero, o si no se permite que contenga algun numero, tipo EJE3MPLO
  23. Te dejo una solución @merlyn333 Copia de presupuesto_semanal_2019.xlsm
  24. Deberías decirnos como funciona todo, pues cuando ejecuto "salto" solo consigo SEC1 y SEC2 vacíos 😳. En todo caso, si ya tienes las matrices SEC1 y SEC2, solo tienes que comparar los datos de SEC1 con los de SEC2, y los que no estén meterlos en otra matriz Dim item1, item2 Dim usados() As Long, h As Long Redim usados(1 to Ubound(SEC1)) For Each item1 in SEC1 For Each item2 in SEC2 If item1=item2 Then usados(h)=item2 h=h+1 End If Next item2 Next item1 Solo te faltaría hacer un Loop para las filas de tu tabla. Así, abote pronto. Si nos dices cómo funciona, se puede completar el código
×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 5112 personas - Aprender Excel - Total: 4.7 / 5