Macro para acomodar datos

22/07/2008 - 17:45 por Manny_90 | Informe spam
Que tal.

Mil disculpas por hacer el mensaje tan largo.
Me gustaria que me ayudaran a desarrollar una macro para acomosar una serie
de datos.
En la hoja 1 tengo esta informacion A1-LEVEL, B1-Item Number, C1-Ref Des,
D1-Qty, E1-Item Description. En la columna de Ref des tiene la lista de las
locaciones existentes de un numero de parte (R1, R2, R3, etc), lo que me
gustaria hacer es separar esa informacion , es decir, que la macro cree otra
hoja y acomode la misma informacion (apartir del numero de parte de nivel 0)
pero con los "REF DES" listados en los renglones correspondientes, es decir,
si son 10 ref des, que en la otra tabla agregue 10 renglones y acomode los
ref des con la misma informacion del numero de parte, el resultado seria mas
o menos como una base de datos. abajo hice una tabla de ejemplo y otra tabla
como me gustaria tener el resultado. Pueden tomar estos datos y pegarlos en
una hoja de calculo para que tengan mejor vision de la tabla.

OJO. Los Ref des pueden ser de diferentes letras como C, Q, L, incluso dos o
tres letras como LED1, LED2; Todos los datos estan separados por una coma. Y
notese tambien de que no tiene espacios.

Muchas gracias AMIGOS
Saludos desde Chihuahua Mexico


Level Item Number Ref Des Qty Item Description
0 SAA5966-07 1 SUB ASSY, SHADOWCAT MAIN BOARD
1 01-0000-C1 R126,R132,R143,R185,R186,R218,R258,R275,R276,R279 10 RES, 0.00,
0.1W, FILM, 0603
1 01-0000-D1 R28,R29,R31,R32,R33,R38,R40,R106,R108,R127,R150,R169,R239,R270,R272,R280 16 RES, 0.00, 0.0625W, FILM, 0402
1 01-0001-D1 R184 1 RES, 68.1K, 0.0625W, 1%, FILM, 0402
1 01-0004-A1 RP2,RP5,RP8,RP9,RP16 5 RES ARRAY, 33, 0.0625W, 5%, FILM, SM,
0402X4
1 01-0018-D1 R144 1 RES, 2.32K, 0.0625W, 1%, FILM, 0402
1 01-0024-D1 R213 1 RES, 40.2K, 0.0625W, 1%, FILM, 0402
1 01-0027-A1 RP11,RP12,RP13,RP14 4 RES ARRAY, 75, 0.0625W, 5%, FILM, SM,
0402X4, CONVEX
1 01-0034-F1 R68 1 RES, 0.035, 0.25W, 1%, FILM, 1206
1 01-0068-01 1 RES, 0.068, 1W, 1%, FILM, 2512
1 01-1000-01 R273 1 RES, 10, 0.25W, 5%, FILM, 1206
1 01-1000-B1 R161,R163,R167 3 RES, 10, 0.125W, 5%, FILM, 0805
1 01-1000-C1 R201 1 RES, 10, 0.1W, 5%, FILM, 0603



La informacion la quiero aarreglar para tener un resultado asi:

Level Item Number Ref Des Qty Item Description
0 SAA5966-07 1 SUB ASSY, SHADOWCAT MAIN BOARD
1 01-0000-C1 R126 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R132 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R143 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R185 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R186 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R218 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R258 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R275 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R276 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-C1 R279 1 RES, 0.00, 0.1W, FILM, 0603
1 01-0000-D1 R28 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R29 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R31 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R32 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R33 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R38 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R40 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R106 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R108 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R127 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R150 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R169 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R239 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R270 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R272 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0000-D1 R280 1 RES, 0.00, 0.0625W, FILM, 0402
1 01-0001-D1 R184 1 RES, 68.1K, 0.0625W, 1%, FILM, 0402
1 01-0004-A1 RP2 1 RES ARRAY, 33, 0.0625W, 5%, FILM, SM, 0402X4
1 01-0004-A1 RP5 1 RES ARRAY, 33, 0.0625W, 5%, FILM, SM, 0402X4
1 01-0004-A1 RP8 1 RES ARRAY, 33, 0.0625W, 5%, FILM, SM, 0402X4
1 01-0004-A1 RP9 1 RES ARRAY, 33, 0.0625W, 5%, FILM, SM, 0402X4
1 01-0004-A1 RP16 1 RES ARRAY, 33, 0.0625W, 5%, FILM, SM, 0402X4
 

Leer las respuestas

#1 Héctor Miguel
23/07/2008 - 01:20 | Informe spam
hola, !

el siguiente ejemplo "asume" que ha existe una "Hoja2", OJO que siempre se eliminan sus datos y se reemplazan por la macro:

Sub Lista_partes()
Dim Fila As Integer, Level As Byte, iNumber As String, RefDes As String, Qty As Integer, iDesc As String
With Worksheets("hoja2")
.Cells.Clear: .Range("a1:e1") = Array("Level", "Item Number", "Ref Des", "Qty", "Item Description")
End With
With Worksheets("hoja1")
For Fila = 2 To .Range("a65536").End(xlUp).Row
Level = .Range("a" & Fila)
iNumber = .Range("b" & Fila)
RefDes = .Range("c" & Fila)
Qty = .Range("d" & Fila)
iDesc = .Range("e" & Fila)
With Worksheets("hoja2")
With .Range("a65536").End(xlUp).Offset(1).Resize(Qty)
.Offset() = Level
.Offset(, 1) = iNumber
.Offset(, 2) = Application.Transpose(Split(RefDes, ","))
.Offset(, 3) = 1
.Offset(, 4) = iDesc
End With
End With
Next
End With
Worksheets("hoja2").Range("a1:e1").EntireColumn.AutoFit
End Sub

OJO: la funcion de vba "Split" requiere de VBA6 (excel 2000 en adelante)
si piensas utilizarla en la version 97 de excel (VBA5) deberas proveerla, poniendo al inicio de tu modulo lo siguiente:

#If Not VBA6 Then
Function Split(Cadena As String, Delimitador As String) As Variant
Split = Evaluate("{""" & Application.Substitute(Cadena, Delimitador, """,""") & """}")
End Function
#End If

si cualquier duda (o informacion adicional)... comentas ?
saludos,
hector.

En la hoja 1 tengo esta informacion A1-LEVEL, B1-Item Number, C1-Ref Des, D1-Qty, E1-Item Description.
En la columna de Ref des tiene la lista de las locaciones existentes de un numero de parte (R1, R2, R3, etc)
lo que me gustaria hacer es separar esa informacion... que la macro cree otra hoja y acomode la misma informacion
(apartir del numero de parte de nivel 0) pero con los "REF DES" listados en los renglones correspondientes
... si son 10 ref des, que en la otra tabla agregue 10 renglones y acomode los ref des con la misma informacion del numero de parte
el resultado seria mas o menos como una base de datos.
abajo hice una tabla de ejemplo y otra tabla como me gustaria tener el resultado.
Pueden tomar estos datos y pegarlos en una hoja de calculo para que tengan mejor vision de la tabla.

OJO. Los Ref des pueden ser de diferentes letras como C, Q, L, incluso dos o tres letras como LED1, LED2;
Todos los datos estan separados por una coma. Y notese tambien de que no tiene espacios (...)



<< ya sabes que las "tablas" usando espacios y tabulaciones NO "pasan" como quisieras en los lectores de noticias >> :-((

Preguntas similares