Como ordenar información con coincidencia parcial?
-
28 ¿Te parecen útiles los tips de las funciones? (ver tema completo)
-
1. ¿Te parecen útiles los tips de las funciones?
-
Sí
-
No
-
Ni me he fijado en ellos
-
- Please sign in or register to vote in this poll.
- View topic
-
-
Ayúdanos a mejorar la comunidad
-
Mantenimiento de la comunidad
Objetivo: 130.00 EUR
-
-
Files
-
Download Statistics
-
Files150
-
Comments87
-
Reviews25
-
-
Posts
-
By juanfamilia · Posted
Equipo buenas noches, espero esten bien. Soy nuevo en este mundo del vba de excel. En sintesis mi proyecto es crear estados de cuenta para clientes, para ello disene en excel un estado de cuenta, ahora toca salvar en pdf, esa parte esta lista para un solo documento, pero tengo un data validation list con todos mis clientes, la idea es que se cree un loop que vaya nombre por nombre de la lista y me salve un pdf por cada cliente en una ruta previamente definida. les dejo el codigo que tengo hasta el momento para ver si me pueden ayudar: Option Explicit Sub GuardarEstado() Dim nombredearchivo As String Dim NombreHoja As String Dim HojaDestino As Range Dim NuevaFila As Integer Dim i As Integer Dim j As Integer Dim NumFactura As String Dim Ruta As String Dim dataValidationCell As Range Dim dataValidationListSource As Range Dim dvValueCell As Range Dim lastrow As Range NombreHoja = "Log" NumFactura = ThisWorkbook.Sheets("Estado").Range("ValCliente").Value nombredearchivo = "Estado" Ruta = "C:\Users\jfamilia\Desktop\archivos bck\Archivos Clinimed\Archivos\Estados de cuentas" Worksheets("Estado").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ Ruta & "\" & "Estado De Cuenta-" & NumFactura & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True '----- Defining Variables With ThisWorkbook.Sheets(NombreHoja) For i = 1 To 1 Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("A1").CurrentRegion NuevaFila = HojaDestino.rows.Count + 1 .Cells(NuevaFila, 1).Value = Date .Cells(NuevaFila, 2).Value = Range("ValCliente").Value .Cells(NuevaFila, 3).Value = Range("ValCodigo").Value .Cells(NuevaFila, 4).Value = Range("ValCorte").Value .Cells(NuevaFila, 5).Value = Range("ValBalance").Value .Cells(NuevaFila, 6).Value = Range("ValAtraso").Value .Cells(NuevaFila, 7).Value = Range("ValFacVen").Value Next i End With MsgBox "Alta exitosa", vbInformation, "EXCELeINFO" End Sub -
Buenas, @DeadGoreRed Entiendo que ese código lo has grabado desde la grabadora de macros. Algo muy sencillo sería que identificaras una casilla en concreto de cada hoja (puede ser la misma o diferente) y chequearas si tiene o no datos, es decir, si no cumple la condición para que siga ejecutándose el código. Si no lo cumple, puedes incluir algo del tipo "Goto..." para pasar a otra zona del código donde se encuentre la siguiente hoja a chequear. La mejor opción en el caso de que todas tus hojas tuvieran una estructura de datos iguales es que incluyeras al inicio un bucle del tipo "For each" para que pasara por cada hoja del libro y en caso de cumplirse la condición ejecutara el código. Así no tendrías ese código tan largo para hacer lo mismo en cada hoja. Si te parece bien la idea, podemos intentar incluir esas pequeñas modificaciones y lo pruebas. Un saludo, Tese
-
By DeadGoreRed · Posted
Sub FORMATO() ' ' TEXTO_COLUMNAS Macro ' Sheets("A-S1-001").Select Range("J2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True Selection.NumberFormat = "h:mm:ss" Range("K2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("K2").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]" Range("K2").Select Selection.Copy Range("K2:K1001").Select ActiveSheet.Paste Selection.End(xlUp).Select Columns("K:K").Select Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("K1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11, Criteria1:= _ "00:00:00" Range("K1000").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("K1").Select ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11 Range("K2").Select ActiveWorkbook.Worksheets("A-S1-001").Sort.SortFields.Clear ActiveWorkbook.Worksheets("A-S1-001").Sort.SortFields.Add2 Key:=Range( _ "K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("A-S1-002").Sort .SetRange Range("A2:N1000") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Selection.End(xlUp).Select Selection.End(xlToLeft).Select Sheets("A-S1-002").Select Range("J2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True Selection.NumberFormat = "h:mm:ss" Range("K2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("K2").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]" Range("K2").Select Selection.Copy Range("K2:K1001").Select ActiveSheet.Paste Selection.End(xlUp).Select Columns("K:K").Select Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("K1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$N$1002").AutoFilter Field:=11, Criteria1:= _ "00:00:00" Range("K1000").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("K1").Select ActiveSheet.Range("$A$1:$N$1002").AutoFilter Field:=11 Range("K2").Select ActiveWorkbook.Worksheets("A-S1-004").Sort.SortFields.Clear ActiveWorkbook.Worksheets("A-S1-004").Sort.SortFields.Add2 Key:=Range( _ "K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("A-S1-002").Sort .SetRange Range("A2:N1000") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Selection.End(xlUp).Select Selection.End(xlToLeft).Select Sheets("A-S1-003").Select Range("J2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.TextToColumns Destination:=Range("J2"), DataType:=xlFixedWidth, _ FieldInfo:=Array(Array(0, 9), Array(10, 1)), TrailingMinusNumbers:=True Selection.NumberFormat = "h:mm:ss" Range("K2").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("K2").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[-1]" Range("K2").Select Selection.Copy Range("K2:K1001").Select ActiveSheet.Paste Selection.End(xlUp).Select Columns("K:K").Select Application.CutCopyMode = False Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False Range("K1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$N$1001").AutoFilter Field:=11, Criteria1:= _ "00:00:00" Range("K1000").Select Range(Selection, Selection.End(xlDown)).Select Selection.ClearContents Range("K1").Select ActiveSheet.Range("$A$1:$N$1000").AutoFilter Field:=11 Range("K2").Select ActiveWorkbook.Worksheets("A-S1-003").Sort.SortFields.Clear ActiveWorkbook.Worksheets("A-S1-003").Sort.SortFields.Add2 Key:=Range( _ "K2:K1000"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("A-S1-003").Sort .SetRange Range("A2:N1000") .Header = xlNo .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Selection.End(xlUp).Select Selection.End(xlToLeft).Select Módulo3.bas -
By Pedro Alonso · Posted
Hola Antoni. El libro en cuestión no tiene ninguna macro. ¿UDF? ¿QUE ES? El libro tiene 41 hojas. Una por cada VALOR del IBEX 35 más 6 de propios cálculos. El cursor parpadea varias veces cada minuto al actualizarse AHORA(). Si pongo macros para actualizar Ahora() cada segundo, el parpadeo es casi constante. El libro es de PETETE (gordo), 36,2 MB. Muchísimas gracias por tu atención. P.D. ¿Podría ser la consulta a WEB de BOLSA MADRID? -
Sin entrar en la solución que te propone @Antoni, que dado quién lo hace funcionará estupendamente, ¿has pensado en utilizar un Combobox en lugar de un Textbox para filtrar por año? Quizás podrías cargarlo cuando haces el primer filtrado del TextBox, de manera que te aparecieran las opciones posibles del valor AÑO para ese cliente al desplegar el Combobox. Un saludo a todos, Tese
-
-
Recently Browsing
- No registered users viewing this page.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now