Buenas tardes @MANTONIOPM
Un gusto coincidir @Israel Cassales siempre muy interesantes sus participaciones.
Me permito "meter mi cucharita" para aclarar un tema que me parece importante: El objeto Range tiene dos propiedades importantes: Formula y FormulaLocal. Cuando usamos la primera, la fórmula se debe escribir siempre en inglés y cuando usamos la segunda, se escribe en el idioma que tiene instalado el usuario. Por eso en mis macros siempre uso Formula y las hago en inglés, porque así no me arriesgo a que no funcione en otras computadoras. Por lo tanto, no debería haber ningún problema con el idioma.
Por
DiegoPC, · publicado
Hola amigos!!!
Solicito su ayuda para realizar el siguiente trabajo:
1- Necesito concatenar desde hoja "OC" hacia hoja "Oferta_de_Compra":
B2 "-" E1
B2 "-" F1
B2 "-" G1
B2 "-" ....hasta V1
Posteriormente concatenar,
B43 "-" E42
B43 "-" F42
B43 "-" G42
B43 "-" ....hasta V42
Y así consecutivamente hasta finalizar el ciclo de 41 filas, esto pegar transpuesto y se forma consecutiva
en la columna "C" desde la fila 3 de la hoja "Oferta_de_Compra".
2. Posterior al ciclo de concatenación, ordenar de mayor a menor la columa "K" desde la tercera fila.
3. En la columna "M" desde la fila 3, colocar la palabra "IVA", según corresponda de acuerdo al llenado de las otras columnas.
4. Poner un N° correlativo a partir de 1 y en función del orden de la columna "K", es decir,:
- 1 para el primer grupo de la columna "K"
- 2 para el segundo grupo de la columna "K"
- y así sucesivamente.
Este es el código que tengo hasta ahora, pero necesito incluirle otras funciones:
Sub Datos()
'
Application.ScreenUpdating = False
Set h1 = Sheets("OC")
Set h2 = Sheets("oferta_de_compra")
'
u = h2.Range("E" & Rows.Count).End(xlUp).Row
If u = 2 Then u = 3
h2.Range("E3:K" & u).ClearContents
'
n = 0
For i = 3 To h1.Range("E" & Rows.Count).End(xlUp).Row
For j = 5 To 52
If h1.Cells(i, j) = "" Then Exit For
Next
'
h1.Range(h1.Cells(i, "E"), h1.Cells(i, j)).Copy
u2 = h2.Range("E" & Rows.Count).End(xlUp).Row + 1
h2.Cells(u2, "E").PasteSpecial Paste:=xlPasteValues, Transpose:=True
u3 = h2.Range("E" & Rows.Count).End(xlUp).Row ' ACA TERMINA EL CICLO PARA PEGAR LAS CURVAS
h2.Range(h2.Cells(u2, "K"), h2.Cells(u3, "K")) = h1.Cells(i, "A") ' ACA SE PEGAN LAS TIENDAS
h2.Range(h2.Cells(u2, "F"), h2.Cells(u3, "F")) = h1.Cells(i, "D") ' ACA SE PEGA EL PRECIO COSTO
n = n + 1
If n = 38 Then
i = i + 3
n = 0
End If
Next
Amigos por favor su ayuda!!!!
Planilla.rar