Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

ESTADISTICAS Mundiales del CORONAVIRUS – Web Scraping Raspado Web #1007 Parte 1

Estadisticas Mundiales Coronavirus Raspado Web

Libro Excel Estadísticas Mundiales Covid-19 – Parte 1

La macro de Excel contenida en el libro de Excel que se muestra en este post, permite hacer WEB SCRAPING o RASPADO WEB a una página de estadísticas mundiales, obteniendo los datos actualizados de los casos de CORONAVIRUS o COVID-19 en todo el mundo, en otras palabras con una macro de Excel se obtendrán datos de la WEB en forma automática.

Los link a cada una de las partes del ejemplo como realizar con macro de Excel VBA un web scraping o raspado web , se muestran a continuación:

https://macrosenexcel.com/estadisticas-mundiales-del-coronavirus-web-scraping-raspado-web-1007/parte1

https://macrosenexcel.com/estadisticas-mundiales-del-coronavirus-web-scraping-raspado-web-1007-parte2

https://macrosenexcel.com/estadisticas-mundiales-del-coronavirus-web-scraping-raspado-web-1007-parte3/

https://macrosenexcel.com/estadisticas-mundiales-del-coronavirus-web-scraping-raspado-web-modificar-ribbon-1008-parte4//

https://macrosenexcel.com/estadisticas-mundiales-del-coronavirus-web-scraping-raspado-web-insertar-graficos-1009-parte5

Opera Excel como los mejores haz click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.

Suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macro en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.

Estadísticas on line Coronavirus en Excel

Es un libro de Excel que a través de web scraping o raspado web obtiene las estadísticas mundiales del coronavirus, entre otros datos obtiene la cantidad de casos a nivel mundial, casos de covid-19 por país, muertes producidas, personas recuperadas y muchos datos más.

Los datos se actualizan constantemente en dicha web por ende cada vez que se presiona el icono para conectar a la web se obtienen datos actualizados a cada instante,el libro «Estadísticas de Coronavirus Covid-19 en Excel«, permite guardar los datos en Access, pudiendo consultar los registros de días u horas pasadas, los registros que se obtienen son a nivel mundial detallado por cada país.

Para entender el ejemplo en forma sencilla se debe descargar el archivo comprimido que contiene tres archivos en el mismo directorio como consejo, pero no importa la carpeta donde de guarden ya que se debe configurar desde botón Setup, una sola vez por lo menos dichos valores se mantendrán hasta que sean cambiados nuevamente, se debe establecer la dirección del directorio donde se encuentra la base de datos Access y donde se guardarán los archivos exportados de Excel, PDF y Word, es decir el archivo con la macro de Excel, la base de datos de Access donde se guardarán los registros y el archivo PDF con la ayuda.



Quizás también interese leer:

Conectar Excel con Excel Consulta SQL Obtener Todos Datos Base del Mismo Libro
Conectar Excel con Excel Consulta SQL Copia Datos de Una Hoja a Otra de Distinto Libro
Conectar Excel con Excel Consulta SQL Rango Fechas con Datos Mismo Libro

Funciones del Libro Estadísticas Covid-19 en Excel

La principal función es mostrar en un Libro de Excel las estadísticas a nivel mundial de coronavirus covid-19,  para ello el libro contiene muchas macros de Excel que fueron publicadas en https://macrosenexcel.com y aquí son recopiladas en un solo libro, pero la principal macro que se quiere mostrar es la que enseña como hacer un Web Scraping o Raspado Web,  se muestra como con macros de Excel – VBA se pueden obtener datos de una página web y exponerlos en Excel para poder manipularlos.

Seguidamente se enumera todas la macros que se pueden observar en el Libro Estadísticas Mundiales de Covid 19.

  • Web Scraping – Raspado Web: Obtiene datos desde la Web y son mostrados en Excel
  • Modificación de Ribbon: Se agregan menú y botones personalizados
  •  Conexión de Excel con Access: Se guardan los datos de Excel en Access y luego se pueden recuperar para mostrarlos en Excel nuevamente
  • Exportar datos a PDB
  • Exportar datos a Excel
  • Exportar datos a Word, escribir y manejo de Word desde Excel
  • Exportar gráficos a Word
  • Exportar tablas a Word
  • Ordenar datos por varios criterios
  • Quitar Filtros
  • Limpiar Controles
  • Configurar Hoja
  • Vista Previa Hoja Excel
  • Imprimir en Excel
  • Configuración de parámetros del programa
  • Abrir PDF de libro de ayuda.
  • Crear Link a Google Maps o cualquier otra Web
  • Búsqueda de datos mientras se escribe o en tiempo real
  • Uso de SQL en Excel para Conectarse con Access e ingresar y consultar datos
  • Progress Bar o Barra de Progress

Todo lo mencionado se realiza con macros de Excel – VBA siendo el listado algo enumerativo, pero se pueden observar muchas macros más como manejo de formularios de controles ActiveX, etc, etc..

Descripción de los Menú del Libro de Excel con Estadísticas Covid-19

El sistema contiene una pestaña personalizada que se denomina Estadísticas Coronavirus – Covid 19, presionando en dicha pestaña se muestran una serie de iconos que están relacionados con macros personalizadas que permite realizar diferentes funciones, las cuales son descriptas al pasar el mouse y dejarlo un segundo sobre el icono del que se requiere obtener ayuda sobre la función que realiza, los botones o iconos de la pestaña personalizada son los siguientes:

ACTUALIZAR
Presionando este menú permite descargar datos actuales de la página de estadísticas mundiales, la cual muestra el día y hora de actualización de dichas estadísticas, realiza un web scraping o raspado web obteniendo los datos necesarios de la página a la cual se conecta.

ORDENAR
Presionando este menú permite ordenar los datos por cuatro criterios distintos y por el campo que se desee ya sea en forma ascendente o descendente.

LIMPIAR
Presionando este menú permite limpiar los controles Textbox para proceder a realizar una nueva búsqueda, también se logra el mismo resultado borrando con el teclado de a un carácter o marcando el texto con el mouse y presionando suprimir.

GUARDAR ACCESS
Presionando este menú guarda los datos del cuadro con las estadísticas en la base de datos de Access, este libro se conecta con una base de datos Access que se acompaña con la macro, si no se desea guardar los datos igual funciona al poder actualizar y tener los datos al día, la diferencia es que no se podrá guardar un registro de los datos anteriores.

SETUP HOJA
Presionando este menú permite configurar la hoja para impresión, básicamente configura el encabezado de la página.

VISTA PREVIA
Presionando este menú permite realizar una vista previa de la hoja de Excel.

IMPRIMIR HOJA
Presionando este menú permite imprimir la hoja de Excel que se está visualizando, se debe tener presente que el libro de Excel.

EXPORTAR APDF
Permite exportar o guardar en PDF la hoja de Excel, guardándose el fichero en el directorio determinado a tal fin en el Formulario de Configuración o Setup.

EXPORTAR A EXCEL
Permite exportar a Excel toda la hoja de Excel genera un archivo con el mismo nombre que la macro en el directorio determinado a tal fin en el Formulario de Configuración o Setup.

EXPORTAR A WORD
Permite exportar a Word la grilla donde que se encuentra en el libro, agrega texto pudiendo manejar Word desde Excel, también exporta desde Excel gráficos y tabla a Word.

SETUP
Permite configurar la dirección del directorio donde se encuentran el archivo de Access con la Base de Datos de índices y las carpetas para Guardar Archivos en PDF, Excel y Word.

AYUDA
Permite mostrar un archivo PDF con la ayuda de este aplicativo

Como se Opera el Sistema y Obtener de la Web las Estadísticas Mundiales del Coronavirus Detallado por País

Presionando el botón actualizar la macro de Excel se conectará y realizará un raspado web a una web de estadísticas mundiales y actualizará todas los ratios, pegando los datos actualizados en la hoja de Excel.

En las filas 6 a 19 se muestran los totales a nivel mundial, a la derecha se muestran cuatro gráficos uno con un mapa mundial , que mostrará la cantidad dependiendo del espacio del país en el gráfico y tres gráficos más para mostrar en forma gráfica los totales.

En el combobox Seleccione datos, se puede seleccionar, porque columna se desea buscar, en caso de que seleccione una columna distinta al ítem “país” se mostrará otro combobox para que se ingrese un rango de números.

A medida que se escribe caracteres en el Textbox destinado a ingresar los datos de búsqueda, se irán mostrando las coincidencias en el cuadro o grilla correspondiente que se encuentra desde la fila 21 en adelante.

En la fila 6 a 21 columnas F a I se encuentran una serie de links de interés con el caso de Coronavirus Covid 19, entre otros enlaces a la Organización Mundial de la Salud y Ministerios de Salud de distintos países.

En el combobox que se encuentra a la derecha se muestra la fecha de la cual se están mostrando los datos en la grilla de Excel, si se guardaron datos en Access desplegando el combobox se podrá seleccionar la fecha y la macro buscará los datos en Access y los mostrará en Excel en la grilla destinada a tal fin, actualizándose en forma automática los gráficos con los datos mostrados.

A la derecha arriba de los gráficos se encuentra el link a nuestro canal de YouTube, donde se podrá observar vídeo explicativo, de este como de cientos de ejemplos publicados, asimismo se encuentra al lado link la dirección WEB de nuestra página https://macrosenexcel.com donde se puede descargar este y muchos ejemplos más en forma gratuita.

Descarga del Libro Excel con código del ejemplo Como Hacer Scraping Web o Raspado Web

Antes de finalizar el post se encuentra el link de descarga del Libro de Excel de ejemplo que se usa en el vídeo relacionado que recomiendo ver para su mejor y más fácil entendimiento, se descarga en forma gratuita sin ninguna restricción, el código se puede adaptar a cada necesidad, aporta a sostener la esta web si está dentro de tus posibilidades, desde ya muchas gracias.

Código que va en el módulo Actualizar

Sub ObtieneEstadistica()
Dim MyRespu As String, MyTable As Object
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next

‘Elimina, crea hoja, asigna nombre
For Each she In Worksheets
mys = she.Name
If she.Name = «Actualizar» Then she.Delete
Next
ActiveWorkbook.Sheets.Add AFTER:=Worksheets(Worksheets.Count)
ActiveSheet.Name = «Actualizar»

UserForm1.ProgressBar1.Value = 20
UserForm1.Label1.Caption = «20 %»
DoEvents

Set a = Sheets(«Actualizar»)
a.Cells.Delete
Set b = Sheets(«Estadisticas»)

UserForm1.ProgressBar1.Value = 30
UserForm1.Label1.Caption = «30 %»
DoEvents

Application.DisplayAlerts = False

With CreateObject(«MSXML2.XMLHTTP»)
.Open «GET», «https://www.worldometers.info/coronavirus/», False
.send
ActiveWindow.Application.SendKeys «(~)»
MyRespu = StrConv(.responseBody, vbUnicode)
End With

MyRespu = Mid$(MyRespu, InStr(1, MyRespu, «<!DOCTYPE «))

With CreateObject(«htmlFile»)
.Write MyRespu

Set MyTable = .getElementsByTagName(«table»)(0)
End With

UserForm1.ProgressBar1.Value = 40
UserForm1.Label1.Caption = «40 %»
DoEvents

Sheets(«Actualizar»).Select
WriteTable MyTable

UserForm1.ProgressBar1.Value = 50
UserForm1.Label1.Caption = «50 %»
DoEvents

‘Copia y ordena los datos en la hoja Estadistica
If b.FilterMode = True Then b.ShowAllData
ufb = b.Range(«A» & Rows.Count).End(xlUp).Row
If ufb <= 21 Then ufb = 22
b.Range(«A22:I» & ufb).Clear

b.Range(«F2:I2»).Merge
b.Range(«F2:I2»).HorizontalAlignment = xlCenter

b.Range(«A6») = «TOTAL CASOS CORONAVIRUS – COVID 19»
b.Range(«A7») = «TOTAL CASOS»
b.Range(«A8») = «TOTAL MUERTOS»
b.Range(«A9») = «TOTAL RECUPERADOS»

b.Range(«A11») = «TOTAL CASOS ACTIVOS»
b.Range(«A12») = «TOTAL INFECTADOS»
b.Range(«A13») = «TOTAL CONDICION LEVE»
b.Range(«A14») = «TOTAL CONDICION CRITICA»

b.Range(«A16») = «TOTAL CASOS CERRADOS»
b.Range(«A17») = «TOTAL CASOS TUVIERON RESULTADO»
b.Range(«A18») = «TOTAL RECUPERADOS»
b.Range(«A19») = «TOTAL MUERTOS»

UserForm1.ProgressBar1.Value = 60
UserForm1.Label1.Caption = «60 %»
DoEvents

a.ranga(«J1») = MyRespu

‘Ultima actualización
Principio = «>Last updated: «
Final = «<a href=»»/coronavirus/coronavirus-cases/»»> Case Graphs»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
Lastupdate = Replace(dato, Principio, «»)
Lastupdate = Replace(Lastupdate, Chr(34), «»)
Lastupdate = Replace(Lastupdate, «</div>», «»)
Lastupdate = Replace(Lastupdate, «<div style=margin-top:20px; text-align:center; font-size:14px>», «»)
Lastupdate = Replace(Lastupdate, Chr(10), «») ‘elimina tabulaciones

‘Total de Casos
Principio = «<span style=»»color:#aaa»»>»
Final = «<a href=»»#countries»»>view by country</a>»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalCasos = Replace((Replace(dato, Principio, «»)), «,», «»)
Posi3 = InStr(TotalCasos, » «)
TotalCasos = Left(TotalCasos, Posi3)
TotalCasos = Replace(TotalCasos, «,», «»)

‘Total de Muertos
Principio = «<h1>Deaths:</h1>»
Final = «<h1>Recovered:</h1>»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalMuertos = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalMuertos = Replace(TotalMuertos, Chr(34), «») ‘elimina comillas
TotalMuertos = Replace(TotalMuertos, «<div class=maincounter-number>», «»)
TotalMuertos = Replace(TotalMuertos, «<span>», «») ‘elimina texto
TotalMuertos = Replace(TotalMuertos, «</span>», «»)
Posi3 = InStr(TotalMuertos, «</div>»)
TotalMuertos = Left(TotalMuertos, Posi3 – 1)
TotalMuertos = Replace(TotalMuertos, Chr(32), «») ‘elimina espacio blanco
TotalMuertos = Replace(TotalMuertos, Chr(10), «») ‘elimina tabulaciones

‘Total de Recuperados
Principio = «<h1>Recovered:</h1>»
Final = «<div style=»»margin-top:50px;»»>»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalRecuperados = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalRecuperados = Replace(TotalRecuperados, Chr(34), «») ‘elimina comillas
TotalRecuperados = Replace(TotalRecuperados, «<div class=maincounter-number style=color:#8ACA2B >», «»)
TotalRecuperados = Replace(TotalRecuperados, «<span>», «») ‘elimina texto
TotalRecuperados = Replace(TotalRecuperados, «</span>», «»)
Posi3 = InStr(TotalRecuperados, «</div>»)
TotalRecuperados = Left(TotalRecuperados, Posi3 – 1)
TotalRecuperados = Replace(TotalRecuperados, Chr(32), «») ‘elimina espacio blanco
TotalRecuperados = Replace(TotalRecuperados, Chr(10), «») ‘elimina tabulaciones

UserForm1.ProgressBar1.Value = 70
UserForm1.Label1.Caption = «70 %»
DoEvents

‘Total de Infectados
Principio = «<div class=»»panel-body»» style=»»text-align:center; height:200px;»»>»
Final = «<div style=»»font-size:13.5px»»>Currently Infected Patients»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalInfectados = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalInfectados = Replace(TotalInfectados, Chr(34), «») ‘elimina comillas
TotalInfectados = Replace(TotalInfectados, «<div class=panel_flip>», «»)
TotalInfectados = Replace(TotalInfectados, «<div class=panel_front style=width:100%;height:100%;>», «»)
TotalInfectados = Replace(TotalInfectados, «<div class=number-table-main>», «»)
Posi3 = InStr(TotalInfectados, «</div>»)
TotalInfectados = Left(TotalInfectados, Posi3 – 1)
TotalInfectados = Replace(TotalInfectados, Chr(32), «») ‘elimina espacio blanco
TotalInfectados = Replace(TotalInfectados, Chr(10), «») ‘elimina tabulaciones

‘Total de Condicion Leve
Principio = «Currently Infected Patients</div>»
Final = «<div style=»»font-size:13px»»>in Mild Condition»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalLeves = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalLeves = Replace(TotalLeves, Chr(34), «») ‘elimina comillas
TotalLeves = Replace(TotalLeves, «<div style=padding-top:20px;position:relative;text-align:center; >», «»)
TotalLeves = Replace(TotalLeves, «<div style=float:left; text-align:center>», «»)
TotalLeves = Replace(TotalLeves, «<span class=number-table style=color:#8080FF>», «»)
Posi3 = InStr(TotalLeves, «</span>»)
TotalLeves = Left(TotalLeves, Posi3 – 1)
TotalLeves = Replace(TotalLeves, Chr(32), «») ‘elimina espacio blanco
TotalLeves = Replace(TotalLeves, Chr(10), «») ‘elimina tabulaciones

‘Total de Condición Critica
Principio = «in Mild Condition</div>»
Final = «<div style=»»font-size:13px»»>Serious or Critical»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalCriticos = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalCriticos = Replace(TotalCriticos, Chr(34), «») ‘elimina comillas
TotalCriticos = Replace(TotalCriticos, «<br>», «»)
TotalCriticos = Replace(TotalCriticos, «</div>», «»)
TotalCriticos = Replace(TotalCriticos, «<div style=float:right; text-align:center><span class=number-table style=color:red >», «»)
Posi3 = InStr(TotalCriticos, «</span>»)
TotalCriticos = Left(TotalCriticos, Posi3 – 1)
TotalCriticos = Replace(TotalCriticos, Chr(32), «») ‘elimina espacio blanco
TotalCriticos = Replace(TotalCriticos, Chr(10), «») ‘elimina tabulaciones

‘Total de Casos Cerrados
Principio = «Closed Cases</span>»
Final = «<div style=»»font-size:13.5px»»>Cases which had an outcome:»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalCerrado = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalCerrado = Replace(TotalCerrado, Chr(34), «») ‘elimina comillas
TotalCerrado = Replace(TotalCerrado, «</div>», «»)
TotalCerrado = Replace(TotalCerrado, «<div class=panel-body style=text-align:center;height:200px;>», «»)
TotalCerrado = Replace(TotalCerrado, «<div class=panel_flip>», «»)
TotalCerrado = Replace(TotalCerrado, «<div class=panel_front style=width:100%;height:100%;>», «»)
TotalCerrado = Replace(TotalCerrado, «<div class=number-table-main>», «»)
Posi3 = InStr(TotalCerrado, «</div>»)
TotalCerrado = Left(TotalCerrado, Posi3 – 1)
TotalCerrado = Replace(TotalCerrado, Chr(32), «») ‘elimina espacio blanco
TotalCerrado = Replace(TotalCerrado, Chr(10), «») ‘elimina tabulaciones

‘Total de Recuperados
Principio = «Cases which had an outcome:</div>»
Final = «<div style=»»font-size:13px»»>Recovered»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalCerradoRecuperados = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalCerradoRecuperados = Replace(TotalCerradoRecuperados, Chr(34), «») ‘elimina comillas
TotalCerradoRecuperados = Replace(TotalCerradoRecuperados, «<div style=padding-top:20px >», «»)
TotalCerradoRecuperados = Replace(TotalCerradoRecuperados, «<div style=float:left; text-align:center>», «»)
TotalCerradoRecuperados = Replace(TotalCerradoRecuperados, «<span class=number-table style=color:#8ACA2B>», «»)
Posi3 = InStr(TotalCerradoRecuperados, «</span>»)
TotalCerradoRecuperados = Left(TotalCerradoRecuperados, Posi3 – 1)
TotalCerradoRecuperados = Replace(TotalCerradoRecuperados, Chr(32), «») ‘elimina espacio blanco
TotalCerradoRecuperados = Replace(TotalCerradoRecuperados, Chr(10), «») ‘elimina tabulaciones

‘Total de Muertos
Principio = «Recovered / Discharged</div>»
Final = «<div style=»»font-size:13px»»>Deaths»
Posi1 = InStr(MyRespu, Principio)
Posi2 = InStr(MyRespu, Final)
dato = Mid(MyRespu, Posi1, (Posi2 – Posi1))
TotalCerradoMuertos = Replace((Replace(dato, Principio, «»)), «,», «»)
TotalCerradoMuertos = Replace(TotalCerradoMuertos, Chr(34), «») ‘elimina comillas
TotalCerradoMuertos = Replace(TotalCerradoMuertos, «<br>», «»)
TotalCerradoMuertos = Replace(TotalCerradoMuertos, «</div>», «»)
TotalCerradoMuertos = Replace(TotalCerradoMuertos, «<div style=float:right; text-align:center><span class=number-table>», «»)
Posi3 = InStr(TotalCerradoMuertos, «</span>»)
TotalCerradoMuertos = Left(TotalCerradoMuertos, Posi3 – 1)
TotalCerradoMuertos = Replace(TotalCerradoMuertos, Chr(32), «») ‘elimina espacio blanco
TotalCerradoMuertos = Replace(TotalCerradoMuertos, Chr(10), «») ‘elimina tabulaciones

UserForm1.ProgressBar1.Value = 80
UserForm1.Label1.Caption = «80 %»
DoEvents

b.Range(«F2») = Lastupdate
Application.EnableEvents = False
b.ComboBox2 = Lastupdate

b.Range(«D7») = TotalCasos
b.Range(«D8») = TotalMuertos
b.Range(«D9») = TotalRecuperados

b.Range(«D12») = TotalInfectados
b.Range(«D13») = TotalLeves
b.Range(«D14») = TotalCriticos

b.Range(«D17») = TotalCerrado
b.Range(«D18») = TotalCerradoRecuperados
b.Range(«D19») = TotalCerradoMuertos

uf = a.Range(«A» & Rows.Count).End(xlUp).Row + 1
a.Range(«A2:I» & uf).Copy
b.Range(«A22»).PasteSpecial xlPasteValues

b.Range(«A21») = «País»
b.Range(«B21») = «Casos»
b.Range(«C21») = «Nuevos Casos»
b.Range(«D21») = «Muertes»
b.Range(«E21») = «Nuevas Muertes»
b.Range(«F21») = «Recuperados»
b.Range(«G21») = «Casos Activos»
b.Range(«H21») = «Casos Criticos»
b.Range(«I21») = «Casos/1M Pob»

uf = b.Range(«A» & Rows.Count).End(xlUp).Row – 1
For x = 3 To 9
For j = 22 To uf
If b.Cells(j, x) = Empty Then b.Cells(j, x) = 0
Next j
Next x

UserForm1.ProgressBar1.Value = 90
UserForm1.Label1.Caption = «90 %»
DoEvents

‘uf = b.Range(«A» & Rows.Count).End(xlUp).Row
‘For x = 23 To uf Step 2
‘b.Range(«A» & x & «:I» & x).Interior.Color = 13082801 ‘morado claro 13082801 ‘5296274 verde claro
‘Next x
‘b.Range(«A» & uf & «:I» & uf).Font.Bold = True
Call Formato

Application.DisplayAlerts = False
Application.ScreenUpdating = False
‘MsgBox («Los datos se han importado con éxito » & b.Range(«E2»)), vbInformation, «AVISO»
a.Delete
b.Select
Range(«A1»).Select

UserForm1.ProgressBar1.Value = 100
UserForm1.Label1.Caption = «100 %»
DoEvents

Unload UserForm1
Application.StatusBar = Clear
‘Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Public Sub WriteTable(ByVal MyTable As Object, Optional ByVal StarR As Long = 1, Optional ByVal Ws As Worksheet)
Dim tSection As Object, tRow As Object, tCell As Object, tr As Object, td As Object, R As Long, C As Long, tBody As Object
Dim Titulos As Object, Titulo As Object, CantCol As Long

If Ws Is Nothing Then Set Ws = ActiveSheet
R = StarR
With ActiveSheet
Set Titulos = MyTable.getElementsByTagName(«th»)
For Each Titulo In Titulos
CantCol = CantCol + 1
.Cells(StarR, CantCol) = Titulo.innerText
Next Titulo
StarR = StarR + 1
Set tBody = MyTable.getElementsByTagName(«tbody»)
For Each tSection In tBody ‘HTMLTableSection
Set tRow = tSection.getElementsByTagName(«tr») ‘HTMLTableRow
For Each tr In tRow
R = R + 1
Set tCell = tr.getElementsByTagName(«td»)
C = 1
For Each td In tCell ‘DispHTMLElementCollection
.Cells(R, C).Value = td.innerText ‘HTMLTableCell
C = C + 1
Next td
Next tr
Next tSection
End With
End Sub

Código que va en el módulo Herramientas

Sub Formato()
Set d = Sheets(«Estadisticas»)

d.Range(«A2:V4»).Interior.Color = 12611584 ‘celeste oscuro
d.Range(«E2:I4,B2:C4»).Font.Color = 12611584 ‘celeste oscuro
d.Range(«A2:A3,D3»).Font.Color = 16777215 ‘blanco
d.Range(«A1:V1»).Interior.Color = 0 ‘negro
d.Range(«A1:V1»).Font.Color = 16777215 ‘blanco
d.Range(«F6:I19»).Interior.Color = 16777215 ‘blanco
d.Range(«F6:I6»).Interior.Color = 13082801 ‘Morado claro

With d.Range(«A21:I21»)
.Interior.Color = 0 ‘negro
.Font.Color = 16777215 ‘blanco
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With

uf = d.Range(«A» & Rows.Count).End(xlUp).Row
If uf < 21 Then uf = 21

For x = 23 To uf Step 2
d.Range(«A» & x & «:I» & x).Interior.Color = 13082801 ‘morado claro 13082801 ‘5296274 verde claro
Next x

d.Range(«J:J»).Interior.Color = xlNone
d.Range(«J1:J» & uf).Interior.Color = 49407

d.Range(«B22:H» & uf & «,D7:D9,D12:D14,D17:D19»).NumberFormat = «#,##0»
d.Range(«I22:I» & uf & «,D7:D9,D12:D14,D17:D19»).NumberFormat = «#,##0.00»

d.Range(«A:A»).ColumnWidth = 17
d.Range(«B:B»).ColumnWidth = 10.71
d.Range(«C:C»).ColumnWidth = 12.14
d.Range(«D:D»).ColumnWidth = 12
d.Range(«E:E»).ColumnWidth = 14
d.Range(«F:F»).ColumnWidth = 11.86
d.Range(«G:G»).ColumnWidth = 12.43
d.Range(«H:H»).ColumnWidth = 12.57
d.Range(«I:I»).ColumnWidth = 12.43

With d.Range(«A21:I» & uf)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Borders(xlInsideVertical).LineStyle = xlContinuous
.Borders(xlInsideVertical).Weight = xlThin
.Borders(xlInsideHorizontal).LineStyle = xlNxlContinuousone
.Borders(xlInsideHorizontal).Weight = xlThin
.VerticalAlignment = xlCenter
End With

With d.Range(«A» & uf & «:I» & uf)
.Borders(xlEdgeLeft).LineStyle = xlContinuous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeBottom).LineStyle = xlContinuous
.Borders(xlEdgeBottom).Weight = xlThin
.Borders(xlEdgeRight).LineStyle = xlContinuous
.Borders(xlEdgeRight).Weight = xlThin
.Font.Bold = True
End With

‘Link a google maps
uf = d.Range(«A» & Rows.Count).End(xlUp).Row – 1
For x = 22 To uf
d.Range(«I» & x) = d.Range(«I» & x) * 1 ‘multiplica por 1 para tranformar texto en número
d1 = «https://maps.google.es/maps?q=» & d.Range(«A» & x)
dt = d.Range(«A» & x)
d.Hyperlinks.Add Anchor:=d.Range(«A» & x), Address:=d1, TextToDisplay:=dt
Next x
End Sub

Sub Limpiar()
Set a = Sheets(«Estadisticas»)
a.Range(«C2:D3»).ClearContents
a.TextBox2.Visible = False
a.ComboBox1 = «País»
a.TextBox1 = Clear
End Sub

Sub GuardarPDF()
Set b = Sheets(«Estadisticas»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
nompdf = b.Range(«A1″) & » » & Date
nompdf = Replace(nompdf, «\», «-«)
nompdf = Replace(nompdf, «/», «-«)
nompdf = Replace(nompdf, «:», «-«)
nompdf = Replace(nompdf, «*», «-«)
nompdf = Replace(nompdf, «?», «-«)
nompdf = Replace(nompdf, «»»», «-«)
nompdf = Replace(nompdf, «<«, «-«)
nompdf = Replace(nompdf, «>», «-«)
nompdf = Replace(nompdf, «|», «-«)
nompdf = Replace(nompdf, «(«, «»)
nompdf = Replace(nompdf, «)», «-«)

ruta = Sheets(«Parametros»).Range(«E2»)
rutapdf1 = ruta & «\» & nompdf & «.pdf»
b.Range(«A1:I» & uf).ExportAsFixedFormat Type:=xlTypePDF, Filename:=rutapdf1, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox («El archivo se guardó con éxito»), vbInformation, «AVISO»
End Sub

Sub ExportaExcel()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set b = Sheets(«Estadisticas»)
uf = Range(«A» & Rows.Count).End(xlUp).Row
nomexc = b.Range(«A1″) & » » & Date
nomexc = Replace(nomexc, «\», «-«)
nomexc = Replace(nomexc, «/», «-«)
nomexc = Replace(nomexc, «:», «-«)
nomexc = Replace(nomexc, «*», «-«)
nomexc = Replace(nomexc, «?», «-«)
nomexc = Replace(nomexc, «»»», «-«)
nomexc = Replace(nomexc, «<«, «-«)
nomexc = Replace(nomexc, «>», «-«)
nomexc = Replace(nomexc, «|», «-«)
nomexc = Replace(nomexc, «(«, «»)
nomexc = Replace(nomexc, «)», «-«)

ruta = Sheets(«Parametros»).Range(«D2»)
rutaexc1 = ruta & «\» & nomexc & «.xlsx»
nomarchi = nomexc & «.xlsx»

ActiveSheet.Copy
ActiveSheet.Shapes(«Combobox1»).Delete
ActiveSheet.Shapes(«Textbox1»).Delete
‘ActiveSheet.Columns(«A:H»).AutoFit

ActiveWorkbook.SaveAs Filename:=rutaexc1, FileFormat:=xlOpenXMLWorkbook
Workbooks(nomarchi).Close True

MsgBox («El archivo Excel se generó con éxito»), vbInformation, «AVISO»
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Sub VistaPrevia()
On Error Resume Next
Application.Dialogs(xlDialogPrintPreview).Show
End Sub

Sub Imprime()
On Error Resume Next
ActiveSheet.PrintOut Copies:=2, Collate:=True, IgnorePrintAreas:=False
End Sub

Sub Ordenar()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Set a = Sheets(«Estadisticas»)
‘Ordena datos de la base en forma descendente para cargar datos descendente en combobox
uf = a.Range(«C» & Rows.Count).End(xlUp).Row
R = «I14:I» & uf
r1 = «A14:I» & uf

‘sorts the data
a.Sort.SortFields.Clear
a.Sort.SortFields.Add Key:=Range(R), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With a.Sort
.SetRange Range(r1)
.header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Sub Quitafiltro()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
On Error Resume Next
Set a = Sheets(«Estadisticas»)
If a.FilterMode = True Then a.ShowAllData
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Código que va en el módulo Insertar

Sub InsertaEstadisticasCovid19()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim cn As ADODB.Connection, rs As ADODB.Recordset
On Error Resume Next
Set a = Sheets(«Estadisticas»)
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
mybookindice = Sheets(«Parametros»).Range(«C2»)
cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & mybookindice & «;»

‘Verifica si la fecha y hora que se intenta ingresar ya fue registrada
‘Sql = «SELECT Fecha, Pais, Casos, Nuevos_Casos, Muertes, Nuevas_Muertes, Recuperados, Casos_Activos, Casos_Criticos, Casos_1M_Pob FROM DB_COVID_19 WHERE Fecha = ‘» & a.ComboBox2 & «‘»
Sql = «SELECT Fecha FROM DB_COVID_19 WHERE Fecha = ‘» & a.ComboBox2 & «‘»
Set rs = cn.Execute(Sql)
myfecha = rs.fields(0)
Set rs = Nothing
If myfecha <> Empty Then MsgBox («Los datos ya existen en la base de datos»), vbCritical, «AVISO»: Exit Sub

‘Graba datos en base de datos
uf = a.Range(«A» & Rows.Count).End(xlUp).Row – 1
For x = 22 To uf
Sql = «INSERT INTO DB_COVID_19 (Fecha, Pais, Casos, Nuevos_Casos, Muertes, Nuevas_Muertes, Recuperados, Casos_Activos, Casos_Criticos, Casos_1M_Pob) VALUES (‘» & a.ComboBox2 & «‘, ‘» & a.Cells(x, «A») & «‘, » & a.Cells(x, «B») & «, » & a.Cells(x, «C») & «, » & a.Cells(x, «D») & «, » & a.Cells(x, «E») & «, » & a.Cells(x, «F») & «, » & a.Cells(x, «G») & «, » & a.Cells(x, «H») & «, ‘» & a.Cells(x, «I») & «‘)»
cn.Execute Sql
Next x

‘Application.EnableEvents = False ‘Anula el evento change del combbox al escribir en el
‘Carga combobox
a.ComboBox2.Clear
Sql = «SELECT DISTINCT Fecha FROM DB_COVID_19»
Set rs = cn.Execute(Sql)
Do While rs.EOF = False
a.ComboBox2.AddItem rs.fields(0)
rs.MoveNext
Loop
‘Application.EnableEvents = True

Set rs = Nothing
cn.Close
Set cn = Nothing

MsgBox («Las estadísticas se guardaron con éxito en la base de datos access»), vbInformation, «AVISO»
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Código que va en el módulo Menu



#If VBA7 And Win64 Then
‘Si es de 64 bits
Public Declare PtrSafe Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
Public Declare PtrSafe Function FindWindow Lib «user32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Public Declare PtrSafe Function GetWindowLongPtr Lib «user32» Alias «GetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long) As LongPtr
Public Declare PtrSafe Function SetWindowLongPtr Lib «user32» Alias «SetWindowLongPtrA» (ByVal hwnd As LongPtr, ByVal nIndex As Long, ByVal dwNewLong As LongPtr) As LongPtr
Public Declare PtrSafe Function DrawMenuBar Lib «user32» (ByVal hwnd As Long) As LongPtr
Public Declare PtrSafe Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As LongPtr, ByVal lpSubKey As String, phkResult As LongPtr) As LongPtr
Public Declare PtrSafe Function SetCursorPos Lib «user32» (ByVal x As LongPtr, ByVal y As LongPtr) As LongPtr
Public Declare PtrSafe Sub mouse_event Lib «user32» (ByVal dwFlags As LongPtr, ByVal dx As LongPtr, ByVal dy As LongPtr, ByVal cButtons As LongPtr, ByVal dwExtraInfo As LongPtr)
Public Declare PtrSafe Function SetWindowPos Lib «user32» (ByVal hwnd As LongPtr, ByVal hWndInsertAfter As LongPtr, ByVal x As LongPtr, ByVal y As LongPtr, ByVal cx As LongPtr, ByVal cy As LongPtr, ByVal wFlags As LongPtr) As LongPtr
Public Declare PtrSafe Function SetForegroundWindow Lib «user32» (ByVal hwnd As LongPtr) As LongPtr
#Else
‘Si es de 32 bits
Public Declare Function ShellExecute Lib «shell32.dll» Alias «ShellExecuteA» (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public Declare Function FindWindow Lib «USER32» Alias «FindWindowA» (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib «USER32» Alias «GetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib «USER32» Alias «SetWindowLongA» (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib «USER32» (ByVal hwnd As Long) As Long
Public Declare Function RegOpenKeyA Lib «advapire32.dll» (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function SetCursorPos Lib «USER32» (ByVal x As Long, ByVal y As Long) As Long
Public Declare Sub mouse_event Lib «USER32» (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
Public Declare Function SetWindowPos Lib «USER32» (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
PUBLIC Declare Function SetForegroundWindow Lib «user32» (ByVal hwnd As Long) As Long
#End If

Public llama

Sub macro11(control As IRibbonControl)
‘Menu Vista previa planilla
On Error Resume Next
Call VistaPrevia
End Sub
Sub macro12(control As IRibbonControl)
‘Menu imprime planilla
On Error Resume Next
Call Imprime
End Sub
Sub macro13(control As IRibbonControl)
‘Menu guarda en PDF
On Error Resume Next
Call GuardarPDF
End Sub
Sub macro14(control As IRibbonControl)
‘Menu exporta a Excel
On Error Resume Next
Call ExportaExcel
End Sub
Sub macro15(control As IRibbonControl)
‘Actualiza desde Explorer
On Error Resume Next
llama = 15
UserForm1.Show
End Sub
Sub macro16(control As IRibbonControl)
‘Guardar en Access
On Error Resume Next
Call InsertaEstadisticasCovid19
End Sub
Sub macro17(control As IRibbonControl)
‘Menu Ordena datos
On Error Resume Next
UserForm4.Show
End Sub
Sub macro18(control As IRibbonControl)
‘Menu Limpia textbox y combobox para realizar nueva busqueda
On Error Resume Next
Call Limpiar
End Sub

Sub macro22(control As IRibbonControl)
‘Menu Setup
On Error Resume Next
UserForm3.Show
End Sub
Sub macro23(control As IRibbonControl)
‘Menu ayuda
On Error Resume Next
ActiveWorkbook.FollowHyperlink ThisWorkbook.Path & «\» & «1007 Estadisticas Munciales Coronavirus Covid 19.pdf», , True
End Sub
Sub macro24(control As IRibbonControl)
‘Menu Actualiza y obtiene estadisticas de la web
On Error Resume Next
llama = 24
UserForm1.Show
End Sub
Sub macro25(control As IRibbonControl)
‘Menu Configurar Encabezado Hoja Excel
On Error Resume Next
UserForm2.Show
End Sub
Sub macro26(control As IRibbonControl)
‘Menu exporta a Word
On Error Resume Next
Call ExportaWord
End Sub
Sub macro27(control As IRibbonControl)
‘Menu quita filtro
On Error Resume Next
Call Quitafiltro
End Sub

Código que va en el módulo Word

Sub ExportaWord()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
‘Dim datos(0 To 1, 0 To 5) As String
On Error Resume Next
Set a = Sheets(«Estadisticas»)

‘Establecemos el nombre del fichero
nom = a.Range(«A1″) & » » & Date
If Len(nom) > 60 Then nom = Mid(nom, 1, 60)
Cad = Trim(nom)
Cad = Replace(Cad, «/», «_»)
Cad = Replace(Cad, «\», «_»)
Cad = Replace(Cad, «:», «_»)
Cad = Replace(Cad, «*», «_»)
Cad = Replace(Cad, «?», «_»)
Cad = Replace(Cad, Chr(34), «_») ‘reemplaza comilla por guion bajo
Cad = Replace(Cad, «<«, «_»)
Cad = Replace(Cad, «>», «_»)
Cad = Replace(Cad, «|», «_»)
Cad = Replace(Cad, «[«, «»)
Cad = Replace(Cad, «]», «»)
Cad = Replace(Cad, «(«, «»)
Cad = Replace(Cad, «)», «-«)
Cad = Replace(Cad, «|», «-«)
Cad = Replace(Cad, «»»», «-«)

nomarch = Cad & «.docx»
rutaescrito = Sheets(«Parametros»).Range(«F2») & «\» & nomarch ‘Dire carpeta guarda word y nombre archivo

Set objWord = CreateObject(«Word.Application»)
objWord.DisplayAlerts = wdAlertsNone
objWord.Visible = True
Application.StatusBar = «Procesando, aguarde …»

Set wdDoc = objWord.Documents.Add
objWord.Selection.TypeText Text:=»INFORME ESTADISTICA MUNDIAL CORONAVIRUS – COVID 19″

‘Formato a párrafos en este caso solo el primer párrafo
objWord.ActiveDocument.Paragraphs(1).Range.Bold = True
objWord.ActiveDocument.Paragraphs(1).Alignment wdAlignParagraphCenter
objWord.ActiveDocument.Paragraphs(1).Range.Font.Underline = wdUnderlineSingle

objWord.Selection.TypeParagraph
objWord.Selection.TypeParagraph
objWord.Selection.TypeText Text:=»Seguidamente presentamos el panorama mundial del virus Covid 19 – Coronavirus:»

objWord.Selection.TypeParagraph
objWord.Selection.TypeParagraph
objWord.Selection.TypeText Text:=»[CUADRO1]»

‘Copia Grafico
objWord.Selection.TypeParagraph
objWord.Selection.TypeParagraph
objWord.Selection.TypeText Text:=»Seguidamente se muestra en forma gráfica a nivel mundial los infectados por Covid 19 – Coronavirus:»
objWord.Selection.TypeParagraph
objWord.Selection.TypeParagraph
objWord.Selection.TypeText Text:=»[GRA1]»
objWord.Selection.TypeParagraph
objWord.Selection.TypeText Text:=»[GRA2]»
objWord.Selection.TypeParagraph
objWord.Selection.TypeText Text:=»[GRA3]»
objWord.Selection.TypeParagraph
objWord.Selection.TypeText Text:=»[GRA4]»

‘Copia tabla
uf = a.Range(«A» & Rows.Count).End(xlUp).Row + 1
a.Range(«A21:I» & uf).Copy
ts = «[CUADRO1]»
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute findText:=ts
While objWord.Selection.Find.Found = True
objWord.Selection.PasteExcelTable False, True, False
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute findText:=ts
Wend

For x = 1 To ActiveSheet.ChartObjects.Count
ActiveSheet.ChartObjects(x).CopyPicture
xx = Selection.Name

ts = «[GRA» & x & «]»
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute findText:=ts
While objWord.Selection.Find.Found = True
objWord.Selection.Paste ‘ False, True, False
objWord.Selection.Move 6, -1
objWord.Selection.Find.Execute findText:=ts
can = can + 1
Wend
Next x

‘Guarda el archivo con el nombre asignado
wdDoc.SaveAs Filename:=rutaescrito, FileFormat:=wdFormatXMLDocument
‘wdDoc.Close
objWord.Quit

MsgBox («Se exportaron con éxito los datos a Word»), vbInformation, «AVISO»

Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Código que va en el userform1

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
On Error GoTo Fin
If CloseMode <> 1 Then Cancel = True
Fin:
End Sub
Private Sub UserForm_Activate()
Select Case llama
Case Is = 15
‘Call ObtieneEstadisticasExplorer
Case Is = 24
Call ObtieneEstadistica
End Select
End Sub

Código que va en el userform2



Private Sub UserForm_Initialize()
Me.TextBox1 = «ANEXO A.3»
Me.TextBox2 = «ESTADISTICAS MUNDIALES»
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

Set b = Sheets(«Estadisticas»)
uf = b.Range(«A» & Rows.Count).End(xlUp).Row + 1

‘Configura página entre ello las filas a repetir
Application.PrintCommunication = False
With ActiveSheet.PageSetup
.PrintTitleRows = «$13:$13»
.PrintArea = «$A$13:$H$» & uf – 1
.LeftMargin = Application.CentimetersToPoints(3)
.RightMargin = Application.CentimetersToPoints(1.5)
.TopMargin = Application.CentimetersToPoints(4)
.BottomMargin = Application.CentimetersToPoints(1.5)
.HeaderMargin = Application.CentimetersToPoints(2.5)
.FooterMargin = Application.CentimetersToPoints(0.5)
‘.Orientation = xlLandscape ‘apaisado
.Orientation = xlPortrait ‘vertical
.CenterHorizontally = True
.FitToPagesWide = 1
.FitToPagesTall = 10
‘.CenterHeader = «&»»Verdana,Negrita»»&9PLANILLA DE CALCULOS JUDICIALES&»»Verdana,Negrita»»&10» & Chr(10) & «&»»Verdana,Negrita»»Tribunal Superior de Justicia de Córdoba» ‘Esto es para cordoba
‘.CenterHeader = «&»»Verdana,Negrita»»&9PLANILLA DE CALCULOS JUDICIALES&»»Verdana,Negrita»»&10» ‘ & Chr(10) & «&»»Verdana,Negrita»»Tribunal Superior de Justicia de Córdoba» ‘Esto es para todos
‘.LeftHeader = «»
‘.CenterHeader = «»
‘.RightHeader = «»
Application.PrintCommunication = True
.LeftHeader = «&»»Verdana,Negrita»»&9» & Me.TextBox1 & «&»»Verdana,Negrita»»&10» ‘ & Chr(10) & «&»»Verdana,Negrita»»Tribunal Superior de Justicia de Córdoba» ‘Esto es para todos
.CenterHeader = «&»»Verdana,Negrita»»&9» & Me.TextBox2 & «&»»Verdana,Negrita»»&10» ‘ & Chr(10) & «&»»Verdana,Negrita»»Tribunal Superior de Justicia de Córdoba» ‘Esto es para todos
.RightHeader = «&»»Verdana,Negrita»»&9» & Me.TextBox3 & «&»»Verdana,Negrita»»&10» ‘ & Chr(10) & «&»»Verdana,Negrita»»Tribunal Superior de Justicia de Córdoba» ‘Esto es para todos

End With

End Sub

Código que va en el userform3

Private Sub CheckBox1_Click()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If CheckBox1 = True Then
TextBox1 = ThisWorkbook.Path
TextBox2 = ThisWorkbook.Path
TextBox3 = ThisWorkbook.Path
TextBox4 = ThisWorkbook.Path
Else
TextBox1 = Clear
TextBox2 = Clear
TextBox3 = Clear
TextBox4 = Clear
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim path1 As String
On Error Resume Next
ruta = ActiveWorkbook.Path
ChDir ruta
path1 = Application.GetOpenFilename(«Archivos Excel (*.accdb*), *.db*»)
If path1 = «» Then
MsgBox «No ha seleccionado directorio carpeta Macro, seleccione directorio .», , «AVISO»
Exit Sub
End If
TextBox1 = path1
Sheets(«Configuracion»).Cells(2, «A») = TextBox1
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim path2 As String
On Error Resume Next
path2 = CreateObject(«shell.application»).browseforfolder(0, «Seleccione Carpeta», 0).Items.Item.Path
If path2 = «» Then
MsgBox «No ha seleccionado directorio carpeta PDF, seleccione directorio .», , «AVISO»
Exit Sub
End If
TextBox2 = path2
Sheets(«Configuracion»).Cells(2, «B») = TextBox2
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Private Sub CommandButton3_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim path3 As String
On Error Resume Next
path3 = CreateObject(«shell.application»).browseforfolder(0, «Seleccione Carpeta», 0).Items.Item.Path
If path3 = «» Then
MsgBox «No ha seleccionado directorio carpeta Word, seleccione directorio .», , «AVISO»
Exit Sub
End If
TextBox3 = path3
Sheets(«Configuracion»).Cells(2, «C») = TextBox3
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub CommandButton4_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim path4 As String
On Error Resume Next
path4 = CreateObject(«shell.application»).browseforfolder(0, «Seleccione Carpeta», 0).Items.Item.Path
If path4 = «» Then
MsgBox «No ha seleccionado directorio carpeta Excel, seleccione directorio .», , «AVISO»
Exit Sub
End If
TextBox4 = path4
Sheets(«Configuracion»).Cells(2, «D») = TextBox4
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub UserForm_Initialize()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set a = Sheets(«Parametros»)
TextBox1 = a.Cells(2, «C»)
TextBox2 = a.Cells(2, «D»)
TextBox3 = a.Cells(2, «E»)
TextBox4 = a.Cells(2, «F»)
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub UserForm_Terminate()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set a = Sheets(«Parametros»)
a.Cells(2, «C») = TextBox1
a.Cells(2, «D») = TextBox2
a.Cells(2, «E») = TextBox3
a.Cells(2, «F») = TextBox4
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Código que va en el userform4



Private Sub CommandButton1_Click()
Unload Me
End Sub

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim uf, ucw, r1, r2, Cb1, Cb2, Cb3, Cb4, or1, or2, or3, or4 As String
Dim cri1, cri2, cri3, cri4 As String
Dim x, ucn As Integer
Set a = Sheets(«Estadisticas»)
a.Select

‘rango de datos a filtrar
pf = 21
uf = a.Range(«A» & Rows.Count).End(xlUp).Row – 1
If a.Range(«A» & uf + 1) <> «Total:» Then uf = a.Range(«A» & Rows.Count).End(xlUp).Row

uc = a.Cells(21, Columns.Count).End(xlToLeft).Address
pc = a.Cells(21, Columns.Count).End(xlToLeft).End(xlToLeft).Address
wc = Mid(uc, InStr(uc, «$») + 1, InStr(2, uc, «$») – 2)
wc1 = Mid(pc, InStr(pc, «$») + 1, InStr(2, pc, «$») – 2)
r5 = wc1 & pf & «:» & wc & uf

‘Verifica que no se seleccione el mismo criterio de orden en caso que el combobox no este vacio

If ComboBox1 = Empty Then
MsgBox («Debe ingresar criterio de orden 1»), vbInformation, «AVISO»
ComboBox1.SetFocus
Exit Sub
End If

If ComboBox2 <> Empty Then
If ComboBox1 = Empty Then
MsgBox («Ingrese criterio de orden 1»), vbInformation, «ALERTA»
ComboBox1.SetFocus
Exit Sub
End If

If ComboBox2 = ComboBox1 Or ComboBox2 = ComboBox3 Or ComboBox2 = ComboBox4 Then
MsgBox («El criterio de orden está duplicado, verifique»), vbInformation, «ALERTA»
ComboBox2.SetFocus
Exit Sub
End If
End If

If ComboBox3 <> Empty Then

If ComboBox2 = Empty Then
MsgBox («Ingrese criterio de orden 2»), vbInformation, «ALERTA»
ComboBox2.SetFocus
Exit Sub
End If

If ComboBox3 = ComboBox1 Or ComboBox3 = ComboBox2 Or ComboBox3 = ComboBox4 Then
MsgBox («El criterio de orden está duplicado, verifique»), vbInformation, «ALERTA»
ComboBox2.SetFocus
Exit Sub
End If
End If

If ComboBox4 <> Empty Then

If ComboBox3 = Empty Then
MsgBox («Ingrese criterio de orden 3»), vbInformation, «ALERTA»
ComboBox3.SetFocus
Exit Sub
End If

If ComboBox4 = ComboBox1 Or ComboBox4 = ComboBox2 Or ComboBox4 = ComboBox3 Then
MsgBox («El criterio de orden está duplicado, verifique»), vbInformation, «ALERTA»
ComboBox2.SetFocus
Exit Sub
End If
End If

‘Determino el valor de cada combobox y en base a ello el rango donde esta el criteri de orden
For x = 1 To 9
If a.Cells(21, x) = ComboBox1 Then
k = a.Cells(21, x).Address(False, False)
k1 = Mid(k, 1, 1)
r1 = k & «:» & k1 & uf
End If
Next x

For x = 1 To 9
If a.Cells(21, x) = ComboBox2 Then
k = a.Cells(21, x).Address(False, False)
k1 = Mid(k, 1, 1)
r2 = k & «:» & k1 & uf
End If
Next x

For x = 1 To 9
If a.Cells(21, x) = ComboBox3 Then
k = a.Cells(21, x).Address(False, False)
k1 = Mid(k, 1, 1)
r3 = k & «:» & k1 & uf
End If
Next x

For x = 1 To 9
If a.Cells(21, x) = ComboBox4 Then
k = a.Cells(21, x).Address(False, False)
k1 = Mid(k, 1, 1)
r4 = k & «:» & k1 & uf
End If
Next x

If OptionButton1 = False Then
or1 = xlDescending
Else
or1 = xlAscending
End If

If OptionButton3 = False Then
or2 = xlDescending
Else
or2 = xlAscending
End If

If OptionButton5 = False Then
or3 = xlDescending
Else
or3 = xlAscending
End If

If OptionButton7 = False Then
or4 = xlDescending
Else
or4 = xlAscending
End If

‘sorts the data
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Clear

If ComboBox1 <> Empty And ComboBox2 = Empty And ComboBox3 = Empty And ComboBox4 = Empty Then
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r1) _
, SortOn:=xlSortOnValues, Order:=or1, DataOption:=xlSortNormal
End If

If ComboBox1 <> Empty And ComboBox2 <> Empty And ComboBox3 = Empty And ComboBox4 = Empty Then
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r1) _
, SortOn:=xlSortOnValues, Order:=or1, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r2) _
, SortOn:=xlSortOnValues, Order:=or2, DataOption:=xlSortNormal
End If

If ComboBox1 <> Empty And ComboBox2 <> Empty And ComboBox3 <> Empty And ComboBox4 = Empty Then
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r1) _
, SortOn:=xlSortOnValues, Order:=or1, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r2) _
, SortOn:=xlSortOnValues, Order:=or2, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r3) _
, SortOn:=xlSortOnValues, Order:=or3, DataOption:=xlSortNormal
End If

If ComboBox1 <> Empty And ComboBox2 <> Empty And ComboBox3 <> Empty And ComboBox4 <> Empty Then
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r1) _
, SortOn:=xlSortOnValues, Order:=or1, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r2) _
, SortOn:=xlSortOnValues, Order:=or2, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r3) _
, SortOn:=xlSortOnValues, Order:=or3, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets(«Estadisticas»).Sort.SortFields.Add Key:=Range(r4) _
, SortOn:=xlSortOnValues, Order:=or4, DataOption:=xlSortNormal
End If

With ActiveWorkbook.Worksheets(«Estadisticas»).Sort
.SetRange Range(r5)
.header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

‘a.Cells(1, 1).Select
MsgBox («Los datos se han ordenado con éxito»), vbInformation, «AVISO»
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub

Private Sub CommandButton3_Click()
ComboBox1 = Clear
ComboBox2 = Clear
ComboBox3 = Clear
ComboBox4 = Clear
End Sub

Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Set a = Sheets(«Estadisticas»)
a.Range(«A21»).Select
While ActiveCell <> Empty
ComboBox1.AddItem ActiveCell
ComboBox2.AddItem ActiveCell
ComboBox3.AddItem ActiveCell
ComboBox4.AddItem ActiveCell
ActiveCell.Offset(0, 1).Select
Wend
Application.ScreenUpdating = True
End Sub

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

Summary
Author Rating
1star1star1star1star1star
Aggregate Rating
no rating based on 0 votes

Entradas relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Comentarios (258)

I am the business owner of JustCBD Store label (justcbdstore.com) and am trying to develop my wholesale side of business. I am hoping anybody at targetdomain can help me . I considered that the most ideal way to accomplish this would be to talk to vape stores and cbd stores. I was hoping if anyone could suggest a reliable web-site where I can purchase Vape Store Email List I am already examining creativebeartech.com, theeliquidboutique.co.uk and wowitloveithaveit.com. On the fence which one would be the best solution and would appreciate any guidance on this. Or would it be much simpler for me to scrape my own leads? Ideas?

Responder

Этапы процедуры для организаций и услуга субсидиарная ответственность тема знакома каждому

Responder

I was able to find good info from your content.

Responder

Having read this I believed it was rather informative. I appreciate you taking the time and energy to put this content together. I once again find myself personally spending a lot of time both reading and commenting. But so what, it was still worth it!

Responder

Excellent post. I certainly love this site. Keep writing!

Responder

Spot on with this write-up, I actually feel this site needs much more attention. I’ll probably be returning to read through more, thanks for the advice!

Responder

After I initially commented I appear to have clicked on the -Notify me when new comments are added- checkbox and now whenever a comment is added I recieve 4 emails with the same comment. Is there a means you are able to remove me from that service? Many thanks!

Responder

Way cool! Some extremely valid points! I appreciate you writing this post and also the rest of the website is also very good.

Responder

Very good info. Lucky me I ran across your site by chance (stumbleupon). I’ve saved as a favorite for later!

Responder

Greetings! Very useful advice in this particular post! It is the little changes that produce the most important changes. Thanks a lot for sharing!

Responder

I truly love your website.. Great colors & theme. Did you create this site yourself? Please reply back as I’m planning to create my very own site and would like to find out where you got this from or exactly what the theme is named. Appreciate it!

Responder

Good post. I learn something new and challenging on blogs I stumbleupon everyday. It’s always useful to read through articles from other writers and use a little something from other websites.

Responder

That is a really good tip especially to those new to the blogosphere. Simple but very accurate information… Many thanks for sharing this one. A must read post!

Responder

Good day! I could have sworn I’ve visited this website before but after going through a few of the posts I realized it’s new to me. Regardless, I’m definitely happy I stumbled upon it and I’ll be bookmarking it and checking back often!

Responder

Aw, this was an exceptionally good post. Taking a few minutes and actual effort to produce a very good article… but what can I say… I hesitate a lot and don’t manage to get nearly anything done.

Responder

May I just say what a relief to discover somebody that truly knows what they are talking about over the internet. You actually realize how to bring an issue to light and make it important. More people need to read this and understand this side of the story. I was surprised that you’re not more popular since you definitely have the gift.

Responder

Howdy! I simply want to give you a huge thumbs up for your great information you’ve got right here on this post. I am coming back to your site for more soon.

Responder

Way cool! Some extremely valid points! I appreciate you writing this article plus the rest of the website is very good.

Responder

It’s nearly impossible to find educated people about this topic, however, you seem like you know what you’re talking about! Thanks

Responder

Greetings! Very helpful advice in this particular article! It’s the little changes that make the most significant changes. Many thanks for sharing!

Responder

Aw, this was an incredibly nice post. Taking a few minutes and actual effort to create a top notch article… but what can I say… I put things off a lot and never seem to get anything done.

Responder

I need to to thank you for this fantastic read!! I absolutely loved every bit of it. I have got you saved as a favorite to check out new things you post…

Responder

I’m very happy to find this site. I wanted to thank you for ones time for this particularly fantastic read!! I definitely appreciated every bit of it and I have you saved as a favorite to check out new stuff on your website.

Responder

You’re so awesome! I don’t suppose I’ve truly read something like that before. So great to find someone with some unique thoughts on this issue. Seriously.. many thanks for starting this up. This website is something that is needed on the web, someone with a bit of originality!

Responder

bookmarked!!, I like your site!

Responder

Pretty! This was an incredibly wonderful post. Many thanks for providing these details.

Responder

Hi, I do believe this is a great web site. I stumbledupon it 😉 I’m going to return once again since i have book-marked it. Money and freedom is the best way to change, may you be rich and continue to help other people.

Responder

Good day! I could have sworn I’ve been to your blog before but after looking at a few
of the articles I realized it’s new to me.
Anyways, I’m definitely happy I discovered it and I’ll be book-marking it
and checking back often!

Responder

I just want to mention I am just beginner to weblog and actually liked your web site. More than likely I’m planning to bookmark your blog . You actually have good stories. Thanks for revealing your webpage.

Responder

This blog was… how do you say it? Relevant!! Finally I have found something that helped me. Cheers!

Responder

Pretty! This has been an extremely wonderful post. Thank you for providing these details.

Responder

I would like to thank you for the efforts you’ve put in writing this site. I’m hoping to check out the same high-grade blog posts from you in the future as well. In fact, your creative writing abilities has inspired me to get my very own site now 😉

Responder

It’s hard to come by experienced people for this topic, however, you sound like you know what you’re talking about! Thanks

Responder

Nice blog here! Additionally your website so much up fast!
What web host are you the use of? Can I get your affiliate hyperlink in your host?

I wish my site loaded up as quickly as yours lol

Responder

After looking into a few of the blog articles on your web site, I honestly appreciate your way of writing a blog. I saved it to my bookmark webpage list and will be checking back in the near future. Please check out my website too and let me know what you think.

Responder

An outstanding share! I’ve just forwarded this onto a colleague who has been conducting a little homework on this. And he in fact bought me breakfast because I stumbled upon it for him… lol. So allow me to reword this…. Thanks for the meal!! But yeah, thanx for spending some time to discuss this matter here on your web site.

Responder

Can I simply just say what a relief to find a person that genuinely understands what they are talking about over the internet. You certainly understand how to bring a problem to light and make it important. More and more people have to look at this and understand this side of your story. I can’t believe you aren’t more popular since you most certainly have the gift.

Responder

You have made some decent points there. I checked on the net to find out more about the issue and found most individuals will go along with your views on this website.

Responder

There’s certainly a great deal to learn about this subject. I love all of the points you have made.

Responder

After I initially commented I seem to have clicked on the -Notify me when new comments are added- checkbox and from now on every time a comment is added I get 4 emails with the same comment. There has to be a means you can remove me from that service? Kudos!

Responder

It’s nearly impossible to find educated people in this particular subject, however, you seem like you know what you’re talking about! Thanks

Responder

I simply want to tell you that I’m newbie to blogs and honestly enjoyed this website. Likely I’m planning to bookmark your blog post . You actually come with exceptional article content. Thanks a lot for sharing your website page.

Responder

Way cool! Some very valid points! I appreciate you writing this post and also the rest of the site is also really good.

Responder

An intriguing discussion is worth comment. I believe that you ought to publish more about this topic, it may not be a taboo subject but typically people do not discuss these topics. To the next! Kind regards!!

Responder

Aw, this was an incredibly nice post. Finding the time and actual effort to generate a top notch article… but what can I say… I put things off a lot and don’t manage to get nearly anything done.

Responder

Way cool! Some very valid points! I appreciate you writing this article plus the rest of the website is really good.

Responder

Excellent web site you have got here.. It’s hard to find high-quality writing like yours nowadays. I honestly appreciate individuals like you! Take care!!

Responder

Great article. I will be going through a few of these issues as well..

Responder

Everyone loves it when individuals come together and share thoughts. Great site, stick with it!

Responder

Your style is unique in comparison to other people I’ve read stuff from. Thanks for posting when you have the opportunity, Guess I’ll just bookmark this site.

Responder

Good post. I’m dealing with many of these issues as well..

Responder

Your style is very unique in comparison to other people I’ve read stuff from. I appreciate you for posting when you’ve got the opportunity, Guess I’ll just book mark this site.

Responder

Way cool! Some very valid points! I appreciate you penning this write-up and also the rest of the site is also very good.|

Responder

Way cool! Some very valid points! I appreciate you writing this article plus the rest of the site is also really good.

Responder

I was able to find good info from your content.

Responder

When I originally commented I seem to have clicked on the -Notify me when new comments are added- checkbox and from now on each time a comment is added I receive 4 emails with the exact same comment. There has to be an easy method you can remove me from that service? Thank you!

Responder

Aw, this was a very good post. Taking a few minutes and actual effort to produce a really good article… but what can I say… I put things off a lot and don’t manage to get nearly anything done.

Responder

I found your blog website on google as well as check a few of your very early articles. Continue to maintain the very good operate. I just added up your RSS feed to my MSN News Viewers. Seeking forward to reading more from you later!?

Responder

Pretty! This was a really wonderful article. Many thanks for providing this info.

Responder

Hello, i think that i saw you visited my blog thus i came to ìreturn the favorî.I’m attempting to find things to improve my website!I suppose its ok to use some of your ideas!!|

Responder

Next time I read a blog, I hope that it won’t fail me as much as this particular one. I mean, I know it was my choice to read, but I actually thought you would have something interesting to talk about. All I hear is a bunch of complaining about something that you could possibly fix if you weren’t too busy searching for attention.

Responder

Having read this I believed it was very enlightening. I appreciate you taking the time and energy to put this informative article together. I once again find myself personally spending way too much time both reading and posting comments. But so what, it was still worth it!

Responder

Wow, that’s what I was looking for, what a data! existing here at this weblog, thanks admin of this web site.

Responder

There’s definately a lot to learn about this subject. I love all of the points you made.

Responder

Very good article. I certainly appreciate this site. Continue the good work!

Responder

pitkävetovihjeet

Responder

Achieving your fitness goal does not need a certified personal trainer or an expensive gym memberships, especially when you have the budget and the space to consider practically every workout machine in the market.

Responder

It’s really a great and useful piece of information. I’m satisfied that you just shared this useful info with us.
Please stay us informed like this. Thanks for sharing.

Responder

KAISERSLUST Plattform der Wiener Sex Scene Sex in Wien – Girls in Wien – Escorte Wien – Transen Wien – Hostessen Wien Escort Wien – Massagen Wien – Studios Wien – Laufhaus und Bordelle Wien Asiatinnen Wien – Sex in Wien – Kaiserslust – Der Kaiser hat Lust – Sex

Responder

Very nice blog post. I certainly appreciate this site. Thanks!

Responder

Everything is very open with a clear clarification of the issues. It was definitely informative. Your site is useful. Many thanks for sharing!

Responder

Aw, this was an incredibly good post. Taking a few minutes and actual effort to make a really good article… but what can I say… I hesitate a whole lot and never manage to get anything done.

Responder

Shop; Unique Functions. Simple Product Layouts. Post with review. Advanced Product Layout. Best conversion pages. Frontend Search · Listing example …

Responder

Pretty! This was a really wonderful article. Thank you for providing this information.

Responder

It’s enormous that you are getting ideas from this piece of writing as well as from our argument made here.
cheap flights 3gqLYTc

Responder

netticasinot pikakasinot parhaat netticasinot

Responder

You are so interesting! I don’t think I’ve truly read a single thing like that before. So wonderful to find someone with some unique thoughts on this subject matter. Really.. thank you for starting this up. This web site is something that is needed on the web, someone with a little originality!

Responder

Hello there! I simply would love to provide a huge thumbs up for the fantastic details you have right here on this blog post. I will be returning to your blog for more quickly.

Responder

Hello, i feel that i noticed you visited my website so i got here to return the want?.I am trying to in finding issues to improve my website!I guess its adequate to use a few of your concepts!!|

Responder

Greetings! Very useful advice within this article! It is the little changes which will make the largest changes. Thanks a lot for sharing!

Responder

Welcome to iBeautys Best, iBeautys Best is the number one destination for Latest Beauty Products. Here you can easily buy your desired product from all over the world with very reasonable price.

Responder

Aw, this was a very good post. Spending some time and actual effort to create a superb article… but what can I say… I procrastinate a lot and don’t manage to get anything done.

Responder

I couldn’t refrain from commenting. Well written!

Responder

Would you be interested in exchanging web links?

Responder

Thanks for any other informative website. Where
else may just I get that kind of information written in such an ideal means?

I have a challenge that I’m just now running on, and I’ve been at the
glance out for such info.

Responder

Hi! I simply wish to give you a big thumbs up for the great information you have here on this post. I am returning to your blog for more soon.

Responder

your writing really helped me I know what steps to take.

Responder

We tested coffee makers for the water temperature during the brew cycle and the brewing time as well as the temperature of the coffee at the end of brewing and during the keep warm cycle. In addition, we evaluated each brewer’s ease of use, including how easy it was to read and use the controls, access the water tank and brew basket, read the markings on the tank and carafe, whether or not it had automatic keep warm and shut off cycles, and the ease of cleaning the carafe.

Responder

David-Home Northeast is your premier source for all of your Real Estate investing needs. We provide a variety of solutions for sellers looking to sell fast and investors looking to grow their real estate investment portfolios for better returns. At David-Home Northeast, we are dedicated to improving and redeveloping the areas that we operate in. We specialize in helping sellers of distressed properties (single and multi-family homes, commercial, retail, bank REOs, etc.) find buyers looking to invest. Let us put our network of cash home buyers and private money lenders to work for you so you can say “David” to that old unwanted property.

Responder

ESTADISTICAS ❤️ Mundiales del ? CORONAVIRUS – Web Scraping – Raspado Web #1007
[url=http://www.g138wwnzb5m39igv2p64lp6fu87u1666s.org/]ucwetzfskb[/url]
acwetzfskb
cwetzfskb http://www.g138wwnzb5m39igv2p64lp6fu87u1666s.org/

Responder

After I initially commented I appear to have clicked on the -Notify me when new comments are added- checkbox and from now on each time a comment is added I get four emails with the same comment. Is there a means you are able to remove me from that service? Thanks!

Responder

Hello, i think that i saw you visited my weblog so i came to go back the favor?.I’m trying to find issues to improve my web site!I suppose its adequate to make use of some of your concepts!!|

Responder

This is a great tip especially to those fresh to the blogosphere. Simple but very accurate info… Appreciate your sharing this one. A must read article!

Responder

I usually do not even know how I stopped up below, but I believed this post was once
good. I usually do not realize who you’re however definitely you are visiting a popular blogger
in the event you aren’t already. Cheers!

Feel free to visit my web blog :: JoiUSeaver

Responder

Because the admin of this website is working, no question very shortly it will be well-known, due to its quality contents.|

Responder

An outstanding share, I simply provided this onto a colleague who was doing a little analysis on this. And also he actually purchased me breakfast because I located it for him. smile. So let me reword that: Thnx for the reward! Yet yeah Thnkx for spending the time to review this, I feel strongly regarding it and love learning more on this subject. Ideally, as you come to be know-how, would you mind updating your blog site with more information? It is very handy for me. Huge thumb up for this blog post!

Responder

Is Ibogaine effective in treating opiate withdrawal

Responder

Aw, this was a very good post. Taking the time and actual effort to generate a good article… but what can I say… I hesitate a lot and don’t manage to get nearly anything done.

Responder

I blog frequently and I seriously thank you for your information. The article has really peaked my interest. I will take a note of your site and keep checking for new information about once per week. I opted in for your RSS feed as well.

Responder

Way cool! Some extremely valid points! I appreciate you penning this article plus the rest of the site is also very good.

Responder

Way cool! Some very valid points! I appreciate you penning this post and the rest of the site is very good.

Responder

Natural Releaf CBD | New York CBD Store with locations in Murray Hill, NY | Upper East Side, NY | White Plains, NY Serving New York City, NY and Westchester, NY High Quality CBD Products With Lab Test

Responder

Great information. Lucky me I recently found your blog by chance (stumbleupon). I have book-marked it for later!

Responder

This design is steller! You obviously know how to keep a reader entertained. Between your wit and your videos, I was almost moved to start my own blog (well, almost…HaHa!) Wonderful job. I really enjoyed what you had to say, and more than that, how you presented it. Too cool!

Responder

This truly addressed my issue, thank you!

Responder

Best view i have ever seen !

Responder

An interesting discussion is definitely worth comment. There’s no doubt that that you need to publish more about this subject matter, it might not be a taboo subject but usually folks don’t talk about such topics. To the next! Best wishes!!

Responder

Love watching sunset !

Responder

Keep this going please, great job!

Responder

Love watching sunset !

Responder

Can I simply just say what a comfort to discover a person that really understands what they’re discussing on the net. You definitely know how to bring a problem to light and make it important. More people have to look at this and understand this side of your story. I was surprised you are not more popular since you most certainly have the gift.

Responder

ilmaiset pornovideot, pornovideot, porno videot, pornovideoita, porn videos, free pornvideos, porno video

Responder

winoutt

Responder

Right here is the perfect blog for everyone who wants to understand this topic. You know a whole lot its almost hard to argue with you (not that I really would want to…HaHa). You definitely put a new spin on a subject that’s been written about for decades. Wonderful stuff, just great!

Responder

You should be a part of a contest for one of the finest blogs on the internet. I most certainly will highly recommend this blog!

Responder

Love watching sunset !

Responder

I absolutely love your website.. Very nice colors & theme. Did you develop this website yourself? Please reply back as I’m planning to create my own website and want to find out where you got this from or just what the theme is named. Kudos!

Responder

Having read this I thought it was very informative. I appreciate you finding the time and effort to put this article together. I once again find myself personally spending a significant amount of time both reading and posting comments. But so what, it was still worth it!

Responder

Best view i have ever seen !

Responder

I always used to study piece of writing in news papers but now as I am a user of internet so from now I am using net for articles, thanks to web.|

Responder

Love watching sunset !

Responder

Way cool! Some extremely valid points! I appreciate you penning this article and the rest of the site is also very good.

Responder

There is definately a great deal to find out about this issue. I like all the points you have made.

Responder

An intriguing discussion is definitely worth comment. I think that you need to publish more about this issue, it may not be a taboo subject but generally people don’t talk about such topics. To the next! Kind regards!!

Responder

ilmaiset videot, ilmaiset pornovideot, ilmaiset porno videot, porno video, porno videot

Responder

F*ckiní remarkable things here. Iím very glad to see your post. Thanks a lot and i’m looking forward to contact you. Will you please drop me a mail?

Responder

I every time emailed this website post page to all my friends, since if like to read it after that my contacts will too.|

Responder

I am extremely impressed with your writing skills as well as with the layout on your blog. Is this a paid theme or did you customize it yourself? Either way keep up the excellent quality writing, it is rare to see a great blog like this one these days..

Responder

Whats Happening i’m new to this, I stumbled upon this I’ve found It absolutely useful and it has helped me out loads. I hope to contribute & aid other customers like its aided me. Good job.

Responder

Temperature Screening

Responder

I love looking through a post that can make people think. Also, thanks for allowing me to comment!

Responder

Your style is really unique compared to other folks I’ve read stuff from. Thank you for posting when you’ve got the opportunity, Guess I will just book mark this web site.

Responder

You need to take part in a contest for one of the most useful websites on the internet. I will highly recommend this blog!

Responder

Magnificent beat ! I wish to apprentice while you amend your web site, how could i subscribe for a blog
web site? The account aided me a acceptable deal.

I had been tiny bit acquainted of this your broadcast provided bright clear idea

Responder

cbd oil

Responder

This is a topic which is close to my heart… Many thanks! Where are your contact details though?

Responder

We are building consultants. We perform roof assessments, window testing, and wall testing for quality assurance on new and existing buildings.

Responder

Spot on with this article, I truly think this internet site needs much more consideration. I?ll possibly be once again to read much more, thanks for that details.

Responder

Spot on with this write-up, I honestly believe this amazing site needs far more attention. I’ll probably be returning to read more, thanks for the advice!

Responder

Online jewelry boutique specializing in custom gold and silver pieces. For the hippy hearted fashion lover. Known for its custom lotus flower hoop earrings and large collection of hoop earrings. Customers enjoy the classic and unique versatile everyday jewelry designs. Glamour hippy began is also known for its dainty gold jewelry pieces. Bohemian chic styles with modern fashion flare. Great prices and affordable. Everyday pieces to statement piece designs for special occasions. Glamour hippy is inspired by diverse world culture and it reflects into the ever changing designs. Its customer enjoys unique pieces and comfort in style. Glamour hippy wants to be a part of its customers wardrobe for many years and part of great memories where ever the customer takes their jewelry pieces. Glamour hippy is glamour and hippy all in one. Shiny pretty pieces, Unique, Glamorous, boho chic, one of a kind, dainty, but statement worthy.

Responder

Everything is very open with a precise clarification of the issues. It was really informative. Your site is very useful. Thank you for sharing!

Responder

I like it whenever people get together and share views. Great website, keep it up!

Responder

netticasinot, netticasino, casino, kasinot, nettkasinot

Responder

It’s very easy to find out any topic on web as compared to textbooks, as I found this article at this web site.|

Responder

Nice post. I learn something totally new and challenging on blogs I stumbleupon on a daily basis. It’s always exciting to read articles from other writers and use a little something from other web sites.

Responder

The next time I read a blog site, I hope that it does not disappoint me as much as this set. I indicate, I recognize it was my selection to read, however I actually believed youd have something interesting to claim. All I listen to is a number of whining regarding something that you might fix if you werent as well active searching for attention.

Responder

I seriously love your site.. Very nice colors & theme. Did you create this amazing site yourself? Please reply back as I’m trying to create my own personal blog and would love to find out where you got this from or what the theme is named. Cheers!

Responder

This excellent website really has all the information and facts I needed concerning this subject and didn’t know who to ask.

Responder

Great write-up, I¡¦m regular visitor of one¡¦s site, maintain up the nice operate, and It is going to be a regular visitor for a lengthy time.

Responder

GEM-CAR auto repair shop management software is arguably the most comprehensive software of its kind currently available. Lauded for its easy to use modules including CRM, digital inspection and electronic punch clock: it provides the repair shop operator with a complete system to run the business. GEM-CAR puts the shop operator firmly in the driver’s seat. And if you are a fleet operator look for GEM-FLEET our fleet management software.

Responder

Pretty! This was an extremely wonderful article. Thanks for providing these details.

Responder

I will right away clutch your rss feed as I can not in finding your e-mail subscription link or newsletter service. Do you have any? Please let me realize so that I may just subscribe. Thanks.

Responder

Hi! I could have sworn I’ve visited your blog before but after going through many of the articles I realized it’s new to me. Anyhow, I’m definitely pleased I came across it and I’ll be book-marking it and checking back regularly!

Responder

Good post. I learn something new and challenging on websites I stumbleupon everyday. It will always be useful to read articles from other writers and practice something from their websites. |

Responder

I must convey my passion for your kindness giving support to men who really need assistance with this concern. Your real commitment to passing the solution across had become amazingly interesting and have specifically helped professionals much like me to arrive at their objectives. Your amazing interesting facts indicates a great deal to me and still more to my colleagues. Thanks a lot; from everyone of us.

Responder

Heya i am for the first time here. I came across this board and I find It really useful & it helped me out a lot. I hope to give something back and help others like you helped me.

Responder

You should take part in a contest for one of the finest websites online. I’m going to highly recommend this blog!

Responder

Spot on with this write-up, I absolutely feel this site needs a lot more attention. I’ll probably be returning to see more, thanks for the info!

Responder

I have learn a few good stuff here. Definitely value bookmarking for revisiting. I surprise how so much effort you put to make such a fantastic informative website.

Responder

I was able to find good advice from your content.

Responder

Hi, Neat post. There’s an issue with your site in web explorer, might test this? IE nonetheless is the marketplace chief and a good section of folks will miss your fantastic writing due to this problem.|

Responder

Hi there! I simply wish to offer you a big thumbs up for the great info you have got here on this post. I am coming back to your website for more soon.

Responder

pikakasinot, kasinot ilman rekisteröitymistä

Responder

It?s difficult to find well-informed people on this subject, but you seem like you know what you?re talking about! Thanks

Responder

I was able to find good advice from your articles.

Responder

bonukset

Responder

Hi there, just became alert to your blog through Google, and found that it is truly informative. I’m going to watch out for brussels. I will appreciate if you continue this in future. A lot of people will be benefited from your writing. Cheers!

Responder

This is my first time go to see at here and i am actually impressed to read all at single place.

Responder

I really love your blog.. Pleasant colors & theme. Did you develop this amazing site yourself? Please reply back as I’m wanting to create my own site and would like to learn where you got this from or what the theme is called. Cheers!

Responder

Find The Top Rated Web Hosting

Responder

local hookup site

Responder

I’m amazed, I have to admit. Seldom do I encounter a blog that’s both educative and engaging, and without a doubt, you have hit the nail on the head. The issue is something not enough people are speaking intelligently about. Now i’m very happy that I found this in my search for something regarding this.

Responder

Your style is so unique in comparison to other folks I have read stuff from. Thanks for posting when you have the opportunity, Guess I’ll just bookmark this blog.

Responder

It?s hard to find knowledgeable individuals on this topic, however you sound like you know what you?re discussing! Thanks

Responder

your writing really helped me I know what steps to take.

Responder

Great information. Lucky me I discovered your site by chance (stumbleupon). I’ve book-marked it for later!

Responder

buy drugs online legally

Responder

Hello there! Do you know if they make any plugins to help with Search Engine Optimization? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good results. If you know of any please share. Kudos!

Responder

I’m amazed, I have to admit. Rarely do I come across a blog that’s both equally educative and amusing, and without a doubt, you have hit the nail on the head. The problem is something too few men and women are speaking intelligently about. Now i’m very happy that I came across this in my search for something regarding this.

Responder

I’m impressed, I have to admit. Rarely do I encounter a blog that’s both equally educative and amusing, and let me tell you, you have hit the nail on the head. The problem is something that too few folks are speaking intelligently about. I am very happy that I found this during my hunt for something regarding this.

Responder

Your style is so unique compared to other people I’ve read stuff from. Thank you for posting when you have the opportunity, Guess I’ll just bookmark this page.

Responder

coursework plagiarism checker https://courseworkhelpvra.com/ – coursework info do my coursework online coursework resources do my coursework online

Responder

essay writer software https://essaywriterdodo.com/ – college essay writers block famous essay writers essay writers net academic essay writers

Responder

buy a paper https://papersonlinesfy.com/ – pay to write my paper help on writing a paper help writing papers for college pay someone to write my paper

Responder

help with writing a thesis https://termpaperlow.com/ – buy a thesis writing a thesis outline thesis consulting dissertation thesis writing

Responder

There are some intriguing points in time in this short article however I don?t understand if I see every one of them center to heart. There is some credibility yet I will certainly hold point of view till I check out it further. Great write-up, thanks and we want a lot more! Included in FeedBurner as well

Responder

Our Mushroomburger The signature Mushroomburger patty was created back in 1979. Still to everyone’s surprise, it is approximately made up of 50 mushrooms and 50 real beef.

Responder

I was more than happy to discover this page. I need to to thank you for your time for this wonderful read!! I definitely really liked every bit of it and I have you bookmarked to look at new things on your web site.

Responder

This can be an inspiration to many people. Very good job

Responder

essay checking service https://essaywriterslop.com/ – assignment essay help best essay service college essay writing services help me essays

Responder

Nice post. I learn something new and challenging on websites I stumbleupon every day. It’s always helpful to read content from other authors and practice something from their sites.

Responder

book hotels, find hotels, discount hotels, hotel deals, compare hotels, search for hotels, best hotels, hotel deals, hotel packages, city packages

Responder

my custom essay https://customessayjojo.com/ – urgent custom essays cheap custom essay writing order custom essays custom essays cheap

Responder

netticasinot, parhaat netticasinot, netticasino

Responder

tadalafil generic http://50cialmen.com/ – cialis generic generic cialis tadalafil liquid cialis price

Responder

Oh my goodness! Amazing article dude! Thank you so much, However I am having troubles with your RSS. I don’t understand the reason why I can’t join it. Is there anybody else getting similar RSS problems? Anyone who knows the solution can you kindly respond? Thanx!!

Responder

Spot on with this write-up, I honestly believe that this website needs a lot more attention. I’ll probably be returning to see more, thanks for the advice!

Responder

dissertation chapters https://dissertationaas.com/ – dissertation phd dissertation help dissertation dissertation help service

Responder

There is significantly a package to understand about this. I think you ensured wonderful points in functions also.

Responder

Quality articles, I am waiting for your next article. keep working

Responder

Site Rank Services offers affordable premium SEO packages & helps increase the visibility of your site in the search engines. We help you generate more profits

Responder

This blog was… how do you say it? Relevant!! Finally I’ve found something which helped me. Cheers!

Responder

I have been absent for some time, but now I remember why I used to love this web site. Thanks , I will try and check back more often. How frequently you update your site?

Responder

Pretty! This has been an extremely wonderful article. Thank you for supplying this info.

Responder

buy cheap viagra http://60lmentop.com/ – viagra natural new viagra viagra online uk buy viagra uk

Responder

Shopify fitness store

Responder

low price viagra http://45menvia.com/ – buy viagra soft pharmacy viagra generic viagra online viagra from india

Responder

cialis brand http://aazmencial.com/ – cialis canada cialis for sale cialis prescription tadalafil

Responder

all the time i used to read smaller articles or reviews that as well clear their motive, and that is also happening with this articlewhich I am reading at this place.

Responder

Hey there just wanted to give you a quick heads up. The text in your content seem to be running off the screen in Internet explorer. I’m not sure if this is a format issue or something to do with browser compatibility but I figured I’d post to let you know. The layout look great though! Hope you get the problem fixed soon. Cheers|

Responder

Great post made here. One thing I would really like to say is the fact that most professional areas consider the Bachelor’s Degree just as the entry level requirement for an online certification. Though Associate Certifications are a great way to start out, completing a person’s Bachelors starts up many doorways to various occupations, there are numerous online Bachelor Diploma Programs available via institutions like The University of Phoenix, Intercontinental University Online and Kaplan. Another thing is that many brick and mortar institutions give Online variants of their college diplomas but generally for a substantially higher fee than the institutions that specialize in online college diploma plans.

Responder

Good post. I learn something new and challenging on blogs I stumbleupon every day. It will always be exciting to read articles from other writers and practice something from their sites.

Responder

Thanks for sharing your thoughts on meta_keyword. Regards|

Responder

This can be an inspiration to many people. Very good job

Responder

I need to to thank you for this excellent read!! I definitely loved every little bit of it. I have got you book-marked to check out new stuff you post…

Responder

I precisely desired to appreciate you all over again. I do not know the things that I would have used in the absence of the advice provided by you about such a subject. This was a real hard concern in my position, however , spending time with your specialized form you managed it forced me to leap over happiness. Now i am grateful for this work and in addition believe you recognize what a great job you’re providing instructing many people by way of your web site. More than likely you have never met all of us.

Responder

You completed certain good points there. I did a search on the topic and found a good number of persons will have the same opinion with your blog.

Responder

There are some intriguing moments in this short article but I don?t know if I see every one of them center to heart. There is some legitimacy yet I will certainly take hold viewpoint up until I consider it further. Excellent write-up, thanks as well as we desire much more! Added to FeedBurner as well

Responder

I like reading through an article that can make people think. Also, many thanks for allowing me to comment!

Responder

I am very interested when reading your article. Oh yes, I also made an article, please visit.

Responder

I do agree with all of the ideas you have presented in your post. They are really convincing and will certainly work. Still, the posts are very short for novices. Could you please extend them a little from next time? Thanks for the post.

Responder

When I originally left a comment I seem to have clicked the -Notify me when new comments are added- checkbox and now whenever a comment is added I recieve four emails with the same comment. Is there a means you are able to remove me from that service? Appreciate it!

Responder

buy essays online for college http://buycildjea.com/ – buy essay papers buy college essays essays to buy buy argumentative essay

Responder

Hello there! I could have sworn I’ve been to this site before but after going through many of the articles I realized it’s new to me. Anyhow, I’m certainly pleased I came across it and I’ll be book-marking it and checking back frequently!

Responder

I must show some appreciation to this writer just for rescuing me from this predicament. Just after surfing throughout the world wide web and coming across ways which were not beneficial, I thought my entire life was gone. Existing devoid of the answers to the difficulties you’ve solved through your main guide is a critical case, as well as those that could have in a negative way damaged my entire career if I hadn’t discovered your web page. Your good ability and kindness in dealing with a lot of things was crucial. I am not sure what I would’ve done if I hadn’t come upon such a step like this. I am able to now look forward to my future. Thanks a lot very much for your specialized and results-oriented guide. I won’t be reluctant to endorse your blog post to any person who should get recommendations on this area.

Responder

history essay help http://buyjeacialonline.com/ – essay outline help need help with essay help me write a essay essay online help

Responder

writing essays custom http://viagranerrds.com/ – customized essays custom essay station custom essay meister review writing essays custom

Responder

I could not resist commenting. Very well written!

Responder

Newborn Baby Girls Clothes Floral

Responder

fashion blouses shirts

Responder

May I just say what a relief to discover somebody that actually understands what they are discussing on the internet. You certainly understand how to bring an issue to light and make it important. More and more people really need to look at this and understand this side of the story. It’s surprising you’re not more popular since you most certainly have the gift.

Responder

how to recover bitcoin wallet

Responder

What i don’t understood is actually how you’re now not really a lot more well-liked than you may be right now. You’re very intelligent. You recognize thus considerably in terms of this topic, made me individually believe it from a lot of varied angles. Its like women and men aren’t interested unless it¡¦s something to do with Lady gaga! Your personal stuffs excellent. Always take care of it up!

Responder

Hi, Neat post. There’s an issue with your site in web explorer, could test this… IE nonetheless is the marketplace leader and a good component to people will omit your fantastic writing due to this problem.

Responder

cialis for daily use http://aazmencial.com/ http://aazmencial.com/ cialis vs viagra

Responder

cialis online http://hyivglazcial.com/ http://hyivglazcial.com/ cialis tadalafil

Responder

buy viagra online http://menjojil.com/ http://menjojil.com/ viagra and alcohol

Responder

cheap cialis http://hyitebeviag.com/ http://hyitebeviag.com/ cheapest cialis

Responder

Lindsay Preston is a multi-certified life coach for go-getter women who have good lives but want great lives.

Responder

how to get viagra in the us http://viamengo.com/ http://viamengo.com/ can women take viagra

Responder

Keep on writing, great job!

Stop by my web site – AlIManaker

Responder

You still searching good porn? Can’t you find that? The best free porn pervert tube ever is Xpervs.com, is there porn for pervert persons, very exciting porn videos and obviously exciting hot sex with teens. Take a look at this site! Is totally free and without irritating ads(popups and other popunders

Responder

Enjoyed looking at this, very good stuff, thanks . «If it was an overnight success, it was one long, hard, sleepless night.» by Dicky Barrett.

Responder

viagra for men http://45menvia.com/ http://45menvia.com/ buy viagra online

Responder

Greetings! Very helpful advice in this particular article! It’s the little changes that produce the most significant changes. Thanks for sharing!

Responder

Its such as you read my thoughts! You appear to know so much about this, such as you wrote the book in it or something. I feel that you simply can do with a few p.c.percent to pressure the message home a little bit, however other than that, this is excellent blog. A fantastic read. I will certainly be back.

Responder

Does your website have a contact page? I’m having trouble locating it but, I’d like to send you an e-mail. I’ve got some creative ideas for your blog you might be interested in hearing. Either way, great website and I look forward to seeing it improve over time.

Responder

cialis brand http://50cialmen.com/ http://50cialmen.com/ cialis reviews

Responder

generic for cialis http://joicialviaed.com/ http://joicialviaed.com/ cialis 5mg

Responder

I enjoy reading an article that can make men and women think. Also, thanks for allowing me to comment!

Responder

cialis daily http://cigened.com/ http://cigened.com/ viagra vs cialis vs levitra

Responder

buy viagra online http://didoviamen.com/ http://didoviamen.com/ canadian pharmacy ezzz viagra

Responder

buy viagra http://viasasixyi.com/ http://viasasixyi.com/ generic viagra online

Responder

Usually I don’t learn article on blogs, but I wish to say that this write-up very forced me to try and do so! Your writing style has been amazed me. Thanks, quite nice article.

Responder

I am continually looking online for ideas that can assist me. Thanks!

Responder

Good day! I know this is kinda off topic however I’d figured I’d ask. Would you be interested in exchanging links or maybe guest writing a blog post or vice-versa? My website addresses a lot of the same topics as yours and I believe we could greatly benefit from each other. If you happen to be interested feel free to send me an e-mail. I look forward to hearing from you! Awesome blog by the way!

Responder

I appreciate, cause I found just what I was looking for. You have ended my four day long hunt! God Bless you man. Have a nice day. Bye

Responder