MACROS_EXCEL

Comentarios

Transcripción

MACROS_EXCEL
Public Sub CompararArchivos()
'Resp = MsgBox("Confirma el proceso ?", 1, "Comparar Archivos.")
If Resp <> 1 Then
MsgBox "Salir.", vbExclamation, "Error"
Exit Sub
End If
x = Workbooks.Count
If x > 3 Then
MsgBox "Tiene MAS de DOS libros excel ABIERTOS.", vbExclamation,
"Error"
Exit Sub
End If
If x < 3 Then
MsgBox "Tiene MENOS de DOS libros excel ABIERTOS.", vbExclamation,
"Error"
Exit Sub
End If
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
' defino el nro de libro
NombreLibro = ActiveWorkbook.Name
If Workbooks(1).Name = NombreLibro Then
Libro1 = 1
Libro2 = 2
Else
Libro1 = 2
Libro2 = 1
End If
For Each Celda In Selection
CeldaOrigen = Trim$(Celda.Text)
Fila = Celda.Row
Columna = Celda.Column
CeldaDestino = Workbooks(Libro2).ActiveSheet.Cells(Fila,
Columna).Text
CeldaDestino = Trim$(CeldaDestino)
If CeldaOrigen <> CeldaDestino Then
Workbooks(Libro2).ActiveSheet.Cells(Fila,
Columna).Interior.ColorIndex = 3
End If
Next Celda
End Sub
Public Sub PoneFechaDuracion()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Texto As String
Resp As Integer
Celda As Range
dFecha As Date
dFechaAnt As Date
dFechaSig As Date
HoraAnt As String
rFechas As Range
DurHora As Integer
FilaDesde, FilaHasta As Integer
Texto = "CONSIDERACIONES : " + Chr$(13) + Chr$(13)
Texto = Texto + "Deben existir tres (3) columnas contiguas :" + Chr$(13)
Texto = Texto + "Dia de la semana, Fecha, Hora" + Chr$(13)
Texto = Texto + "y se inserta una cuarta (4) columna con la Duracion" +
Chr$(13)
Texto = Texto + "Debe poner la primera Fecha y seleccionar esta columna."
+ Chr$(13)
Texto = Texto + Chr$(13) + "Confirma el proceso ?"
Resp = MsgBox(Texto, 1, "Pone la Fecha y Duración.")
If Resp <> 1 Then
MsgBox "Salir del proceso.", vbExclamation, "Salida"
Exit Sub
End If
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set rFechas = Selection
FilaDesde = rFechas.Row
For Each Celda In rFechas
If HoraAnt = "" Then
dFecha = CDate(Celda.Text)
HoraAnt = Format(Celda.Offset(0, 1), "hh:mm:ss")
End If
' comparo la hora siguiente para ver si cambio el dia
If Format(Celda.Offset(0, 1), "hh:mm:ss") < HoraAnt Then
dFecha = DateAdd("d", 1, dFecha)
End If
HoraAnt = Format(Celda.Offset(0, 1), "hh:mm:ss")
Celda.Offset(0, 0) = dFecha
Next Celda
' pone el dia de la semana
For Each Celda In rFechas
mDia = WeekDay(Celda.Text)
Select Case mDia
Case 1
Celda.Offset(0,
Case 2
Celda.Offset(0,
Case 3
Celda.Offset(0,
Case 4
Celda.Offset(0,
Case 5
Celda.Offset(0,
Case 6
Celda.Offset(0,
Case 7
Celda.Offset(0,
End Select
Next Celda
-1) = "DOMINGO"
-1) = "LUNES"
-1) = "MARTES"
-1) = "MIERCOLES"
-1) = "JUEVES"
-1) = "VIERNES"
-1) = "SABADO"
' insertar la columna
rFechas.Offset(0, 2).EntireColumn.Insert
rFechas.Offset(0, 2).Columns.NumberFormat = "General"
' pone la duracion
For Each Celda In rFechas
'If Celda.Row <= rFechas.Count Then
dFecha = CDate(Celda.Text & " " & Format(Celda.Offset(0, 1),
"hh:mm:ss"))
If IsDate(Celda.Offset(1, 0) & " " & Format(Celda.Offset(1, 1),
"hh:mm:ss")) Then
dFechaSig = CDate(Celda.Offset(1, 0) & " " &
Format(Celda.Offset(1, 1), "hh:mm:ss"))
'obtiene duración
DurHora = DateDiff("n", dFecha, dFechaSig)
Celda.Offset(0, 2) = DurHora
End If
Next Celda
Resp = MsgBox("Fin del proceso.", vbInformation, "Pone Fecha y
Duracion.")
End Sub
Sub PoneFecha()
Dim sTexto As String
Dim Resp As Integer
sTexto = "Debe seleccionar la columna de la fecha, y la segunda columna"
+ vbCrLf
sTexto = sTexto + "debe contener la hora." + vbCrLf + vbCrLf
sTexto = sTexto + "Inicio el proceso ?"
Resp = MsgBox(sTexto, vbYesNo, "Pone fecha")
If Resp <> vbYes Then End
Set rFechas = Selection
FilaDesde = rFechas.Row
For Each Celda In rFechas
If HoraAnt = "" Then
dFecha = CDate(Celda.Text)
HoraAnt = Format(Celda.Offset(0, 1), "hh:mm:ss")
End If
' comparo la hora siguiente para ver si cambio el dia
If Format(Celda.Offset(0, 1), "hh:mm:ss") < HoraAnt Then
dFecha = DateAdd("d", 1, dFecha)
End If
HoraAnt = Format(Celda.Offset(0, 1), "hh:mm:ss")
Celda.Offset(0, 0) = dFecha
Next Celda
MsgBox "Finalizado.", vbInformation, "Pone Fecha"
End Sub
Sub PoneDuracion()
Dim sTexto As String
sTexto = "Debe seleccionar la columna de la fecha, y la segunda columna"
+ vbCrLf
sTexto = sTexto + "debe contener la hora." + vbCrLf + vbCrLf
sTexto = sTexto + "Inicio el proceso ?"
Resp = MsgBox(sTexto, vbYesNo, "Pone Duracion")
If Resp <> vbYes Then End
Set rFechas = Selection
' insertar la columna duracion
'rFechas.Offset(0, 2).EntireColumn.Insert
'rFechas.Offset(0, 2).Columns.NumberFormat = "General"
' pone la duracion
For Each Celda In rFechas
If Celda.Offset(1, 0) = "" Then Exit For
dFecha = CDate(Celda.Text & " " & Format(Celda.Offset(0, 1),
"hh:mm:ss"))
dFechaSig = CDate(Celda.Offset(1, 0) & " " & Format(Celda.Offset(1,
1), "hh:mm:ss"))
'obtiene duración
DurHora = DateDiff("n", dFecha, dFechaSig)
Celda.Offset(0, 2) = DurHora
Next Celda
MsgBox "Finalizado.", vbInformation, "Pone Duracion"
End Sub
Public Sub ProcesaRealityTv()
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
'Definicion de mes y año
FechaInput = InputBox("Ingrese la fecha de inicio en formato
(dd/mm/aaaa). Recuerde que es fundamental para la generación de datos!",
_
"Ingreso de Fecha")
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
iHojaIni = 1
'Agrega nuevo libro
Workbooks.Add
Sheets(2).Name = "Final"
'Efectua conversion por cada hoja encontrada en el libro 1 (original)
For i = iHojaIni To Workbooks(1).Sheets.Count
HojaRealityTv i
Next i
'Agrega columnas y prepara para generar dia y duracion
'elimina filas sobrantes
Sheets("Final").Activate
With Range("A1").CurrentRegion
.Font.Bold = False
.Font.Size = 10
.HorizontalAlignment = xlLeft
End With
Range("A1").EntireColumn.Insert
Range("A1").CurrentRegion.Columns(2).Select
For Each Celda In Selection
If Celda.Value = "Arg." Then
'Busca fecha
iPosDia = InStr(1, Trim(Celda.Offset(0, 1)), " ",
vbTextCompare) + 1
If iPosDia > 1 Then
'Es fecha
Celda.Offset(1, -1) = iMes & "/" & Mid(Celda.Offset(0,
1), iPosDia) & "/" & iAnio
End If
Celda.EntireRow.Delete
End If
Next Celda
'Elimina las celdas vacias
Range("A1").Activate
Do While ActiveCell = ""
Selection.EntireRow.Delete
Loop
'Calcula fechas
Range("A1").Activate
'Selection.EntireRow.Insert
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Borra registros basura
Range("C1").Activate
Do While ActiveCell <> ""
ProgAct = ActiveCell.Text
If Left$(ProgAct, 10) = "Fin progra" Then
Selection.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Activate
End If
Loop
'Borra los programas repetidos
Range("C1").Activate
Do While ActiveCell <> ""
ProgAct = ActiveCell.Text
If ProgAct = ProgAnt Then
Selection.EntireRow.Delete
Else
ProgAnt = ProgAct
ActiveCell.Offset(1, 0).Activate
End If
Loop
'Calcula fechas y duracion
Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneDuracion
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador RealityTV"
End Sub
Sub HojaRealityTv(iHoja)
'Paso 1 - Copia hoja original transpuesta
Dim x, CantColumnas As Long
Dim Texto As String
'limpia datos anteriores en temporal
Workbooks(2).Sheets(1).Activate
Workbooks(2).Sheets(1).Range("A1").CurrentRegion.Delete
Workbooks(2).Sheets(1).Range("A1").Select
'Selecciona region actual desde A10 para asegurar seleccion
Workbooks(1).Sheets(iHoja).Activate
'Ubica datos e inserta una fila para separarlos de los titulos
variables
Range("A1").Select
Cells.Find(What:="Arg.", after:=ActiveCell, LookIn:=xlFormulas,
LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,
MatchCase:= _
False).Activate
Selection.EntireRow.Insert Shift:=xlDown
Range("A10").CurrentRegion.Select
'Copia Seleccion
Selection.Copy
'se posiciona en hoja temporal del libro destino
Workbooks(2).Sheets(1).Activate
'Pega seleccion
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone,
SkipBlanks:=False _
, Transpose:=False
'Quita las columnas que tienen dia pero NO numero
Range("I1").EntireColumn.Delete ' hora mexico
Range("B1").Activate
For x = 1 To 7
Texto = Right$(Trim$(ActiveCell.Text), 1)
If InStr(1, "0123456789", Texto) = 0 Then
ActiveCell.EntireColumn.Delete
Else
ActiveCell.Offset(0, 1).Activate
End If
Next x
'Paso 1.a
Range("A1").Activate
CantColumnas = ActiveCell.CurrentRegion.Columns.Count - 1
Range("B2").Select
For x = 1 To CantColumnas
Do While ActiveCell.Text <> ""
Texto = ActiveCell.Text
'If Left$(UCase(Texto), 13) = "PERSECUCIONES" Then Stop
nfilas = ActiveCell.MergeArea.Rows.Count
'descombinar celdas
ActiveCell.MergeCells = False
'copiar texto al area seleccionada
Selection = Texto
'paso a la siguiente fila
Selection.End(xlDown).Select
Loop
Range("B1").Offset(0, x).End(xlDown).Select
Next x
'Paso 2 - Quita formatos y limpia inicialmente los datos
'Quita autoajuste y combinaciones
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
'Quita bordes
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
Selection.Borders(xlEdgeLeft).LineStyle = xlNone
Selection.Borders(xlEdgeTop).LineStyle = xlNone
Selection.Borders(xlEdgeBottom).LineStyle = xlNone
Selection.Borders(xlEdgeRight).LineStyle = xlNone
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
Selection.Interior.ColorIndex = xlNone
'Bucle para eliminar filas sobrantes
Range("A1").CurrentRegion.Select
nfilas = ActiveCell.CurrentRegion.Rows.Count
For x = 1 To nfilas
If ActiveCell.Text = "" Then
ActiveCell.EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Next x
'5-Transposicion 2
For i = 1 To CantColumnas
' columna horaria
Sheets(1).Select
Range("a1").CurrentRegion.Columns(1).Select
Selection.Copy
Sheets("Final").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone,
SkipBlanks:=False _
, Transpose:=False
Selection.Offset(0, 1).Select
' columna dia
Sheets(1).Select
Selection.CurrentRegion.Columns(i + 1).Select
Selection.Copy
Sheets("Final").Select
Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone,
SkipBlanks:=False _
, Transpose:=False
Range("a1").End(xlDown).Offset(1, 0).Select
Next i
Sheets("Final").Columns("A:B").AutoFit
End Sub
Sub SubeDatos()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Texto As String
Resp As Integer
Celda As Range
dFecha As Date
dFechaAnt As Date
dFechaSig As Date
ProgAnt As String
sSenial, sHora As String
rProgramas As Range
DurHora As Integer
FilaDesde, FilaHasta As Integer
Texto = "CONSIDERACIONES : " + Chr$(13) + Chr$(13)
Texto = Texto + "Deben existir tres (3) columnas contiguas :" + Chr$(13)
Texto = Texto + "Nombre del programa/película, Señal, Dia y hora" +
Chr$(13)
Texto = Texto + "En la tercera columna se inserta los días y horas" +
Chr$(13)
Texto = Texto + "de los programas/peliculas repetidos." + Chr$(13) +
Chr$(13)
Texto = Texto + "DEBE SELECCIONAR LA COLUMNA DEL NOMBRE DEL
PROGRAMA/PELICULA" + Chr$(13)
Texto = Texto + Chr$(13) + "Confirma el proceso ?"
Resp = MsgBox(Texto, 1, "Pone la Fecha y Duración.")
If Resp <> 1 Then
MsgBox "Salir del proceso.", vbExclamation, "Salida"
Exit Sub
End If
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Range("A1").Activate
Do While ActiveCell.Text <> ""
ProgAnt = ActiveCell.Text
sSenial = ActiveCell.Offset(0, 1)
sHora = ActiveCell.Offset(0, 2)
' comparo con la siguiente fila
If ActiveCell.Offset(1, 0) = ProgAnt Then
sHora = sHora + " " + ActiveCell.Offset(1, 1) + " " +
ActiveCell.Offset(1, 2)
ActiveCell.Offset(0, 2) = sHora
ActiveCell.Offset(1, 0).EntireRow.Delete
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Resp = MsgBox("Fin del proceso.", vbInformation, "Pone Fecha y
Duracion.")
End Sub
Public Sub ProcesaDePeliculaOld()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
Diferencia As Integer
Texto As String
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario Argentina y las otras columnas los
dias del mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información")
'Definicion de mes y año
FechaInput = InputBox("Ingrese la fecha de inicio en formato
(dd/mm/aaaa). Recuerde que es fundamental para la generación de datos!",
_
"Ingreso de Fecha")
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Diferencia = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
'Agrega nuevo libro
Workbooks.Add
Sheets(2).Name = "Final"
Workbooks(1).Activate
matriz.MergeCells = False
Range("A2").Activate
matriz.Activate
dFila = 0
For yColumna = 2 To Columnas
Texto = Selection.Cells(1, yColumna).Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
ActiveCell.Offset(1, 0).Activate
For xFila = 3 To Filas
Texto = Trim(Selection.Cells(xFila, yColumna).Text)
Hora = Selection.Cells(xFila, 1).Text
If Texto <> "" Then
dFila = dFila + 1
Workbooks(2).ActiveSheet.Cells(dFila, 1) = fecha
Workbooks(2).ActiveSheet.Cells(dFila, 2) = Hora
Workbooks(2).ActiveSheet.Cells(dFila, 3) =
LimpiarTexto(Texto)
End If
Next xFila
Next yColumna
'Reemplaza la hora en caso necesario
Workbooks(2).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
Workbooks(2).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call SeparaActores
'Calcula fechas
Workbooks(2).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Calcula fechas y duracion
Workbooks(2).Activate
Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneDuracion
'Quita autoajuste y combinaciones
Workbooks(2).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador RealityTV"
End Sub
Private Function LimpiarTexto(sTexto As String) As String
Dim x, y As Integer
Dim A As String
For x = 1 To Len(sTexto)
A = Mid(sTexto, x, 1)
y = Asc(A)
Select Case y
Case Is <= 31
Mid(sTexto, x, 1) = "-"
Case Is = 34
Mid(sTexto, x, 1) = "'"
Case 127 To 160 'Is >= 127 y is <= 160
Mid(sTexto, x, 1) = "-"
End Select
Next x
LimpiarTexto = sTexto
End Function
Sub PoneHora(nDifer As Integer)
Dim sTexto As String
Dim sHora As Variant
Set rPeliculas = Selection
FilaDesde = rPeliculas.Row
For Each Celda In rPeliculas
sTexto = Celda.Text
sHora = Mid(sTexto, 2, 5)
If IsDate(sHora) Then
sHora = DateAdd("h", nDifer, sHora)
sTexto = Mid(sTexto, 9)
Celda.Offset(0, 0) = sTexto
Celda.Offset(0, -1) = sHora
End If
Next Celda
End Sub
Sub SeparaActores()
Dim sTexto, A, B, C As String
Dim x As Integer
Set rPeliculas = Selection
FilaDesde = rPeliculas.Row
For Each Celda In rPeliculas
sTexto = Celda.Text
'For X = Len(sTexto) To 1 Step -1
For x = 1 To Len(sTexto)
A = Mid(sTexto, x, 1)
If A = "-" Then
B = Mid(sTexto, x + 1)
C = Mid(sTexto, 1, x - 1)
Celda.Offset(0, 0) = Trim(C)
Celda.Offset(0, 1) = Trim(B)
Exit For
End If
Next x
Next Celda
End Sub
Public Sub ProcesaDePeliculaPrevio()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
PagOriginal As Integer
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario Argentina y las otras columnas los
dias del mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de De Película")
'Definicion de mes y año
FechaInput = InputBox("Ingrese la fecha de inicio en formato
(dd/mm/aaaa). Recuerde que es fundamental para la generación de datos!",
_
"Ingreso de Fecha")
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Diferencia = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
matriz.MergeCells = False
Range("A2").Activate
matriz.Activate
dFila = 0
For yColumna = 2 To Columnas
Texto = Selection.Cells(1, yColumna).Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
ActiveCell.Offset(1, 0).Activate
For xFila = 3 To Filas
Texto = Trim(Selection.Cells(xFila, yColumna).Text)
Hora = Selection.Cells(xFila, 1).Text
If Texto <> "" Then
dFila = dFila + 1
Sheets(nPagina).Cells(dFila, 1) = fecha
Sheets(nPagina).Cells(dFila, 2) = Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
End If
Next xFila
Next yColumna
'Reemplaza la hora en caso necesario
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call SeparaActores
'Calcula fechas
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Calcula fechas y duracion
Sheets(nPagina).Activate
Range("A1").End(xlDown).Select
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneDuracion
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador De Película"
End Sub
Public Sub ProcesaTv5()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
dFecha, dFechaAnt As Date
HoraAnt As String
sHora, sPrograma As String
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- La primera columna es la hora y la segunda es el
programa." + Chr$(13)
Texto = Texto + "- Seleccionar la primer columna." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de TV5")
'Definicion de mes y año
FechaInput = InputBox("Ingrese la fecha de inicio en formato
(dd/mm/aaaa). Recuerde que es fundamental para la generación de datos!",
_
"Ingreso de Fecha")
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Diferencia = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Filas = Selection.Rows.Count
If Filas < 1 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final"
Sheets(nPagina).Activate
Columns("B:B").Select
Selection.NumberFormat = "dd/mm/yyyy"
Columns("C:C").Select
Selection.NumberFormat = "hh:mm"
'Vuelvo a la pagina ppal
Sheets(1).Activate
Set rFechas = Selection
dFila = 0
dFecha = CDate(Format(FechaInput, "dd/mm/yyyy"))
For Each Celda In rFechas
sHora = Celda.Text
sPrograma = Celda.Offset(0, 1).Text
If IsDate(sHora) Then
dFila = dFila + 1
dFechaAnt = CDate(FechaInput + " " + sHora)
sHora = DateAdd("h", Diferencia, dFechaAnt)
Sheets(nPagina).Cells(dFila, 2) = dFecha
Sheets(nPagina).Cells(dFila, 3) = Format(sHora, "hh:mm")
Sheets(nPagina).Cells(dFila, 4) = sPrograma
End If
Next Celda
'Calcula fechas
Sheets(nPagina).Activate
Range("B1").End(xlDown).Select
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Set rFechas = Selection
For Each Celda In rFechas
If HoraAnt = "" Then
dFecha = CDate(Celda.Text)
dFechaAnt = CDate(Celda.Text)
HoraAnt = Format(Celda.Offset(0, 1), "hh:mm:ss")
End If
' comparo la hora siguiente para ver si cambio el dia
If Format(Celda.Offset(0, 1), "hh:mm:ss") < HoraAnt Then
dFecha = DateAdd("d", 1, dFechaAnt)
dFechaAnt = dFecha
End If
HoraAnt = Format(Celda.Offset(0, 1), "hh:mm:ss")
Celda.Offset(0, 0) = dFecha
Next Celda
'Calcula duracion
Sheets(nPagina).Activate
Range("B1").End(xlDown).Select
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneDuracion
' pone el dia de la semana
For Each Celda In rFechas
mDia = WeekDay(Celda.Text)
Select Case mDia
Case 1
Celda.Offset(0,
Case 2
Celda.Offset(0,
Case 3
Celda.Offset(0,
Case 4
Celda.Offset(0,
-1) = "DOMINGO"
-1) = "LUNES"
-1) = "MARTES"
-1) = "MIERCOLES"
Case 5
Celda.Offset(0, -1) = "JUEVES"
Case 6
Celda.Offset(0, -1) = "VIERNES"
Case 7
Celda.Offset(0, -1) = "SABADO"
End Select
Next Celda
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador TV5"
End Sub
Public Sub UnirCeldas()
Dim Texto As String
Set rFechas = Selection
Texto = ""
For Each Celda In rFechas
Texto = Texto + Trim(Celda.Text) + " "
Next Celda
Texto = Trim(Texto)
For Each Celda In rFechas
Celda.Offset(0, 0) = Texto
Texto = ""
Next Celda
End Sub
Public Sub TransponeCeldas()
Dim elementos(250) As String
Dim
Dim
Dim
Dim
Dim
Dim
Posicion As Integer
Filas As Integer
Columnas As Integer
Fila As Integer
Columna As Integer
x As Integer
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
Fila = matriz.Row
Columna = matriz.Column
If Filas > 250 Then
MsgBox "No debe superar los 250 elementos", vbCritical, "Error"
Exit Sub
End If
If Columnas > 1 Then
MsgBox "No debe superar a 1 columna", vbCritical, "Error"
Exit Sub
End If
Posicion = 0
For Each Celda In matriz
Texto = Trim(Celda.Text)
If Texto <> "" Then
Posicion = Posicion + 1
elementos(Posicion) = Texto
End If
Next Celda
Selection.Clear
For x = 1 To Posicion
Cells(Fila, Columna) = elementos(x)
Columna = Columna + 1
Next x
End Sub
Public Sub TransponeCeldasLibre()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
elementos(250) As String
Posicion As Integer
Filas As Integer
Columnas As Integer
Fila As Integer
Columna As Integer
x As Integer
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
Fila = matriz.Row
Columna = matriz.Column
If Filas > 250 Then
MsgBox "No debe superar los 250 elementos", vbCritical, "Error"
Exit Sub
End If
If Columnas > 1 Then
MsgBox "No debe superar a 1 columna", vbCritical, "Error"
Exit Sub
End If
Posicion = 0
For Each Celda In matriz
Texto = Trim(Celda.Text)
If Texto <> "" Then
Posicion = Posicion + 1
elementos(Posicion) = Texto
End If
Next Celda
Selection.Clear
For x = 1 To Posicion
Cells(Fila, Columna) = elementos(x)
Columna = Columna + 1
If x = 1 Then
Columna = Columna + 1
End If
Next x
End Sub
Public Sub ProcesaConexEducativa()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nDias, nDiaSem As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
Temp1, Temp2 As String
dFecha As Date
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario Argentina y las otras columnas los
dias de la semana." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias de la
semana y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de Conexión Educativa")
'Definicion de mes y año
FechaInput = InputBox("Ingrese la fecha de inicio en formato
(dd/mm/aaaa). Recuerde que es fundamental para la generación de datos!",
_
"Ingreso de Fecha")
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final"
'Vuelvo a la pagina ppal
Sheets(1).Activate
matriz.MergeCells = False
Range("A2").Activate
matriz.Activate
dFila = 0
For nDias = 1 To 31
Temp1 = Str(nDias) + "/" + Str(iMes) + "/" + Str(iAnio)
If Not IsDate(Temp1) Then Exit For
dFecha = CDate(Temp1)
nDiaSem = WeekDay(dFecha)
yColumna = nDiaSem
If nDiaSem = 1 Then yColumna = 8
ActiveCell.Offset(1, 0).Activate
For xFila = 2 To Filas
Texto = Trim(Selection.Cells(xFila, yColumna).Text)
Hora = Selection.Cells(xFila, 1).Text
If Texto <> "" Then
dFila = dFila + 1
Sheets(nPagina).Cells(dFila, 1) = dFecha
Sheets(nPagina).Cells(dFila, 2) = Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
End If
Next xFila
Next nDias
'Calcula fechas
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Calcula fechas y duracion
Sheets(nPagina).Activate
Range("A1").EntireColumn.Insert
Range("B1").End(xlDown).Select
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneDuracionFecha
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador Conexión
Educativa"
End Sub
Sub PoneDuracionFecha()
Set rFechas = Selection
' insertar la columna duracion
rFechas.Offset(0, 2).EntireColumn.Insert
rFechas.Offset(0, 2).Columns.NumberFormat = "General"
' pone la duracion
For Each Celda In rFechas
If Celda.Offset(1, 0) = "" Then Exit For
dFecha = CDate(Celda.Text & " " & Format(Celda.Offset(0, 1),
"hh:mm:ss"))
dFechaSig = CDate(Celda.Offset(1, 0) & " " & Format(Celda.Offset(1,
1), "hh:mm:ss"))
'obtiene duración
DurHora = DateDiff("n", dFecha, dFechaSig)
Celda.Offset(0, 2) = DurHora
Next Celda
' pone el dia de la semana
For Each Celda In rFechas
If IsDate(Celda.Text) Then
mDia = WeekDay(Celda.Text)
Select Case mDia
Case 1
Celda.Offset(0,
Case 2
Celda.Offset(0,
Case 3
Celda.Offset(0,
Case 4
Celda.Offset(0,
Case 5
-1) = "DOMINGO"
-1) = "LUNES"
-1) = "MARTES"
-1) = "MIERCOLES"
Celda.Offset(0, -1) = "JUEVES"
Case 6
Celda.Offset(0, -1) = "VIERNES"
Case 7
Celda.Offset(0, -1) = "SABADO"
End Select
End If
Next Celda
End Sub
Public Sub ProcesaEspnDos()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
sHora, sFecha As String
dFecha, dHora As Date
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario y las otras columnas los dias del
mes." + Chr$(13)
Texto = Texto + "- La primera fila contiene los dias del mes." + Chr$(13)
Texto = Texto + "- Algunos programas aparecen repetidas o divididos y
deben corregirse manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de ESPN DOS")
'Diferencia horaria
Diferencia = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Sheets(Sheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
matriz.MergeCells = False
Range("A2").Activate
matriz.Activate
'completa la columna de horas, cada 30 minutos
Hora = Left(Selection.Cells(2, 1).Text, 5)
dHora = CDate("01/01/1900" + " " + Hora)
For xFila = 3 To Filas
dHora = DateAdd("n", 30, dHora)
Selection.Cells(xFila, 1) = Format(dHora, "hh:mm")
Next xFila
dFila = 0
For yColumna = 2 To Columnas
Texto = Selection.Cells(1, yColumna).Value
sFecha = Format(Texto, "dd/mm/yyyy")
ActiveCell.Offset(1, 0).Activate
For xFila = 2 To Filas
Texto = Trim(Selection.Cells(xFila, yColumna).Text)
sHora = Left(Selection.Cells(xFila, 1).Text, 5)
dFecha = CDate(sFecha + " " + sHora)
dFecha = DateAdd("h", Diferencia, dFecha)
If Texto <>
dFila =
'sFecha
sHora =
"" Then
dFila + 1
= Format(dFecha, "dd/mm/yyyy")
Format(dFecha, "hh:mm")
Sheets(nPagina).Cells(dFila, 1).Value = Format(dFecha,
"mm/dd/yyyy") 'sFecha
Sheets(nPagina).Cells(dFila, 2).Value = sHora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
End If
Next xFila
Next yColumna
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador ESPN DOS"
End Sub
Public Sub ProcesaMovieWorld()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
PagOriginal As Integer
Texto As String
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el horario y las otras columnas los dias del
mes." + Chr$(13)
Texto = Texto + "- Mover la primera fila de programas a la última fila,"
+ Chr$(13)
Texto = Texto + " porque corresponden al día anterior." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de Movie World")
'Definicion de mes y año
FechaInput = InputBox("Ingrese la fecha de inicio en formato
(dd/mm/aaaa). Recuerde que es fundamental para la generación de datos!",
_
"Ingreso de Fecha")
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Diferencia = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final" + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
matriz.MergeCells = False
Range("A2").Activate
matriz.Activate
dFila = 0
For yColumna = 2 To Columnas
Texto = Selection.Cells(1, yColumna).Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
ActiveCell.Offset(1, 0).Activate
For xFila = 3 To Filas
Texto = Trim(Selection.Cells(xFila, yColumna).Text)
Hora = Selection.Cells(xFila, 1).Text
If Texto <> "" Then
dFila = dFila + 1
Sheets(nPagina).Cells(dFila, 1) = fecha
Sheets(nPagina).Cells(dFila, 2) = Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
End If
Next xFila
Next yColumna
'Reemplaza la hora en caso necesario
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneDiaHora(Diferencia)
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador Movie World"
End Sub
Sub PoneDiaHora(nDifer As Integer)
Dim sFecha As Variant
Dim sHora As Variant
Dim dFecha As Date
Set rPeliculas = Selection
FilaDesde = rPeliculas.Row
For Each Celda In rPeliculas
sFecha = Celda.Value
sHora = Celda.Offset(0, 1).Value
dFecha = sFecha + sHora
dFecha = DateAdd("h", nDifer, dFecha)
sTexto = Format(dFecha, "dd/mm/yyyy")
'sHora = Format(dFecha, "hh:mm")
Celda.Offset(0, 0).Value = Int(dFecha) 'sTexto
Celda.Offset(0, 1).Value = dFecha - Int(dFecha) ' = Format(dFecha,
"hh:mm") 'sHora
Next Celda
End Sub
Public Sub ProcesaPlayboy()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Dim Texto As String
Dim PagOriginal As Integer
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario Argentina y las otras columnas los
dias del mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de Playboy")
'Definicion de mes y año
FechaInput = InputBox("Ingrese la fecha de inicio en formato
(dd/mm/aaaa). Recuerde que es fundamental para la generación de datos!",
_
"Ingreso de Fecha")
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
matriz.MergeCells = False
Range("A2").Activate
matriz.Activate
dFila = 0
For yColumna = 2 To Columnas
Texto = Selection.Cells(1, yColumna).Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
ActiveCell.Offset(1, 0).Activate
For xFila = 2 To Filas
Texto = Trim(Selection.Cells(xFila, yColumna).Text)
'Hora = Selection.Cells(xFila, 1).Text
Hora = Selection.Cells(xFila, 1).Value
If Texto <> "" Then
dFila = dFila + 1
Sheets(nPagina).Cells(dFila, 1) = fecha
Sheets(nPagina).Cells(dFila, 2) = Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
End If
Next xFila
Next yColumna
'Reemplaza la hora en caso necesario
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
'Call SeparaActores
'Calcula fechas
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Calcula fechas y duracion
'Sheets(nPagina).Activate
'Range("A1").End(xlDown).Select
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador de Playboy"
End Sub
Public Sub ProcesaRitmoSon()
Dim iHojaIni As Integer
Dim iPosDia As Integer
Dim iMes As Integer
Dim iAnio As Integer
Dim FechaInput
Dim Filas, Columnas As Integer
Dim xFila, yColumna As Integer
Dim dFila, dColumna As Integer
Dim nPagina As Integer
Dim Diferencia As Integer
Dim Texto As String
Dim Resp As String
Dim PagOriginal As Integer
Dim tFecha As Variant
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario y las otras columnas los dias del
mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de RitmoSon")
'Definicion de mes y año
Resp = InputBox("Ingrese la fecha de inicio en formato (dd/mm/aaaa).
Recuerde que es fundamental para la generación de datos!", _
"Ingreso de Fecha")
If Resp = "" Then End
FechaInput = Resp
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Resp = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
If Resp = "" Then End
Diferencia = Val(Resp)
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
Range("A2").Activate
matriz.Activate
dFila = 0
A = Selection.Row
B = Selection.Column
'voy al principio de la hoja
Range("a1").Activate
xFila = A
yColumna = B
For yColumna = B To Columnas - B
xFila = A
Cells(xFila, yColumna + 1).Activate
Texto = ActiveCell.Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
For xFila = A + 2 To Filas + A - 1
Cells(xFila, yColumna + 1).Activate
Cells(xFila, yColumna + 1).Select
Texto = ActiveCell.Text
Hora = Cells(xFila, B).Text
If Texto <> "" Then
dFila = dFila + 1
tFecha = CDate(fecha & " " & Hora)
tFecha = DateAdd("h", Diferencia, tFecha)
Sheets(nPagina).Cells(dFila, 1) = Int(tFecha) 'fecha
Sheets(nPagina).Cells(dFila, 2) = tFecha - Int(tFecha) 'Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
ActiveCell.MergeCells = False
Selection = Texto
End If
Next xFila
Next yColumna
'Borra los programas repetidos
Sheets(nPagina).Activate
Range("C1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Do While ActiveCell <> ""
ProgAct = ActiveCell.Text
If ProgAct = ProgAnt Then
ActiveCell.EntireRow.Delete
Else
ProgAnt = ProgAct
ActiveCell.Offset(1, 0).Activate
End If
Loop
'Reemplaza la hora en caso necesario
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
'Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
'Call SeparaActores
'Calcula fechas
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneFecha
'Calcula fechas y duracion
'Sheets(nPagina).Activate
'Range("A1").End(xlDown).Select
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneDuracion
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador RitmoSon"
End Sub
Public Sub Actores()
Dim Texto As String
Texto = InputBox("Ingrese el caracter separador de los actores.", _
"Ingreso de Separador")
If Texto = "" Then End
ModificaActores Selection, Texto
End Sub
Public Sub ModificaActores(rActores, sSeparador)
'Desdoblar los actores y transferir a Elenco 1 y 2
'Set rActores =
Range("A1").CurrentRegion.Columns(Range("A1").CurrentRegion.Columns.Count
).Offset(1, 0)
For Each Celda In rActores.Cells
PosSep1 = InStr(1, Celda.Text, sSeparador)
PosSep2 = InStr(PosSep1 + 1, Celda.Text, sSeparador)
PosSep3 = InStr(PosSep2 + 1, Celda.Text, sSeparador)
If PosSep1 <> 0 Then
'Setea Elenco 1
Cells(Celda.Row, Celda.Column - 4) =
ModificaEstiloTitulo(Left(Celda.Text, PosSep1 - 1))
If PosSep2 = 0 Then
'Setea Elenco 2
Cells(Celda.Row, Celda.Column - 3) =
ModificaEstiloTitulo(Mid(Celda.Text, PosSep1 + 1))
Else
'Setea Elenco 2
Cells(Celda.Row, Celda.Column - 3) =
ModificaEstiloTitulo(Mid(Celda.Text, PosSep1 + 1, PosSep2 - PosSep1 - 1))
If PosSep3 <> 0 Then
'Setea Elenco 3
Cells(Celda.Row, Celda.Column - 2) =
ModificaEstiloTitulo(Mid(Celda.Text, PosSep2 + 1, PosSep3 - PosSep2 - 1))
Else
Cells(Celda.Row, Celda.Column - 2) =
ModificaEstiloTitulo(Mid(Celda.Text, PosSep2 + 1))
End If
End If
Else
Cells(Celda.Row, Celda.Column - 4) =
ModificaEstiloTitulo(Celda.Text)
End If
Next Celda
End Sub
Function ModificaEstiloTitulo(Contenido As String) As String
On Error GoTo Err_Estilos
'Toma el contenido del cuadro de texto activo y lo transforma
'a títulos
'Dim Contenido As String
Dim sFrase As String
Dim sPal As String
Dim iLetra As Integer
Dim sLetraIni As String * 1
Contenido = Trim(LCase(Contenido)) & " "
sFrase = ""
sPal = ""
For iLetra = 1 To Len(Contenido)
If Mid(Contenido, iLetra, 1) = " " Then
'Tratamiento de puntuación
If Left(sPal, 1) = Chr(34) Or Left(sPal, 1) = "¿" Then
If Asc(Mid(sPal, 2, 1)) >= 65 And Asc(Mid(sPal, 2, 1)) <=
90 Then
'La palabra ya esta en mayúsculas, no la cambia
sFrase = sFrase & sPal & " "
Else
'Pone en mayúsculas la palabra despues del signo y
rearma la frase
sFrase = sFrase & Left(sPal, 1) & Chr(Asc(Mid(sPal,
2, 1)) - 32) & Mid(sPal, 3) & " "
End If
ElseIf Asc(Left(sPal, 1)) >= 65 And Asc(Left(sPal, 1)) <= 90
Then
'La palabra ya esta en mayúsculas, no la cambia
sFrase = sFrase & sPal & " "
ElseIf (Asc(Left(sPal, 1)) >= 33 And Asc(Left(sPal, 1)) <=
64) Or (Asc(Left(sPal, 1)) >= 91 And Asc(Left(sPal, 1)) <= 96) Or
(Asc(Left(sPal, 1)) >= 123 And Asc(Left(sPal, 1)) <= 126) Then
'Condicion para números y símbolos
sFrase = sFrase & sPal & " "
Else
'Pone en mayúsculas la palabra y rearma la frase
sFrase = sFrase & Chr(Asc(Left(sPal, 1)) - 32) &
Mid(sPal, 2) & " "
End If
sPal = ""
Else
sPal = sPal + Mid(Contenido, iLetra, 1)
End If
Next iLetra
'Transfiere Frase arreglada
ModificaEstiloTitulo = Trim(sFrase)
Salida_Estilos:
Exit Function
Err_Estilos:
Resume Salida_Estilos
End Function
Public Sub ProcesaTelehit()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
Resp As String
PagOriginal As Integer
tFecha As Variant
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario y las otras columnas los dias del
mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de TeleHit")
'Definicion de mes y año
Resp = InputBox("Ingrese la fecha de inicio en formato (dd/mm/aaaa).
Recuerde que es fundamental para la generación de datos!", _
"Ingreso de Fecha")
If Resp = "" Then End
FechaInput = Resp
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Resp = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
If Resp = "" Then End
Diferencia = Val(Resp)
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
Range("A2").Activate
matriz.Activate
dFila = 0
A = Selection.Row
B = Selection.Column
'voy al principio de la hoja
Range("a1").Activate
xFila = A
yColumna = B
For yColumna = B To Columnas - B
xFila = A
Cells(xFila, yColumna + 1).Activate
Texto = ActiveCell.Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
For xFila = A + 1 To Filas + 1
Cells(xFila, yColumna + 1).Activate
Cells(xFila, yColumna + 1).Select
Texto = ActiveCell.Text
Hora = Cells(xFila, B).Text
If Texto <> "" Then
dFila = dFila + 1
tFecha = CDate(fecha & " " & Hora)
tFecha = DateAdd("h", Diferencia, tFecha)
Sheets(nPagina).Cells(dFila, 1) = Int(tFecha) 'fecha
Sheets(nPagina).Cells(dFila, 2) = tFecha - Int(tFecha) 'Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
ActiveCell.MergeCells = False
Selection = Texto
End If
Next xFila
Next yColumna
'Borra los programas repetidos
Sheets(nPagina).Activate
Range("C1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Do While ActiveCell <> ""
ProgAct = ActiveCell.Text
If ProgAct = ProgAnt Then
ActiveCell.EntireRow.Delete
Else
ProgAnt = ProgAct
ActiveCell.Offset(1, 0).Activate
End If
Loop
'Reemplaza la hora en caso necesario
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call SeparaActores
'Calcula fechas
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Calcula fechas y duracion
'Sheets(nPagina).Activate
'Range("A1").End(xlDown).Select
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneDuracion
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador Telehit"
End Sub
Public Sub ProcesaTelenovelas()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
Resp As String
PagOriginal As Integer
tFecha As Variant
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario y las otras columnas los dias del
mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de Telenovelas")
'Definicion de mes y año
Resp = InputBox("Ingrese la fecha de inicio en formato (dd/mm/aaaa).
Recuerde que es fundamental para la generación de datos!", _
"Ingreso de Fecha")
If Resp = "" Then End
FechaInput = Resp
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Resp = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
If Resp = "" Then End
Diferencia = Val(Resp)
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
Range("A2").Activate
matriz.Activate
dFila = 0
A = Selection.Row
B = Selection.Column
'voy al principio de la hoja
Range("a1").Activate
xFila = A
yColumna = B
For yColumna = B To Columnas - B
xFila = A
Cells(xFila, yColumna + 1).Activate
Texto = ActiveCell.Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
For xFila = A + 2 To Filas + 1
Cells(xFila, yColumna + 1).Activate
Cells(xFila, yColumna + 1).Select
Texto = ActiveCell.Text
Hora = Cells(xFila, B).Text
If Texto <> "" Then
dFila = dFila + 1
tFecha = CDate(fecha & " " & Hora)
tFecha = DateAdd("h", Diferencia, tFecha)
Sheets(nPagina).Cells(dFila, 1) = Int(tFecha) 'fecha
Sheets(nPagina).Cells(dFila, 2) = tFecha - Int(tFecha) 'Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
ActiveCell.MergeCells = False
Selection = Texto
End If
Next xFila
Next yColumna
'Borra los programas repetidos
Sheets(nPagina).Activate
Range("C1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Do While ActiveCell <> ""
ProgAct = ActiveCell.Text
If ProgAct = ProgAnt Then
ActiveCell.EntireRow.Delete
Else
ProgAnt = ProgAct
ActiveCell.Offset(1, 0).Activate
End If
Loop
'Reemplaza la hora en caso necesario
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call SeparaActores
'Calcula fechas
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Calcula fechas y duracion
'Sheets(nPagina).Activate
'Range("A1").End(xlDown).Select
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneDuracion
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador Telenovelas"
End Sub
Public Sub ProcesaEstrellas()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
Dim Resp As String
Dim PagOriginal As Integer
Dim tFecha As Variant
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario y las otras columnas los dias del
mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de Canal de las
Estrellas")
'Definicion de mes y año
Resp = InputBox("Ingrese la fecha de inicio en formato (dd/mm/aaaa).
Recuerde que es fundamental para la generación de datos!", _
"Ingreso de Fecha")
If Resp = "" Then End
FechaInput = Resp
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Resp = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
If Resp = "" Then End
Diferencia = Val(Resp)
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
Range("A2").Activate
matriz.Activate
dFila = 0
A = Selection.Row
B = Selection.Column
'voy al principio de la hoja
Range("a1").Activate
xFila = A
yColumna = B
For yColumna = B To Columnas - B
xFila = A
Cells(xFila, yColumna + 1).Activate
Texto = ActiveCell.Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
For xFila = A + 2 To Filas + A - 1
Cells(xFila, yColumna + 1).Activate
Cells(xFila, yColumna + 1).Select
Texto = ActiveCell.Text
Hora = Cells(xFila, B).Text
If Texto <> "" Then
dFila = dFila + 1
tFecha = CDate(fecha & " " & Hora)
tFecha = DateAdd("h", Diferencia, tFecha)
Sheets(nPagina).Cells(dFila, 1) = Int(tFecha) 'fecha
Sheets(nPagina).Cells(dFila, 2) = tFecha - Int(tFecha) 'Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
ActiveCell.MergeCells = False
Selection = Texto
End If
Next xFila
Next yColumna
'Borra los programas repetidos
Sheets(nPagina).Activate
Range("C1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Do While ActiveCell <> ""
ProgAct = ActiveCell.Text
If ProgAct = ProgAnt Then
ActiveCell.EntireRow.Delete
Else
ProgAnt = ProgAct
ActiveCell.Offset(1, 0).Activate
End If
Loop
'Reemplaza la hora en caso necesario
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
'Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
'Call SeparaActores
'Calcula fechas
'Sheets(nPagina).Activate
'Range("A1").Activate
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneFecha
'Calcula fechas y duracion
'Sheets(nPagina).Activate
'Range("A1").End(xlDown).Select
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneDuracion
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador Canal de las
Estrellas"
End Sub
Public Sub ProcesaDePelicula()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
iHojaIni As Integer
iPosDia As Integer
iMes As Integer
iAnio As Integer
FechaInput
Filas, Columnas As Integer
xFila, yColumna As Integer
dFila, dColumna As Integer
nPagina As Integer
Diferencia As Integer
Texto As String
Resp As String
PagOriginal As Integer
tFecha As Variant
'Informacion General
Texto = "Para proceder, se deben cumplir ciertas normas:" + Chr$(13)
Texto = Texto + "- Seleccionar el área, teniendo en cuenta que la primera
columna" + Chr$(13)
Texto = Texto + " contiene el Horario y las otras columnas los dias del
mes." + Chr$(13)
Texto = Texto + "- Algunas películas aparecen repetidas y deben borrarse
manualmente." + Chr$(13)
Texto = Texto + "- No seleccionar días correspondientes a otro mes." +
Chr$(13)
Texto = Texto + "- El área incluye la columna del horario, los dias del
mes y los programas." + Chr$(13)
Diferencia = MsgBox(Texto, vbYesNo, "Información de De Película")
'Definicion de mes y año
Resp = InputBox("Ingrese la fecha de inicio en formato (dd/mm/aaaa).
Recuerde que es fundamental para la generación de datos!", _
"Ingreso de Fecha")
If Resp = "" Then End
FechaInput = Resp
If Not IsDate(FechaInput) Then
MsgBox "El proceso finalizará. Debe ingresar una fecha válida!"
ActiveWorkbook.Close
End
End If
'Diferencia horaria
Resp = InputBox("Ingrese la diferencia horaria. Recuerde que es
fundamental para la generación de datos!", _
"Ingreso de Diferencia Horaria")
If Resp = "" Then End
Diferencia = Val(Resp)
Respuesta = MsgBox("Inicia el proceso ?", vbYesNo, "Inicio")
If Respuesta <> vbYes Then Exit Sub
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
If Filas < 2 Or Columnas < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
iMes = Month(FechaInput)
iAnio = Year(FechaInput)
With Application
.ScreenUpdating = False
.Cursor = xlWait
.StatusBar = "Generando Planilla, un momento por favor..."
End With
PagOriginal = ActiveSheet.Index
'Agrega nueva pagina
Sheets.Add after:=Worksheets(Worksheets.Count)
nPagina = Sheets.Count
Sheets(nPagina).Name = "Final " + Str(nPagina)
'Vuelvo a la pagina ppal
Sheets(PagOriginal).Activate
Range("A2").Activate
matriz.Activate
dFila = 0
A = Selection.Row
B = Selection.Column
'voy al principio de la hoja
Range("a1").Activate
xFila = A
yColumna = B
For yColumna = B To Columnas - B
xFila = A
Cells(xFila, yColumna + 1).Activate
Texto = ActiveCell.Text
Dia = Right(Trim(Texto), 2)
fecha = CDate(Dia + "/" + Format(iMes, "00") + "/" + Format(iAnio,
"0000"))
For xFila = A + 2 To Filas + 1
Cells(xFila, yColumna + 1).Activate
Cells(xFila, yColumna + 1).Select
Texto = ActiveCell.Text
Hora = Cells(xFila, B).Text
If Texto <> "" Then
dFila = dFila + 1
tFecha = CDate(fecha & " " & Hora)
tFecha = DateAdd("h", Diferencia, tFecha)
Sheets(nPagina).Cells(dFila, 1) = Int(tFecha) 'fecha
Sheets(nPagina).Cells(dFila, 2) = tFecha - Int(tFecha) 'Hora
Sheets(nPagina).Cells(dFila, 3) = LimpiarTexto(Texto)
ActiveCell.MergeCells = False
Selection = Texto
End If
Next xFila
Next yColumna
'Borra los programas repetidos
Sheets(nPagina).Activate
Range("C1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Do While ActiveCell <> ""
ProgAct = ActiveCell.Text
If ProgAct = ProgAnt Then
ActiveCell.EntireRow.Delete
Else
ProgAnt = ProgAct
ActiveCell.Offset(1, 0).Activate
End If
Loop
'Reemplaza la hora en caso necesario
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call PoneHora(Diferencia)
'Separa los actores, si vinieran informados
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(3).Select
Call SeparaActores
'Calcula fechas
Sheets(nPagina).Activate
Range("A1").Activate
ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
Call PoneFecha
'Calcula fechas y duracion
'Sheets(nPagina).Activate
'Range("A1").End(xlDown).Select
'ActiveCell.Offset(1, 0).CurrentRegion.Columns(1).Select
'Call PoneDuracion
'Quita autoajuste y combinaciones
Sheets(nPagina).Activate
Range("A1").CurrentRegion.Select
With Selection
.WrapText = False
.Orientation = 0
.ShrinkToFit = False
.MergeCells = False
End With
'Color tipografia x defecto
With Selection.Font
.ColorIndex = xlAutomatic
End With
Application.Cursor = xlDefault
Application.ScreenUpdating = True
MsgBox "Proceso Finalizado!", vbInformation, "Generador De Película"
End Sub
Public Sub AgregaTransmision()
Dim
Dim
Dim
Dim
Dim
Dim
Texto As String
TextoOrig As String
Resp As Long
Celda As Range
rFechas As Range
x As Integer
Texto = "CONSIDERACIONES : " + Chr$(13)
Texto = Texto + "Debe elegir la columna
transmision," + Chr$(13)
Texto = Texto + "y la POSICION RELATIVA
Chr$(13)
Texto = Texto + "el tipo de transmision
Chr$(13) + Chr$(13)
Texto = Texto + "Confirma el proceso ?"
+ Chr$(13)
donde está el tipo de
de la columna donde irá" +
resumido -(V), (D), (G), (P)-" +
Resp = MsgBox(Texto, 1, "Agregar el tipo de transmisión.")
If Resp <> 1 Then
MsgBox "Salir del proceso.", vbExclamation, "Salida"
Exit Sub
End If
'Diferencia horaria
Resp = InputBox("Ingrese la posición relativa de la columna (+ ó -)", _
"Agregar el tipo de transmisión")
'If Resp = "" Then End
Diferencia = Val(Resp)
If Diferencia = 0 Then
MsgBox "No puede seleccionar la misma columna.", vbExclamation,
"Error"
Exit Sub
End If
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set rFechas = Selection
For Each Celda In rFechas
TextoOrig = UCase(Trim(Celda.Text))
Texto = Trim(Celda.Text)
' VIVO
x = InStr(1, TextoOrig, "(VIVO)")
If x > 0 Then
Texto = Mid(Texto, 1, x - 1) + Mid(Texto, x + 6)
' elimina el texto encontrado
Celda.Offset(0, 0) = Texto
' pone el nuevo texto
Texto = Celda.Offset(0, Diferencia)
Texto = Texto + " (V)"
Celda.Offset(0, Diferencia) = Texto
GoTo Siguiente
End If
' DIFERIDO
x = InStr(1, TextoOrig, "(DIFERIDO)")
If x > 0 Then
Texto = Mid(Texto, 1, x - 1) + Mid(Texto, x + 10)
' elimina el texto encontrado
Celda.Offset(0, 0) = Texto
' pone el nuevo texto
Texto = Celda.Offset(0, Diferencia)
Texto = Texto + " (D)"
Celda.Offset(0, Diferencia) = Texto
GoTo Siguiente
End If
' GRABADO
x = InStr(1, TextoOrig, "(GRABADO)")
If x > 0 Then
Texto = Mid(Texto, 1, x - 1) + Mid(Texto, x + 9)
' elimina el texto encontrado
Celda.Offset(0, 0) = Texto
' pone el nuevo texto
Texto = Celda.Offset(0, Diferencia)
Texto = Texto + " (G)"
Celda.Offset(0, Diferencia) = Texto
GoTo Siguiente
End If
' PROGRAMA
x = InStr(1, TextoOrig, "(PROGRAMA)")
If x > 0 Then
Texto = Mid(Texto, 1, x - 1) + Mid(Texto, x + 10)
' elimina el texto encontrado
Celda.Offset(0, 0) = Texto
' pone el nuevo texto
Texto = Celda.Offset(0, Diferencia)
Texto = Texto + " (P)"
Celda.Offset(0, Diferencia) = Texto
GoTo Siguiente
End If
' REPETICION
x = InStr(1, TextoOrig, "(REPETICION)")
If x > 0 Then
Texto = Mid(Texto, 1, x - 1) + Mid(Texto, x + 12)
' elimina el texto encontrado
Celda.Offset(0, 0) = Texto
' pone el nuevo texto
Texto = Celda.Offset(0, Diferencia)
Texto = Texto + " (R)"
Celda.Offset(0, Diferencia) = Texto
GoTo Siguiente
End If
Siguiente:
Next Celda
Resp = MsgBox("Fin del proceso.", vbInformation, "Agrega tipo de
transmision.")
End Sub
Sub PoneAlineacion()
Dim Numero As Long
Dim AlineaAnt As String
Set rSeniales = Selection
Numero = 999
AlineaAnt = ""
For Each Celda In rSeniales
If AlineaAnt <> Celda.Offset(0, 0) Then
AlineaAnt = Celda.Offset(0, 0)
Numero = Numero + 1
End If
Celda.Offset(0, -2) = Numero
Next Celda
End Sub
Sub ProcesaDePelicula2()
Dim
Dim
Dim
Dim
Dim
FilaAnt As Long
FilaAct As Long
Columna As Long
ProgAnt As String
Tempo As String
Resp = MsgBox(Texto, 1, "Arregla de Pelicula -2-.")
If Resp <> 1 Then
MsgBox "Salir del proceso.", vbExclamation, "Salida"
Exit Sub
End If
Set rSeniales = Selection
ProgAnt = ""
FilaAnt = rSeniales.Row
Columna = 0
For Each Celda In rSeniales
Tempo = Celda.Offset(0, 0)
If Tempo = ""
FilaAnt =
ProgAnt =
Columna =
Else
FilaAct =
Then
Celda.Row + 1
Celda.Offset(1, 0)
0
Celda.Row
If FilaAct > FilaAnt Then
Columna = Columna + 1
Celda.Offset(-Columna, Columna) = Tempo
Celda.Offset(0, 0) = ""
End If
End If
Next Celda
Resp = MsgBox("Fin del proceso.", vbInformation, "Arregla de Pelicula -2.")
End Sub
Sub EliminaFilasVacias()
Dim
Dim
Dim
Dim
Dim
x As Long
y As Long
Z As Long
rFechas As Range
Columna As Long
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Call BorraEspacios
Set rFechas = Selection
FilaDesde = rFechas.Row
Columna = rFechas.Column
y = FilaDesde
Z = FilaDesde + x
Do While y <= Z
Cells(y, Columna).Select
Cells(y, Columna).Activate
If ActiveCell.Text = "" Then
Selection.EntireRow.Delete
Z = Z - 1
Else
y = y + 1
End If
Loop
MsgBox "Finalizado.", vbInformation, "Elimina celdas vacias"
End Sub
Public Sub CopiarColumnas()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
elementos(7000) As String
Posicion As Integer
Filas As Integer
Columnas As Integer
Fila As Integer
Columna As Integer
x As Integer
y As Integer
Z As Integer
TotFilas As Integer
TotColumnas As Integer
Texto = "CONSIDERACIONES : " + Chr$(13) + Chr$(13)
Texto = Texto + "Debe elegir un área de filas y columnas," + Chr$(13)
Texto = Texto + "a partir de la segunda columna se copiarán al final" +
Chr$(13)
Texto = Texto + "de la primer columna." + Chr$(13) + Chr$(13)
Texto = Texto + "Confirma el proceso ?"
Resp = MsgBox(Texto, 1, "Copiar Columnas.")
If Resp <> 1 Then
MsgBox "Salir del proceso.", vbExclamation, "Salida"
Exit Sub
End If
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
Fila = matriz.Row
Columna = matriz.Column
If Filas > 1000 Then
MsgBox "No debe superar las 1000 filas.", vbCritical, "Error"
Exit Sub
End If
If Columnas > 7 Then
MsgBox "No debe superar las 7 columnas.", vbCritical, "Error"
Exit Sub
End If
Posicion = 0
TotFilas = Fila + Filas - 1
TotColumnas = Columna + Columnas - 1
For y = Columna To TotColumnas
For x = Fila To TotFilas
Texto = Trim(Cells(x, y))
Posicion = Posicion + 1
elementos(Posicion) = Texto
Next x
Next y
Selection.Clear
For x = 1 To Posicion
Cells(Fila, Columna) = elementos(x)
Fila = Fila + 1
Next x
MsgBox "Finalizado.", vbInformation, "Copiar columnas"
End Sub
Sub BorraEspacios()
Dim sTexto, A, B, C As String
Dim x As Integer
Set rPeliculas = Selection
FilaDesde = rPeliculas.Row
For Each Celda In rPeliculas
sTexto = Celda.Text
sTexto = Trim(sTexto)
Celda.Offset(0, 0) = sTexto
Next Celda
End Sub
Sub EliminaBasura()
' 05/12/06 - Claudio
Dim
Dim
Dim
Dim
Dim
sTexto As String
A As String
B As String
C As String
Caracter As String
Dim x As Integer
Dim y As Integer
Caracter = InputBox("Ingrese el caracter de reemplazo.", _
"Eliminar basura")
Resp = MsgBox("Inicia el proceso ?", 1, "Eliminar basura")
If Resp <> 1 Then
MsgBox "Salir del proceso.", vbExclamation, "Salida"
Exit Sub
End If
Set rPeliculas = Selection
FilaDesde = rPeliculas.Row
For Each Celda In rPeliculas
sTexto = Celda.Text
sTexto = Trim(sTexto)
For x = 1 To Len(sTexto)
A = Mid(sTexto, x, 1)
y = Asc(A)
Select Case y
Case 1 To 9
Mid(sTexto, x, 1) = Caracter '"-"
Case Is = 10
Mid(sTexto, x, 1) = Caracter 'vbTab 'Chr(9)
Case 11 To 31
Mid(sTexto, x, 1) = Caracter '"-"
Case Is = 34
Mid(sTexto, x, 1) = "'"
Case 127 To 160
Mid(sTexto, x, 1) = Caracter '"-"
End Select
Next x
Celda.Offset(0, 0) = sTexto
Next Celda
MsgBox "Finalizado.", vbInformation, "Eliminar basura"
End Sub
Sub FoxSports()
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim
x As Long
y As Long
Z As Long
FilaDesde As Long
nSuperior As Long
nInferior As Long
nFila As Long
nColumna As Long
Dim rFechas As Range
Dim sTexto As String
sTexto = "Debe seleccionar una columna y varias filas." + vbCrLf + vbCrLf
sTexto = sTexto + "Inicio el proceso ?"
Resp = MsgBox(sTexto, vbYesNo, "Fox Sports")
If Resp <> vbYes Then End
x = Selection.Cells.Count
If x < 2 Then
MsgBox "Debe seleccionar un área de trabajo.", vbExclamation, "Error"
Exit Sub
End If
Set rFechas = Selection
FilaDesde = rFechas.Row
nColumna = rFechas.Column
y = FilaDesde
Z = FilaDesde + x
Do While y < Z
Cells(y, nColumna).Select
Cells(y, nColumna).Activate
nSuperior = Cells(y, nColumna).Borders(xlEdgeTop).LineStyle
nInferior = Cells(y, nColumna).Borders(xlEdgeBottom).LineStyle
If nSuperior = 1 Then
'inicio
sTexto = ""
nFila = y
End If
sTexto = sTexto + Trim(Cells(y, nColumna)) + "-"
If nInferior = 1 Then
Cells(nFila, nColumna) = sTexto
For x = nFila + 1 To y
Cells(x, nColumna) = ""
Next x
End If
y = y + 1
Loop
MsgBox "Finalizado.", vbInformation, "Fox Sports"
End Sub
Public Sub CopiaCols_telmo()
' copiarCols_telmo Macro
' copiar columnas en 1 sola
'
' Acceso directo: CTRL+q
'
Dim
Dim
Dim
Dim
Dim
Dim
Fila As Integer
Columna As Integer
Filas As Integer
Columnas As Integer
d As Integer
e As Integer
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
Fila = Filas
Columna = Columnas
d = 1
e = 2
Do While Columnas > 0
Selection.Cut
ActiveCell.Offset(Fila, -1).Select
ActiveSheet.Paste
Range(Cells((Filas * d) + 3, 2), Cells((Filas * e) + 2,
Columnas)).Select
d = d + 1
e = e + 1
Columnas = Columnas - 1
Loop
End Sub
Public Sub TransponeCeldasFilasAColumnas()
Dim
Dim
Dim
Dim
elementos(250, 250) As String
Filas, Fila, filasaux As Integer
Columnas, Columna, columnasaux As Integer
x, y As Integer
Set matriz = Selection
Filas = matriz.Rows.Count
Columnas = matriz.Columns.Count
Fila = matriz.Row
Columna = matriz.Column
If Filas > 250 Then
MsgBox "No debe superar lass 250 filas", vbCritical, "Error"
Exit Sub
End If
If Columnas > 250 Then
MsgBox "No debe superar las 250 columnas", vbCritical, "Error"
Exit Sub
End If
For filasaux = 1 To Filas
For columnasaux = 1 To Columnas
Texto = ActiveCell(filasaux, columnasaux).Text
elementos(columnasaux, filasaux) = Texto
Next columnasaux
Next filasaux
Selection.Clear
For y = 1 To Filas
For x = 1 To Columnas
Cells(x, y) = elementos(x, y)
Cells(x, y).Borders(xlEdgeLeft).LineStyle = 1
Cells(x, y).Borders(xlEdgeRight).LineStyle = 1
If Cells(x, y) <> "" Then
Cells(x, y).Borders(xlEdgeTop).LineStyle = 1
End If
If Cells(x, y) = "" And x = Columnas Then
Cells(x, y).Borders(xlEdgeBottom).LineStyle = 1
End If
Next x
Next y
End Sub
Public Sub UnirCeldasPorFila()
Dim
Dim
Dim
Dim
Dim
elementos(1500)
Texto As String
Filas, filasaux As Integer
Columnas, columnasaux As Integer
x As Integer
Filas = Selection.Rows.Count
Columnas = Selection.Columns.Count
If Filas > 2500 Then
MsgBox "No debe superar las 2500 filas", vbCritical, "Error"
Exit Sub
End If
For filasaux = 1 To Filas
Texto = ActiveCell(filasaux, 1).Text
For columnasaux = 2 To Columnas
Texto = Texto + ". " + ActiveCell(filasaux, columnasaux).Text
Next columnasaux
elementos(filasaux) = Texto
Next filasaux
Selection.Clear
For x = 1 To Filas
Selection(x, 1) = elementos(x)
Next x
End Sub

Documentos relacionados