Jump to content

hacer una tarea repetitva con bucle


Recommended Posts

Buenas noches a todos, cuento con una macro que funciona muy bien, basicamente lo que hace es rellenar notas de estudiantes a una pagina web, situada en un boton, la cual va tomando sus valores de un textbox3  y combobox1.

entonces al escoger el numero de estudiantes en una lista de 1 a 45 situada en el combobox1, la macro comienza su funcionamiento y rellena la nota en la pagina web.

ahora la pregunta es: ¿Como hacer para que una vez escogido el numero 1 en el combobox1 y terminada su ejecucion, pase automaticamente al numero 2 de la lista, hasta el numero final establecido en la celda  "AO1", de la hoja "Sigep"?

la macro es la siguiente

On Error Resume Next

Dim busqueda
Dim datos

Dim fila
Dim columna


'validar webdriver isntanciado
Dim MyTitle As String: MyTitle = manejador.Window.Title
If MyTitle = "" Then
MsgBox "No has iniciado el navegador", vbInformation, "Información"
Exit Sub
End If

'validar estudiante esa selecionado cuando es individual
If ComboBox1.Text = "" Then
MsgBox "Debe seleccionar un Estudiante", vbInformation, "Información"
Exit Sub
End If


Set TextBox = TextBox2
fila = ComboBox1.Value + 1 'incrementar los alumnos empizan en la fila 2
'MsgBox fila

'On Error Resume Next
        'MsgBox ("No has iniciado el navegador"), vbInformation, "AVISO"
        
automatizacion.manejador.FindElementByXPath("//*[" & TextBox3.Value & "]/td[10]/div[2]/button").Click ' para estudiante individual


'esperar la ventana de las notas 10 segundos maximos
WebDriverWaitElement "//*[@id='formNotas']", 10


     'On Error GoTo reinicio
'reinicio:
'    Exit Sub
 '     Application.Wait (Now + TimeValue("0:00:05"))
'estudiante 01

If ComboBox4.Value = "PRIMER TRIMESTRE" Then
Set lenguaje = Worksheets("sigep").Range("E" & fila)
Set ingles = Worksheets("sigep").Range("F" & fila)
Set sociales = Worksheets("sigep").Range("G" & fila)
Set edufisica = Worksheets("sigep").Range("H" & fila)
Set edumusica = Worksheets("sigep").Range("I" & fila)
Set artes = Worksheets("sigep").Range("J" & fila)
Set matematica = Worksheets("sigep").Range("K" & fila)
Set tecnicageneral = Worksheets("sigep").Range("L" & fila)
Set biogeo = Worksheets("sigep").Range("M" & fila)
Set fisica = Worksheets("sigep").Range("N" & fila)
Set quimica = Worksheets("sigep").Range("O" & fila)
Set filosofia = Worksheets("sigep").Range("P" & fila)
Set valores = Worksheets("sigep").Range("Q" & fila)

manejador.FindElementByXPath("//*[@id='0-6']").SendKeys lenguaje  'pega las notas
manejador.FindElementByXPath("//*[@id='1-6']").SendKeys ingles   'pega las notas
manejador.FindElementByXPath("//*[@id='2-6']").SendKeys sociales   'pega las notas
manejador.FindElementByXPath("//*[@id='3-6']").SendKeys edufisica   'pega las notas
manejador.FindElementByXPath("//*[@id='4-6']").SendKeys edumusica   'pega las notas
manejador.FindElementByXPath("//*[@id='5-6']").SendKeys artes   'pega las notas
manejador.FindElementByXPath("//*[@id='6-6']").SendKeys matematica  'pega las notas
manejador.FindElementByXPath("//*[@id='7-6']").SendKeys tecnicageneral   'pega las notas
manejador.FindElementByXPath("//*[@id='8-6']").SendKeys biogeo   'pega las notas
manejador.FindElementByXPath("//*[@id='9-6']").SendKeys fisica   'pega las notas
manejador.FindElementByXPath("//*[@id='10-6']").SendKeys quimica   'pega las notas
manejador.FindElementByXPath("//*[@id='11-6']").SendKeys filosofia   'pega las notas
manejador.FindElementByXPath("//*[@id='12-6']").SendKeys valores   'pega las notas

Exit Sub
'manejador.FindElementByXPath("//*[@id='formNotas']/div[2]/button[2]").Click   'Guarda cambios
End If


If ComboBox4.Value = "SEGUNDO TRIMESTRE" Then
Set lenguaje = Worksheets("sigep").Range("E" & fila)
Set ingles = Worksheets("sigep").Range("F" & fila)
Set sociales = Worksheets("sigep").Range("G" & fila)
Set edufisica = Worksheets("sigep").Range("H" & fila)
Set edumusica = Worksheets("sigep").Range("I" & fila)
Set artes = Worksheets("sigep").Range("J" & fila)
Set matematica = Worksheets("sigep").Range("K" & fila)
Set tecnicageneral = Worksheets("sigep").Range("L" & fila)
Set biogeo = Worksheets("sigep").Range("M" & fila)
Set fisica = Worksheets("sigep").Range("N" & fila)
Set quimica = Worksheets("sigep").Range("O" & fila)
Set filosofia = Worksheets("sigep").Range("P" & fila)
Set valores = Worksheets("sigep").Range("Q" & fila)

manejador.FindElementByXPath("//*[@id='0-7']").SendKeys lenguaje  'pega las notas
manejador.FindElementByXPath("//*[@id='1-7']").SendKeys ingles   'pega las notas
manejador.FindElementByXPath("//*[@id='2-7']").SendKeys sociales   'pega las notas
manejador.FindElementByXPath("//*[@id='3-7']").SendKeys edufisica   'pega las notas
manejador.FindElementByXPath("//*[@id='4-7']").SendKeys edumusica   'pega las notas
manejador.FindElementByXPath("//*[@id='5-7']").SendKeys artes   'pega las notas
manejador.FindElementByXPath("//*[@id='6-7']").SendKeys matematica  'pega las notas
manejador.FindElementByXPath("//*[@id='7-7']").SendKeys tecnicageneral   'pega las notas
manejador.FindElementByXPath("//*[@id='8-7']").SendKeys biogeo   'pega las notas
manejador.FindElementByXPath("//*[@id='9-7']").SendKeys fisica   'pega las notas
manejador.FindElementByXPath("//*[@id='10-7']").SendKeys quimica   'pega las notas
manejador.FindElementByXPath("//*[@id='11-7']").SendKeys filosofia   'pega las notas
manejador.FindElementByXPath("//*[@id='12-7']").SendKeys valores   'pega las notas
'manejador.FindElementByXPath("//*[@id='formNotas']/div[2]/button[2]").Click   'Guarda cambios
Exit Sub
End If


If ComboBox4.Value = "TERCER TRIMESTRE" Then
Set lenguaje = Worksheets("sigep").Range("E" & fila)
Set ingles = Worksheets("sigep").Range("F" & fila)
Set sociales = Worksheets("sigep").Range("G" & fila)
Set edufisica = Worksheets("sigep").Range("H" & fila)
Set edumusica = Worksheets("sigep").Range("I" & fila)
Set artes = Worksheets("sigep").Range("J" & fila)
Set matematica = Worksheets("sigep").Range("K" & fila)
Set tecnicageneral = Worksheets("sigep").Range("L" & fila)
Set biogeo = Worksheets("sigep").Range("M" & fila)
Set fisica = Worksheets("sigep").Range("N" & fila)
Set quimica = Worksheets("sigep").Range("O" & fila)
Set filosofia = Worksheets("sigep").Range("P" & fila)
Set valores = Worksheets("sigep").Range("Q" & fila)

manejador.FindElementByXPath("//*[@id='0-8']").SendKeys lenguaje  'pega las notas
manejador.FindElementByXPath("//*[@id='1-8']").SendKeys ingles   'pega las notas
manejador.FindElementByXPath("//*[@id='2-8']").SendKeys sociales   'pega las notas
manejador.FindElementByXPath("//*[@id='3-8']").SendKeys edufisica   'pega las notas
manejador.FindElementByXPath("//*[@id='4-8']").SendKeys edumusica   'pega las notas
manejador.FindElementByXPath("//*[@id='5-8']").SendKeys artes   'pega las notas
manejador.FindElementByXPath("//*[@id='6-8']").SendKeys matematica  'pega las notas
manejador.FindElementByXPath("//*[@id='7-8']").SendKeys tecnicageneral   'pega las notas
manejador.FindElementByXPath("//*[@id='8-8']").SendKeys biogeo   'pega las notas
manejador.FindElementByXPath("//*[@id='9-8']").SendKeys fisica   'pega las notas
manejador.FindElementByXPath("//*[@id='10-8']").SendKeys quimica   'pega las notas
manejador.FindElementByXPath("//*[@id='11-8']").SendKeys filosofia   'pega las notas
manejador.FindElementByXPath("//*[@id='12-8']").SendKeys valores   'pega las notas
'manejador.FindElementByXPath("//*[@id='formNotas']/div[2]/button[2]").Click   'Guarda cambios
Exit Sub
End If

End Sub

 

muchas gracias a todos de antemano.

1.png

Link to comment
Share on other sites

Cierra el tema en este foro si has decidido continuar la consulta en el otro y sigue el consejo del Maestro Abraham Valencia para conseguir la mayor ayuda posible, un saludo.

** Es una sugerencia, en ningún momento quiero que se malinterprete  ** 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • 72 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      170
    • Comments
      89
    • Reviews
      26

  • Crear macros Excel

  • Posts

    • Buenas noches profesor Antoni y demás miembros del foro. Tanto con la solución suya como la del profesor HDD resuelvo el problema y está es una tercera variante que nunca viene mal, porque todo lo que se aprende no pesa ni estorba Gracias por el enlace, en cuanto tenga el chance lo reviso. Necesito una última petición a ustedes. He tratado de convertir los números en texto a números y no he podido lograrlo. Lo hice con la función Sustituir por si hubiera algunos espacios de más, con el Texto en columna, lo multiplique x 1, le sumé +0, lo trate con un ciclo For Each, creando una variable Celda de tipo Range y un condicional If/End if y nada. Por favor, si fuera tan amables de sugerirme algo que no haya probado. Agradecido como siempre y mis respetos a ustedes. Pino
    • Utilizando la función  WorksheetFunction.Clean se eliminan la mayoría de caracteres no imprimibles.   Eliminar caracteres no imprimibles
    • Buenas tardes reiteradas. Que bien que se sumó el profesor Antoni a la solución. Qué provilegio, JSD y Antoni, no podría estar en mejores manos. Gracias a ambos por su respuestas, pero tengo una duda más. En el caso de Antoni manifiesta que el caracter es el 001 del ASCII, pero pregunto, si fuera otro caracter este códiogo me serviría también o hay que modificarle algo? Mis respetos a todos los miembros del Foro y en especial a Antoni y JSD. Agradecido. Pino
    • Hola Antoni, te adelantaste, bueno dejo lo mismo de otra manera Sub EliminarCaracteres(): Application.ScreenUpdating = False Dim rango As Range Dim datos As Variant Dim i As Long, j As Long With Hoja2 '>>>>> pon la hoja donde quieras trabajar Set rango = .Range("A4:M" & .Cells(.Rows.Count, "A").End(xlUp).Row) datos = rango.Value For i = 1 To UBound(datos, 1) For j = 1 To UBound(datos, 2) datos(i, j) = Application.WorksheetFunction.Clean _ (datos(i, j)) Next j Next i rango.Value = datos End With End Sub  
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy