Jump to content

andresandres83

Members
  • Content Count

    7
  • Joined

  • Last visited

About andresandres83

  • Rank
    Newbie
  • Birthday 09/09/1960
  1. En este foro [ VBA ] Common Controls 6.0 en Excel 2010 - Foros del Web puedes encontrar algo de luz e intentar buscar algo para modificar el registro de Windows. Parece que tiene que ver con la licencia de Visual Studio 6.0 y actualizaciones de seguridad del sistema para que funcionen objetos ActiveX. Si no tienes instalado Visual Studio 6.0 no podrás instalar estas actualizaciones.
  2. Muchas gracias a ambos. Si os parece podemos dar el tema por cerrado.
  3. Gracias por la respuesta. Son diferentes formas de interpretar el código. En realidad el código no devuelve la última fila vacía como bien dices, sino la última fila con datos (otra cosa es para qué lo uses tú después): si te fijas en las figuras que he enviado es así. Si no hay celdas con datos la respuesta lógica habría de ser (0). Evidentemente yo no lo entiendo como la mayoría y estoy equivocado pero me cuesta comprender que haya un mismos resultado (1) para dos situaciones diferentes. Yo lo tengo resuelto de esta manera, pero me fastidia perder el tiempo en una comprobación que sería innecesaria si el código pudiera devolver (0) fila = Range("A" & Rows.Count).End(xlUp).Row If TypeName(Range("A1").Value) = "Empty" Then fila = 0 fila = fila + 1 [/CODE]
  4. Hola, al buscar la primera celda vacía de una columna me surge un problemilla: el código Sub Macro1() Dim fila As Double 'la primera fila vacía será fila = Range("A" & Rows.Count).End(xlUp).Row 'la línea anterior da 1 si la primera celda está vacía y 'también si solo la primera tiene datos End Sub [/CODE] da como resultado [color=#ff0000][b]"1"[/b][/color] si la primera celda está vacía y también [color=#ff0000][b]"1"[/b][/color] si solo la primera tiene datos. A partir de que haya dos celdas da resultados coherentes. Os dejo tres imágenes para ilustrar esto. ¿Hay algo que se pueda hacer para que cuando no haya celdas esta comprobación arroje [b][color=#ff0000]"0"[/color][/b]? Naturalmente sin comprobaciones posteriores que hagan perder tiempo, tipo: [CODE]If TypeName(Range("A1")) = "Empty" Then fila = 0[/CODE]
  5. Si cambiamos la línea 16 con el método FINDNEXT Set Celda = .FindNext(Celda)[/CODE] por otro método FIND en el que ponemos [color=#ff0000]After:= Celda[/color] [CODE]Set Celda = .Find(What:="3333333333333333", _ After:=Celda, _ LookIn:=xlValues, _ SearchDirection:=xlNext, _ MatchCase:=True, _ LookAt:=xlPart)[/CODE] El código funciona y el primer Find se restablece [b][color=#ff0000]Tema resuelto[/color][/b]
  6. Hola, a ver si podéis echarme una mano con esto, os lo agradecería un montón: Tengo que hacer una primera búsqueda con FIND, hacer otra búsqueda y regresar de nuevo a la primera. Naturalmente la segunda búsqueda cambia los argumentos de FIND de forma que al regresar a la primera búsqueda esta no funciona. En el código siguiente si eliminamos la línea 14 que llama a OtraRutinaDeBusqueda todo funciona sin problemas pero si la mantenemos, el método FindNext de la siguiente línea 16 devuelve "Nothing". ¿Hay alguna forma de regresar a los valores de la línea 07? Si tras la línea 14 vuelvo a usar el FIND de la línea 07 no arreglo nada puesto que sólo consigo encontrar la siguiente ocurrencia y entro en un bucle infinito. Sub PrimeraRutinaDeBusqueda() Dim Enmascarado, DireccionInicial As String Dim Celda As Range With Columns(1) 'primera búsqueda Set Celda = .Find(What:="3333333333333333", _ LookIn:=xlValues, _ SearchDirection:=xlNext, _ MatchCase:=True, _ LookAt:=xlPart) If Not Celda Is Nothing Then DireccionInicial = Celda.Address Do Enmascarado = Replace(Celda.Value, "3333333333333333", "Nueva cadena") Cells(Celda.Row, Celda.Column + 1) = Enmascarado 'llamo a otra rutina donde realizo otra búsqueda Call SegundaRutinaDeBusqueda 'retorno a la primera búsqueda Set Celda = .FindNext(Celda) Loop While Not Celda Is Nothing And Celda.Address <> DireccionInicial End If End With End Sub Sub SegundaRutinaDeBusqueda() Dim OtraCelda As Range With Columns(1) 'segunda búsqueda Set OtraCelda = .Find(What:="OtraBusqueda", _ LookIn:=xlValues, _ SearchDirection:=xlNext, _ MatchCase:=True, _ LookAt:=xlPart) End With End Sub [/CODE] reiniciar find.zip
  7. Me llamo Andrés, uso Excel 2007 desde España
×
×
  • Create New...

Important Information

Privacy Policy