Jump to content

ST_

Members
  • Posts

    1,159
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by ST_

  1. Re: Cual fue tu primer post en AyudaExcel? a mi tambien me dio por 'recordar',ahora que ando nostalgico Solucionado - Insertar video en una hoja de Excel y que decir de mi 2º aporte que compartí con el amigo Ioyama: Solucionado - Convertir un string a long
  2. ok tomo nota pues parece que Mauricio a encontrado la forma de ganar cerca de 25 segundo de los 26 que tardaba la macro que oferte y que de igual forma proviene de la 'experiencia' de El.
  3. excelente ejemplo,creo que podria ser muy util el llevar un control de los archivos renombrados
  4. Re: Puede que sea fácil pero estoy perdida! - Búsqueda & Jerarquización por parámetro creo que hace falta muchas mas explicaciones !!!! lo que yo entendi y mis comentarios: 1.-obtener los datos en una nueva tabla de aquellos casos que tengan un dato mayor al 90%,que dicho sea de paso supongo que se refiere a la hoja "Resumen seleccion",pues no lo especificas,ya que de este lado del charlo las cosas se ven muy diferentes por la falta de claridad 2.-dado que ningun caso cubre el requisito de los 90s el resultado seria una tabla vacia 3.-mencionas que se debe ordenar de acuerdoa parametros de otra hoja pero no especificas cual hoja ni cuales parametros!!! con ello permites que cualquier posibilidad de ayuda quede extinguida 4.-supongo...que la macro creada es de la hoja "resumen-seleccion" ya que en el código no se especifica,lo que me hace suponer que tal vez hayas grabado la macro en esa hoja !!??? 5.-finalmente concluyo..tras largas horas de analisis y meditacion (por falta de presicion,detalles): que deseas que de la hoja "resumen-seleccion" se pasen los datos a la hoja "Matrz(necesidades)" ,pero solo de los casos que tengan 90% o mas en la columna "O" de la hoja "resumen-seleccion"??? de no ser asi ,valdria la pena que explicaras a detalle o como suelo decir con 'precision milimetrica' lo que pretendes lograr,ello redundará en que puedas obtener la respuesta deseada que tengas un bonito dia
  5. y mejor quien le atine a la respuesta....ok intentando........ existen 2 formas de hacerlo 1º.-mediante la funcion "Name" con algo asi para un archivo: Sub Renombrar_con_Name() 'http://www.rondebruin.nl/folder.htm [B][COLOR="red"]Name[/COLOR][/B] ThisWorkbook.Path & "\ejemplo.txt" As _ ThisWorkbook.Path & "\prueba.txt" End Sub[/CODE] [u][b][color=sienna]2º.-con los metodos move y copy o copyfile y movefile del objeto filesystemobjecto o mediante la propiedad name del mismo:[/color][/b][/u] [CODE]Sub Renombrar_con_FSO_Name() 'http://www.forosdelweb.com/f69/renombrar-fichero-277515/ Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(ThisWorkbook.Path & "\prueba.txt") f.[B][COLOR="red"]Name[/COLOR][/B] = "ejemplo.txt" 'nuevo nombre End Sub[/CODE] [CODE]Sub Renombrar_con_Movefile() Set fso = CreateObject("Scripting.FileSystemObject") fso.[B][COLOR="red"]MoveFile[/COLOR][/B] ThisWorkbook.Path & "\prueba.txt", ThisWorkbook.Path & "\ejemplo.txt" End Sub[/CODE] [CODE]Sub Renombrar_con_copyfile() 'el requisito es que sea otra ruta Set fso = CreateObject("Scripting.FileSystemObject") fso.[B][COLOR="red"]CopyFile[/COLOR][/B] ThisWorkbook.Path & "\prueba.txt", "C:\ejemplo.txt" End Sub[/CODE] [CODE]Sub Renombrar_con_copyfileII() 'crea una copia en la misma ruta Dim ArchivoOrigen, ArchivoDestino As String Set fs = CreateObject("Scripting.FileSystemObject") ArchivoOrigen = ThisWorkbook.Path & "\ejemplo.txt" ArchivoDestino = ThisWorkbook.Path & "\prueba.txt" fs.[COLOR="red"][B]CopyFile[/B][/COLOR] ArchivoOrigen, ArchivoDestino 'copia dejando el oroginal fs.Deletefile ArchivoOrigen 'elimina el original dejando la copia End Sub[/CODE] [CODE]Sub Renombrar_con_FSO_move2() 'ayuda de excel Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(ThisWorkbook.Path & "\ejemplo.txt") f.[B][COLOR="red"]Move[/COLOR][/B] ThisWorkbook.Path & "\prueba.txt" 'nuevo nombre End Sub[/CODE] [CODE]Sub Renombrar_con_FSO_Copy3() 'ayuda de excel Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(ThisWorkbook.Path & "\ejemplo.txt") f.[B][COLOR="red"]Copy[/COLOR][/B] ThisWorkbook.Path & "\prueba.txt" 'nuevo nombre f.Delete 'elimina el archivo original End Sub[/CODE] [color=red]por lo demas habria que traer la ruta de cada archivo mediante un bucle y la funcion "Dir" para que no haya problemas con la version 2007 de excel[/color] [u]para consultar[/u]: Manejo de Archivos en visual basic y Funciones propias VBA Express : Excel - Copying and Moving files of any type using Excel VBA Compile Error On: Scripting.FileSystemObject List files in a folder with Microsoft Scripting Runtime using VBA in Microsoft Excel Renombrar un archivo (Visual basic) | davidsuarez.es RENOMBRAR FICHEROS - Visual Basic
  6. a mi me parece que la mejor respuesta es la ofertada por mauricio y acordandome de un manejo especial que hizo(ya me corregiras si no le atino) ejemplo para que no queden formulas: Sub Obtiene_datos() With Range("C1:C21") .Formula = "=A1*B1" .Value = .Value End With End Sub[/CODE] me preguntaba cuantas veces habremos menospreciado a la "instrucción With" ??? tal vez pensabamos que servia para poco pero ahora vemos el verdadero poder de 'ella' al combinarse con la propiedad 'value'...solo ven la rapidez del calculo,yo lo probe en 14112 filas y si que vuela (tal vez en otro tipo de funciones tarde un poco mas,supongo que en parte dependerá de la cantidad de argumentos) lastima que no podamos ver el ejemplo de sara esperemos que este basado en la sugerencia de mauricio u otra mejor (si existe !!??) que tengan un buen dia
  7. Hola Josh.. aqui les dejo mi propuesta: partí la macro en 2 para mayor 'comprension/estudio' de la gente que se inicia en estos menesteres de las macros Sub Quita_Modo_Impresion() Application.ScreenUpdating = False Hoja2.Select Hoja2.Shapes.SelectAll: Selection.PrintObject = False Application.Wait (Now + TimeValue("0:00:01")) soloelegidas Hoja1.Select End Sub Sub soloelegidas() For i = 1 To Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row If Hoja1.Cells(i, 1) <> Empty Then Hoja2.Shapes("Oval " & i).Select Selection.PrintObject = True End If Next i Hoja2.PrintPreview End Sub[/CODE] y aquí el ejemplo para probar Muestra_ST.zip
  8. siempre es bueno darle un vistazo a los aportes 'viejos' del foro,te podrias topar con sorpresas Generar un MsgBox avisando con anticipacion alerta en excel cada 15 dias Programar tarea
  9. genial ese 'avatar'.....y el del 'chapulin colorado'(super heroe mexicano para quienes no sepan),.......alguien lo tiene
  10. ya probaste usar un bucle combinado con el metodo find o findnext?? o algo mas simple como esto: Sub busca() For Each c In Range("A2:A10000") If c.Value = "dato" Then c.Offset(, 1) = "encontrado" End If Next c End Sub[/CODE]
  11. 1.-click derecho en la pestaña de la hoja1 2.-ir a codigo 3.-copia-pega: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$1" Then Sheets(2).PrintOut End If End Sub[/CODE]
  12. gracias por la dedicatoria y por la 'extravagancia del archivo'
  13. a ver esta prueba !!!!!!! upssss,parece que me sumaré a lso "satisfechos" Ejemplo de menu.zip
  14. okis...gracias lo probaré en cuanrto denga un poco de 'calma' y tiempo
  15. una posible solucion: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$1" Or Target.Address = "$A$2" Or Target.Address = "$A$3" Then Hoja2.[a3] = Target.Value End If End Sub[/CODE]
  16. eso significa que resolviste el problema 'inicial' !! para usar variables hay que usar la instruccion "set" a efectode asignar una referencia de objeto(en esta caso un rango) a dicha varible,seria +/- así: Sub copiado() Set w = [d1:d16] 'rango a copiar Set x = [d22] 'rango destino w.Copy x 'copia pega End Sub[/CODE] en cuanto a este punto y a falta de la claridad solicitada inicialmente por este 'servidor',la forma de usar variables y de recorrer celdas como tu sabras es mediante 'bucles',como ejemplo [CODE]Sub recorre_celdas_by_ST() For i = 1 To 10 'filas de la 1 a la 10 If Left(Cells(i, 1), 2) = "ST" Then 'si tiene "ST" en sus 2 prim.letras MsgBox "la fila " & i & " tiene datos de ST " 'emite un mensaje End If 'fin de la condicion Next i 'siguiente elemento End Sub[/CODE] donde "i" es la varible 'númerica' ,que por cierto..ps no es un rango ........como tu pretendes usarlo !!! (espero equivicarme) en fin ya diras....pero te sigo recordando que la 'ausencia' de claridad en tus pretenciones podria retardar una 'posible' solucion a tu problema salu2
  17. hola: recordar que excel se maneja por filas y columnas y por lo tanto es necesario que: 1.-precises los rangos de tu información(tiempos de viaje,factores equivalentes,etc) 2.-precises a partir de que celda/rango deseas el copiado 3.-a falta de informacion (deberas adaptar por tu cuenta) prueba una macro como esta: Sub copiado() [b1:b16].Copy [b20] End Sub donde: [b1:b16].Copy .-es el rango a copiar,tambien se puede escribir como Range("b1:b16").Copy Range("b20") [b20].-es el rango destino o celda a partir de la cual se pegara la información
  18. una forma de aprovechar al maximo el espacio disponible en un formulario,es usar un control de paginas multiples(multipage) con el dispondras en cada pestaña de un espacio similar en "n" ocasiones(segun las paginas que necesites)
  19. je,je,je y luego dicen que yo soy el malo
  20. je,je,je....al cliente lo que pida: codigo que haga 'rezisable' (reajustable/redimensionable) un form (mmm...sin apis,por favor)
  21. hola,solo por variar: ActiveSheet.Shapes(1).TextFrame.Characters.Text = vbNewLine & "Esto tambien "
  22. solo agregar que para escribir no es necesario selecionar el cuadro de texto,tal cual lo muestra el codigo de Abraham
  23. Gracias Rolano,excelente idea para controlar los documentos de mi oficina
  24. interesante aporte Antoni,creo quede aqui se pueden sacar otros 'experimentos'
×
×
  • Create New...

Important Information

Privacy Policy