Ayuda

27/11/2007 - 15:41 por NB | Informe spam
necesito pasar este archivo a formato base de datos, debajo les muestro como
deberia quedar
A - 03#2498 2498 Open
"ARHANCET"
A - 56#2386 2386 Open
"ENCUADRE"
"ARHANCET33"
A - 03#2499 2498 Open
"ARHANCET"
"ARHANCET2"
"ARHANCET5"
A - 56#2386 2386 Open
"ENCUADRE"
-
A - 03#2498 2498 Open "ARHANCET"
A - 56#2386 2386 Open "ENCUADRE" "ARHANCET33"
A - 03#2499 2498 Open "ARHANCET" "ARHANCET2" "ARHANCET5"
A - 56#2386 2386 Open "ENCUADRE"

intente con esta macro pero, falta algo

Sub zangg()
'
Range("A2").Select
For f = 1 To 10
If InStr(Cells(f, 1), "#") = 0 Then
Selection.Copy
ActiveCell.Offset(-1, 3).Range("A1").Select
ActiveSheet.Paste
End If
Next
End Sub

Preguntas similare

Leer las respuestas

#1 David
27/11/2007 - 16:27 | Informe spam
Te aconsejaría modificar un poco tu código. Primero, podría ser que alguna
vez no tuvieras 10 datos (en el ejemplo que expones son 11 filas...), por lo
que te recomiendo no utilizar ciclos For. Cámbialos por Do-Loop. Mira si te
funciona el código que te propongo, y comentas cómo resulta en tu caso:

Sub zangg()
Dim x As String, f As Long, fa As Long

f = 1
fa = 1
Do
If InStr(Cells(f, 1), "#") = 0 Then
x = x & Cells(f, 1).Value & " "
Else
Cells(fa, 4).Value = x
x = ""
fa = f
End If
f = f + 1
Loop Until Len(Cells(f, 1).Value) = 0
Cells(fa, 4).Value = x

End Sub


Luego, necesitarás eliminar las filas que moviste para la cuarta columna:

Sub EliminarFilas()
Dim f As Long
f = 1
Do
If InStr(Cells(f, 1).Value, "#") = 0 Then
Cells(f, 1).EntireRow.Delete
Else
f = f + 1
End If
Loop Until Len(Cells(f, 1).Value) = 0
End Sub

Saludos...



"NB" escribió:

necesito pasar este archivo a formato base de datos, debajo les muestro como
deberia quedar
A - 03#2498 2498 Open
"ARHANCET"
A - 56#2386 2386 Open
"ENCUADRE"
"ARHANCET33"
A - 03#2499 2498 Open
"ARHANCET"
"ARHANCET2"
"ARHANCET5"
A - 56#2386 2386 Open
"ENCUADRE"
-
A - 03#2498 2498 Open "ARHANCET"
A - 56#2386 2386 Open "ENCUADRE" "ARHANCET33"
A - 03#2499 2498 Open "ARHANCET" "ARHANCET2" "ARHANCET5"
A - 56#2386 2386 Open "ENCUADRE"

intente con esta macro pero, falta algo

Sub zangg()
'
Range("A2").Select
For f = 1 To 10
If InStr(Cells(f, 1), "#") = 0 Then
Selection.Copy
ActiveCell.Offset(-1, 3).Range("A1").Select
ActiveSheet.Paste
End If
Next
End Sub

Respuesta Responder a este mensaje
#2 NB
27/11/2007 - 18:12 | Informe spam
Perdona mi ignorancia, pero no me las deja en blanco queda la leyenda,
como la borro

"David" wrote:

Te aconsejaría modificar un poco tu código. Primero, podría ser que alguna
vez no tuvieras 10 datos (en el ejemplo que expones son 11 filas...), por lo
que te recomiendo no utilizar ciclos For. Cámbialos por Do-Loop. Mira si te
funciona el código que te propongo, y comentas cómo resulta en tu caso:

Sub zangg()
Dim x As String, f As Long, fa As Long

f = 1
fa = 1
Do
If InStr(Cells(f, 1), "#") = 0 Then
x = x & Cells(f, 1).Value & " "
Else
Cells(fa, 4).Value = x
x = ""
fa = f
End If
f = f + 1
Loop Until Len(Cells(f, 1).Value) = 0
Cells(fa, 4).Value = x

End Sub


Luego, necesitarás eliminar las filas que moviste para la cuarta columna:

Sub EliminarFilas()
Dim f As Long
f = 1
Do
If InStr(Cells(f, 1).Value, "#") = 0 Then
Cells(f, 1).EntireRow.Delete
Else
f = f + 1
End If
Loop Until Len(Cells(f, 1).Value) = 0
End Sub

Saludos...



"NB" escribió:

> necesito pasar este archivo a formato base de datos, debajo les muestro como
> deberia quedar
> A - 03#2498 2498 Open
> "ARHANCET"
> A - 56#2386 2386 Open
> "ENCUADRE"
> "ARHANCET33"
> A - 03#2499 2498 Open
> "ARHANCET"
> "ARHANCET2"
> "ARHANCET5"
> A - 56#2386 2386 Open
> "ENCUADRE"
> -
> A - 03#2498 2498 Open "ARHANCET"
> A - 56#2386 2386 Open "ENCUADRE" "ARHANCET33"
> A - 03#2499 2498 Open "ARHANCET" "ARHANCET2" "ARHANCET5"
> A - 56#2386 2386 Open "ENCUADRE"
>
> intente con esta macro pero, falta algo
>
> Sub zangg()
> '
> Range("A2").Select
> For f = 1 To 10
> If InStr(Cells(f, 1), "#") = 0 Then
> Selection.Copy
> ActiveCell.Offset(-1, 3).Range("A1").Select
> ActiveSheet.Paste
> End If
> Next
> End Sub
>
Respuesta Responder a este mensaje
#3 David
28/11/2007 - 15:39 | Informe spam
Disculpa, NB. Ahora soy yo el que no logro captar la idea de tu consulta.

¿A qué te refieres con "leyenda"?

¿Probaste el segundo código (sub EliminarFilas)?



"NB" escribió:

Perdona mi ignorancia, pero no me las deja en blanco queda la leyenda,
como la borro

"David" wrote:

> Te aconsejaría modificar un poco tu código. Primero, podría ser que alguna
> vez no tuvieras 10 datos (en el ejemplo que expones son 11 filas...), por lo
> que te recomiendo no utilizar ciclos For. Cámbialos por Do-Loop. Mira si te
> funciona el código que te propongo, y comentas cómo resulta en tu caso:
>
> Sub zangg()
> Dim x As String, f As Long, fa As Long
>
> f = 1
> fa = 1
> Do
> If InStr(Cells(f, 1), "#") = 0 Then
> x = x & Cells(f, 1).Value & " "
> Else
> Cells(fa, 4).Value = x
> x = ""
> fa = f
> End If
> f = f + 1
> Loop Until Len(Cells(f, 1).Value) = 0
> Cells(fa, 4).Value = x
>
> End Sub
>
>
> Luego, necesitarás eliminar las filas que moviste para la cuarta columna:
>
> Sub EliminarFilas()
> Dim f As Long
> f = 1
> Do
> If InStr(Cells(f, 1).Value, "#") = 0 Then
> Cells(f, 1).EntireRow.Delete
> Else
> f = f + 1
> End If
> Loop Until Len(Cells(f, 1).Value) = 0
> End Sub
>
> Saludos...
>
>
>
> "NB" escribió:
>
> > necesito pasar este archivo a formato base de datos, debajo les muestro como
> > deberia quedar
> > A - 03#2498 2498 Open
> > "ARHANCET"
> > A - 56#2386 2386 Open
> > "ENCUADRE"
> > "ARHANCET33"
> > A - 03#2499 2498 Open
> > "ARHANCET"
> > "ARHANCET2"
> > "ARHANCET5"
> > A - 56#2386 2386 Open
> > "ENCUADRE"
> > -
> > A - 03#2498 2498 Open "ARHANCET"
> > A - 56#2386 2386 Open "ENCUADRE" "ARHANCET33"
> > A - 03#2499 2498 Open "ARHANCET" "ARHANCET2" "ARHANCET5"
> > A - 56#2386 2386 Open "ENCUADRE"
> >
> > intente con esta macro pero, falta algo
> >
> > Sub zangg()
> > '
> > Range("A2").Select
> > For f = 1 To 10
> > If InStr(Cells(f, 1), "#") = 0 Then
> > Selection.Copy
> > ActiveCell.Offset(-1, 3).Range("A1").Select
> > ActiveSheet.Paste
> > End If
> > Next
> > End Sub
> >
Respuesta Responder a este mensaje
#4 NB
28/11/2007 - 20:43 | Informe spam
Ahora me queda asi, debo eliminar estas filas // eliminar
columna 1 columna2 columna3
A - 03#2498 2498 Open "ARHANCET"
"ARHANCET" // eliminar
A - 56#2386 2386 Open "ENCUADRE"
"ENCUADRE"// eliminar
"ARHANCET33"// eliminar
A - 03#2499 2498 Open "ARHANCET ARHANCET2"
"ARHANCET"// eliminar
A - 56#2386 2386 Open "ENCUADRE"


"David" wrote:

Te aconsejaría modificar un poco tu código. Primero, podría ser que alguna
vez no tuvieras 10 datos (en el ejemplo que expones son 11 filas...), por lo
que te recomiendo no utilizar ciclos For. Cámbialos por Do-Loop. Mira si te
funciona el código que te propongo, y comentas cómo resulta en tu caso:

Sub zangg()
Dim x As String, f As Long, fa As Long

f = 1
fa = 1
Do
If InStr(Cells(f, 1), "#") = 0 Then
x = x & Cells(f, 1).Value & " "
Else
Cells(fa, 4).Value = x
x = ""
fa = f
End If
f = f + 1
Loop Until Len(Cells(f, 1).Value) = 0
Cells(fa, 4).Value = x

End Sub


Luego, necesitarás eliminar las filas que moviste para la cuarta columna:

Sub EliminarFilas()
Dim f As Long
f = 1
Do
If InStr(Cells(f, 1).Value, "#") = 0 Then
Cells(f, 1).EntireRow.Delete
Else
f = f + 1
End If
Loop Until Len(Cells(f, 1).Value) = 0
End Sub

Saludos...



"NB" escribió:

> necesito pasar este archivo a formato base de datos, debajo les muestro como
> deberia quedar
> A - 03#2498 2498 Open
> "ARHANCET"
> A - 56#2386 2386 Open
> "ENCUADRE"
> "ARHANCET33"
> A - 03#2499 2498 Open
> "ARHANCET"
> "ARHANCET2"
> "ARHANCET5"
> A - 56#2386 2386 Open
> "ENCUADRE"
> -
> A - 03#2498 2498 Open "ARHANCET"
> A - 56#2386 2386 Open "ENCUADRE" "ARHANCET33"
> A - 03#2499 2498 Open "ARHANCET" "ARHANCET2" "ARHANCET5"
> A - 56#2386 2386 Open "ENCUADRE"
>
> intente con esta macro pero, falta algo
>
> Sub zangg()
> '
> Range("A2").Select
> For f = 1 To 10
> If InStr(Cells(f, 1), "#") = 0 Then
> Selection.Copy
> ActiveCell.Offset(-1, 3).Range("A1").Select
> ActiveSheet.Paste
> End If
> Next
> End Sub
>
Respuesta Responder a este mensaje
#5 David
29/11/2007 - 00:58 | Informe spam
Eso es lo que hace el segundo procedimiento que te propongo:

Sub EliminarFilas()
Dim f As Long
f = 1
Do
If InStr(Cells(f, 1).Value, "#") = 0 Then
Cells(f, 1).EntireRow.Delete
Else
f = f + 1
End If
Loop Until Len(Cells(f, 1).Value) = 0
End Sub

Observa que en él, siguiendo tu sugerencia, busco las filas donde el primer
dato no contenga un signo #, y las elimino. Pruébalo. Debes ejecutarlo
después del primero.

Saludos.



"NB" escribió:

Ahora me queda asi, debo eliminar estas filas // eliminar
columna 1 columna2 columna3
A - 03#2498 2498 Open "ARHANCET"
"ARHANCET" // eliminar
A - 56#2386 2386 Open "ENCUADRE"
"ENCUADRE"// eliminar
"ARHANCET33"// eliminar
A - 03#2499 2498 Open "ARHANCET ARHANCET2"
"ARHANCET"// eliminar
A - 56#2386 2386 Open "ENCUADRE"


"David" wrote:

> Te aconsejaría modificar un poco tu código. Primero, podría ser que alguna
> vez no tuvieras 10 datos (en el ejemplo que expones son 11 filas...), por lo
> que te recomiendo no utilizar ciclos For. Cámbialos por Do-Loop. Mira si te
> funciona el código que te propongo, y comentas cómo resulta en tu caso:
>
> Sub zangg()
> Dim x As String, f As Long, fa As Long
>
> f = 1
> fa = 1
> Do
> If InStr(Cells(f, 1), "#") = 0 Then
> x = x & Cells(f, 1).Value & " "
> Else
> Cells(fa, 4).Value = x
> x = ""
> fa = f
> End If
> f = f + 1
> Loop Until Len(Cells(f, 1).Value) = 0
> Cells(fa, 4).Value = x
>
> End Sub
>
>
> Luego, necesitarás eliminar las filas que moviste para la cuarta columna:
>
> Sub EliminarFilas()
> Dim f As Long
> f = 1
> Do
> If InStr(Cells(f, 1).Value, "#") = 0 Then
> Cells(f, 1).EntireRow.Delete
> Else
> f = f + 1
> End If
> Loop Until Len(Cells(f, 1).Value) = 0
> End Sub
>
> Saludos...
>
>
>
> "NB" escribió:
>
> > necesito pasar este archivo a formato base de datos, debajo les muestro como
> > deberia quedar
> > A - 03#2498 2498 Open
> > "ARHANCET"
> > A - 56#2386 2386 Open
> > "ENCUADRE"
> > "ARHANCET33"
> > A - 03#2499 2498 Open
> > "ARHANCET"
> > "ARHANCET2"
> > "ARHANCET5"
> > A - 56#2386 2386 Open
> > "ENCUADRE"
> > -
> > A - 03#2498 2498 Open "ARHANCET"
> > A - 56#2386 2386 Open "ENCUADRE" "ARHANCET33"
> > A - 03#2499 2498 Open "ARHANCET" "ARHANCET2" "ARHANCET5"
> > A - 56#2386 2386 Open "ENCUADRE"
> >
> > intente con esta macro pero, falta algo
> >
> > Sub zangg()
> > '
> > Range("A2").Select
> > For f = 1 To 10
> > If InStr(Cells(f, 1), "#") = 0 Then
> > Selection.Copy
> > ActiveCell.Offset(-1, 3).Range("A1").Select
> > ActiveSheet.Paste
> > End If
> > Next
> > End Sub
> >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida