Jump to content

Recommended Posts

buenas, estoy tratando de reducir el tamaño del siguiente código

If InStr(1, c, "Out") Or InStr(1, c, "out") Then c.Value = "NS" Else c.Value = c.Value
        If InStr(1, c.Offset(0, 1), "Out") Or InStr(1, c.Offset(0, 1), "out") Then c.Offset(0, 1).Value = "NS" Else c.Offset(0, 1).Value = c.Offset(0, 1).Value
        If InStr(1, c.Offset(0, 2), "Out") Or InStr(1, c.Offset(0, 2), "out") Then c.Offset(0, 2).Value = "NS" Else c.Offset(0, 2).Value = c.Offset(0, 2).Value
        If InStr(1, c.Offset(0, 3), "Out") Or InStr(1, c.Offset(0, 3), "out") Then c.Offset(0, 3).Value = "NS" Else c.Offset(0, 3).Value = c.Offset(0, 3).Value

básicamente es reemplazar texto de una celda y hacer lo mismo en las 3 siguientes a la derecha, pero no se como poder juntar todo en una sola linea de código

 

 

por otra parte estoy tratando de hacer algo similar con replace

c.Replace What:="Hola", Replacement:="Adios"

pero me pasa que, cuando la celda no contiene el texto "Hola" excel me arroja un error que dice lo siguiente:

Cita

no hemos encontrado nada que reemplazar

nota: es posible que los datos que intentas cambiar se encuentren en una hoja protegida. excel no puede cambiar datos de hojas protegidas

 

espero que se entienda lo que trato de hacer

 

desde ya agradezco su ayuda

 

saludos!

Link to post
Share on other sites

Como dice el bueno de Haplox, "Está claro que no está claro".

Te dejo lo del If con lo que he entendido:

For y = 0 To 3
   Select Case True
      Case InStr(1, LCase(c.Offset(0, y)), "out"): c.Offset(0, y) = "NS"
   End Select
Next

 

Link to post
Share on other sites
En 21/1/2021 at 14:49 , Antoni dijo:

Como dice el bueno de Haplox, "Está claro que no está claro".

Te dejo lo del If con lo que he entendido:


For y = 0 To 3
   Select Case True
      Case InStr(1, LCase(c.Offset(0, y)), "out"): c.Offset(0, y) = "NS"
   End Select
Next

 

disculpen, me exprese mal, pero la respuesta de antoni sirvió a la perfección, muchas gracias es un genio

 

otra consulta, por ejemplo, en el for, si fuera de 0 a 100 el valor de y, como podría ingresar algo para que se me guarde la hoja cuando y valga 50, y luego al finalizar (con 100)

 

muchas gracias de nuevo

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Crear macros Excel

  • Posts

    • hola a todos. Vengo siguiendo desde hace tiempo este foro de forma puntual, pero creo que ya es hora de integrarse en este grupo. Llevo bastante tiempo ya mejorando mis conocimientos en Excel y pretendo seguir progresando. Ultimamente estoy avanzando en Power Query, Power Pivot y DAX. Creo que es un capítulo muy interesante. Espero aportar y colaborar con todos. Gracias por vuestro apoyo, por vuestro feedback y feliz semana.
    • hola a todos. Tengo un pequeño problema con una tabla dinámica. He creado una MEDIDA con DAX (ver hoja "iva con MEDIDA") que he utilizado en la tabla dinámica para que no me devuelva el Total general de la columna (celda D39) y esto lo hace correctamente con la medida que he insertado.Pero en la tabla dinámica no me devuelve el dato que busco obtener que se refiere a la columna D (llamada Tipo Cuota IVA).En la columna D (llamada Tipo cuota IVA) me devuelve siempre el tipo 100% ... pero sin embargo, en la tabla origen de datos "Pagos 2021" tengo varios tipos de cuota de IVA (21%, 10%, 4% y exento). Lo que pretendo es que me devuelva en la tabla dinámica el porcentaje correcto (21%, 10% o 4%) o bien 0% en caso de que se trate de "tipo exento".  Otra apreciación es que si existiese una forma capaz de devolver correctamente el tipo de IVA por cada proveedor, es que si por ejemplo supongamos que hay un proveedor que emitió 3 facturas con el tipo de IVA al 21% ... pues que devuelva una sola fila de ese proveedor pero QUE NO SUME 21% + 21% + 21% (3 veces) ... es decir, que sólo devuelva un tipo único de IVA al 21%. ¿alguien que me pueda ayudar? ... gracias td Compras y Gastos_medida.xlsx
    • buenos dias, Tengo una fórmula en Excel creada para que introduciendo un número en la celda A1, automáticamente me convierta ese número a LETRA (en texto) en la celda A2.Mi pregunta es ... ¿cómo se puede lograr que haga lo mismo pero, por ejemplo, en PORTUGUÉS y sin tener que modificar las preferencias del idioma desde Opciones de Excel? ... gracias por vuestros comentarios. convertir un Número a LETRA esp.xlsx
    • Hola a todos. Quería pediros ayuda con esta formula. Envío un archivo adjunto con dos hojas. En una hay un cuadrante de turnos y en la otra una lista de personas. Como es una prueba solo he puesto una persona inventada.  Lo que necesito es que en el listado de personas busque el ID de la persona en el cuadrante y si la fecha está marcada con una "X" o cualquier dato vaya al listado y en "Horas Teóricas" ponga "5". Si la fecha en el cuadrante está en blanco que ponga "0" horas. La fórmula hay que ponerla en la columna "C" de Listado. Creo que debo hacerlo con las funciones COINCIDIR y INDICE pero no me aclaro.  ¿podéis ayudarme? Gracias de antemano.       Prueba turnos.xlsx
    • Hola fíjate esto, recupere el cdata con esta ruta y despues lei ese xml y saque un dato que es una fecha, vos sabrás como sacar lo que necesitas puntualmente. Sub My_Example_Test()     Dim Dom As MSXML2.DOMDocument60     Set Dom = New MSXML2.DOMDocument60     Dom.Load "C:\Users\Windows\Downloads\ad08301097230342100195863.xml"     MsgBox Dom.ChildNodes.Item(1).ChildNodes(11).ChildNodes.Item(0).ChildNodes.Item(2).ChildNodes.Item(0).Text     Dom.LoadXML Dom.ChildNodes.Item(1).ChildNodes(11).ChildNodes.Item(0).ChildNodes.Item(2).ChildNodes.Item(0).Text     MsgBox Dom.ChildNodes.Item(1).ChildNodes.Item(7).ChildNodes.Item(0).Text End Sub  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy