Excel - Usar una macro en excel

 
Vista:

Usar una macro en excel

Publicado por Jorge Luis  (2 intervenciones) el 05/12/2009 02:37:56
Hola, como puedo hacer una macro que haga lo siguiente:
Ejemplo:

A B
Codigo Item
M1 1
M1 2
M1 3
M1 4
M1 5
M2 1
M2 2
M2 3
M3 1

Que lea el dato de la Columna Codigo y coloque en la columna Item automaticamente 1 y así sucesivamente hasta que encuentre otro dato diferente en este caso M1 y nuevamente comience en 1 hasta que halle otro valor y así sucesivamente.

Gracias por el apoyo

Jorge
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Usar una macro en excel

Publicado por jcs (494 intervenciones) el 05/12/2009 11:05:57
Muy buenas,

mira a ver si, sin necesidad de macros, te sirve esto:

- suponiendo que partas de A1 y B1. Pones un 1 en B1.
- En B2 colocas esta fórmula: =SI(A2=A1;B1+1;1)
- arrastra hacia abajo.

Un saludo. Juanjo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

SolucionUsarUnaMacroEnExcel

Publicado por Adriano Torres (29 intervenciones) el 12/12/2009 01:16:38
QUE HAY JORGE LUIS:

Resolver ese problemilla tuyo no fue tan fácil como pensé pero aquí lo tienes, una macro para que hagas eso que deseas :

Para utilizarla :

- Abre el editor de visual basic, oprime ALT+F11
- Inserta un modulo y pega esta código

Sub SacaItem()
'Pregunta al usuario el rango de celdas a trabajar
miRango = InputBox("Escribe el rango de celdas a trabajar")
'Asugna la hoja activa a una variable
Set miHoja = Worksheets("Hoja1")
'Inici la variable contadora en 1
cont = 1
'Ciclo para recorrer todo el rango
For Each c In miHoja.Range(miRango)
'De cada dato en celda extrae la parte numérica
For i = 1 To Len(c.Value)
char = Mid(c.Value, i, 1)
If IsNumeric(char) Then
num = num & char
End If
Next i
'Compara si el contador es 1, inicia la numeración en celda
'de lo contrario va comparando la parte numérica actual con la anterior
'para ir numerando si son iguales y si son diferentes reinicia el contador a 1
If cont = 1 Then
Cells(c.Row, c.Column + 1) = cont
Else
If num = antnum Then
Cells(c.Row, c.Column + 1) = cont
Else
cont = 1
Cells(c.Row, c.Column + 1) = cont
End If
End If
antnum = num
num = Empty
cont = cont + 1
Next c
End Sub

COMENTARIOS:

- Los datos que utilicé los puse en la columna A y apartir de la fila 2.
- La macro te preguntará que rango deseas trabajar, debiendo escribir, por ejemplo, A2:A10.
- Listo, colocará en la columna B la numeración tal y como lo necesitas.
- En caso de cambies los datos a otra columna no necesitas cambiar nada de la macro, ya que no trabaja con referencias a celdas del tipo A1, B6, etc. usa referencias del tipo Cells(Fila,Columna); solo basta ingresar correctamente el rango.

SALUDOS Y COMENTA SI TE SIRVIÓ O CUALQUIER DUDA

ADRIANO TORRES
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar