Muchisimas gracias por lo bien explicado y la metodologia seguida. Que dificil es encontrar algo tan bien explicado y organizado, de verdad. Muchas gracias!!
Hola, Gracias por tus aportes bien intencionados. Aparte de ganarte un nuevo suscriptor tambien un alumno, aunque estoy estudiando Ing. Industrial tus vídeos me han enseñado mas que nadie. Mil gracias!!
Eres un maestro y gran profesor mil gracias por compartir tus conocimientos, excelente explicacion en cada Video, Saludoe desde Colombia, Bogota...Bendiciones
Muchas gracias por las explicaciones, estoy aprendiendo mucho con el curso. Nota: creo que sería bueno añadir que, al igual que comentas que un valor integer toma el valor 0 por defecto si no se le especifica nada, también se podría añadir que en el bucle for si no se pone la instrucción step toma por defeto saltos de 1 en 1.
Muy buenos videos, he visto otros tutoriales en Visual Basic, y este ha sido el mejro he aprendido mucho mas de lo que visto en los videos anteriores y lo mejor de todo es que me quedan claras las ideas. tiene un buen talento como profesor.
Felicitaciones, eres muy buen profesor y tienes gran disposición por compartir tus conocimientos. Desde hace un tiempo te sigo, ya que me parece que tus cursos son muy buenos, y me han sido de mucha ayuda en mi trabajo. Seria muy bueno que pudieras hacer un curso de Power Pivot, pues es una herramienta con mucha demanda en la actualidad.
Muchas gracias por tu comentario. Me alegro de que te gusten los vídeos. Me han pedido muchas veces un curso de Power Pivot así que lo tendré que hacer en el futuro. No se cuándo pero lo haré. Un saludo!
La notación en álgebra lineal para matrices lo usual es que tanto renglones como columnas empiecen desde uno, por eso a la mayoría de programadores orientados a este campo se les hace extraño. Muchas gracias por el video, excelente!
Te entiendo perfectamente. Existe la posibilidad de escribir como primera línea de código, antes del inicio del sub, la instrucción "Option Base 1". Con esto consigues que las matrices comiencen desde la posición 1 siendo inexistente la 0. Un saludo
Hola ! No, no es el último vídeo. Hay muchos más, es una tema amplio y no he hecho nada más que empezar. Mi trabajo absorbe todo mi tiempo y no puedo subir vídeos nuevos con la frecuencia que me gustaría, pero habrá muchos más vídeos en cuanto tenga un poco más de tiempo
Enhorabuena por el vídeo. A los neófitos nos resulta, creo, un tanto complicado. Pero voy a continuar hasta el final con toda la esperanza del mundo. Muchas gracias.
Muy cierto. Como creo que le he dicho en alguna ocasión, soy jubilado y aunque no pude practicarla, mi pasión siempre fue y sigue siendo la enseñanza. Ahora, de voluntario, aprendo para transmitir lo que aprendo, a colectivos necesitados, y sobre todo a mayores. Pues precisamente entre esos "mis alumnos" no es frecuente, salvo excepciones, la noción de esfuerzo. Gracias de nuevo y seguiré sus vídeos, todos ellos interesantísimos.
Recórrela con dos bucles for. utiliza contadores para que te la posición y un condicional if para evaluar cual es el valor mayor. ponerte aquí el código sería largo. Mira a ver si con estas pistas puedes conseguirlo. Un saludo
No molestas. Perdona la demora pero carezco de tiempo últimamente. Habilita el panel de propiedades del editor VBA desde el menú Ver - Panel de propiedades. Un saludo
Hola. Gracias por tus palabras. Sintiéndolo mucho no tengo vídeos de Visual Basic . Tengo vídeos de VBA (que no es lo mismo) para Excel en este canal. Es posible que en un futuro suba de Visual Basic pero no se cuándo. Un saludo
Hola muy buen video, necesito tu ayuda porfavor, se puede guardar botones(commandbutton) en matrices?, para luego editar sus atributos mediante un for. agredeceria mucho tu ayuda
Error 9 subíndice fuera de intervalo ocurre porque intentas acceder a un elemento de matriz inexistete. Por ejemplo, creas una matriz de 5 elementos (desde posición 0 a 4) e intentas acceder a la posición 5 (no existe, el límite es 4). Revisa los elementos de la matriz. Recuerda que la primera posición es la posición 0. Esto suele despistar
huy ojala en las universidades enseñaran de un modo que la gente entienda facil. como aca.... es solo excel pero aca entendi mas de programacion q en clase :)
hola; me gustaría saber si este es el último vídeo que has subido respecto a VBA, ya que no encuentro nada mas. Te agradezco por todo lo aprendido y ojalas me contestes si hay mas
¿En el vídeo 6? Ni loco. Más adelante lo explico pero no en este punto. Piensa que no todos los que se encuentran en este punto tienen conocimientos de programación. Un saludo!
Hola, felicitaciones, muy profesional la didáctica de los tutoriales, los he visto casi todos. Me surge aquí una duda respecto a las matrices: es posible que las matrices puedan ser de más de un tipo, es decir almacene cadena de texto y valores (tipo string unos y otros tipo byte) por ejemplo.??? Gracias de antemano..!!!
Tengo una duda, tengo algo de experiencia en VBA pero esta parte de los objetos y las matrices es nuevo para mi, al ver el vídeo veo que en la parte final se crean dos bucles en donde el primero actualiza la matriz mirango y el segundo es el de imprimir los valores de la matriz en la ventana inmediato. Desde mi punto de vista para que funcionara de la manera en que lo hace no debería estar el comando de Debug.print dentro del primer bucle? Al momento de analizarlo pensaría que lo lógico seria que al finalizar el primer bucle el valor de Mirango seria la ultima celda, es decir, 9.
Buenas tardes! Primero agradecerte por tan buen material. Quiero pedirte un poco de ayuda, seguí las instrucciones desde el principio y tengo el mismo código que planteas, sin embargo cuando le ordeno compilar solamente me muestra el primer valor de la matriz en la ventana inmediato. ¿Por qué pasa esto?. Muchas gracias
hola. gracisa por los cursos, estan muy buenos y me han ayudadomucho a perfeccionarme, solo tengouna duda y fuera del curso pero me reguno si pudieras decirme que programa usas para grabar la pantalla?
Buenas Noches Caballero. Le comento, a mi me gustaria saber si mirando esta guia completa y adquiriendo todos sus conocimientos, de alguna manera, podre crear un juego Rpg en 2D. Esa es mi meta, mi sueño. Estoy dispuesto a mirarla completa, hasta el final, pero necesito que me diga que no estoy perdiendo el tiempo. Desde ya, disculpe la molestia, le agradezco por su tiempo y espero su respuesta. Cordialmente Alex.
Hola. Tengo una cuestión. SI fuera posible que realizaras otro video de matrices bidimensional, por ejemplo de 25 posiciones (0 al 24) que de manera aleatoria elija los 25 números sin que estos se repitan y que además el resultado aparezca sobre la propia hoja de cálculo en el lugar que le correspondería sobre la propia matriz. Te estaría muy agradecido
Hola Juan. Permíteme una observación sobre el uso de .Select y Selection antes de .CurrentRegion: creo que sería conveniente al iniciarse en un lenguaje de programación, y en la programación en general, empezar a adquirir buenas prácticas de programación, porque de lo contrario se adquieren vicios que luego es difícil de corregir. En este sentido, una práctica que, por lo que yo sé, se desaconseja insistentemente por los programadores experimentados en Excel es el uso de .Select cuando no sea estrictamente necesario. Esto es muy criticado. Y una de las razones es que seleccionar una celda o rango implica la ejecución de un evento de hoja (SelectionChange) que habrá que controlar en caso de realizar una selección, además de que seleccionar ocupa un tiempo de ejecución que te puedes ahorrar. Por lo tanto, sería muy conveniente explicar a los principiantes en programación Excel que la operación de referir o referenciar la región adyacente a una celda se puede realizar sin tener que seleccionar previamente ni la primera celda del rango, ni tampoco el rango entero. Un saludo.
Gracias por tu observación. Pero no estoy de acuerdo con ella. Si en el vídeo 6 del curso me meto en esas explicaciones, la mayoría se irá. La curva de aprendizaje debe seguir su camino. Un error que cometéis los que tenéis conocimientos de programación y veis los primeros vídeos de un curso, es mirarlo bajo vuestro prisma con vuestra visión global y perspectiva. Vosotros ya sabéis a donde se pretende ir, pero el que se topa con esto por primera vez no. Un saludo!
En este video te has motivado eh? La verdad que bastante complicado esto de la programación... Te animas con un curso del programa estadístico SPSS? Un abrazo crack!
SPSS lo impartí hace 15 años para funcionarios de la Comunidad de Madrid. Pero ya casi ni me acuerdo y es un curso que me han pedido poco por aquí. pero quién sabe.... Un abrazo!
hola ; te envíe hace unos días el archivo, espero hayas lo hayas recibido y puedas ayudarme a resolver el problémita. Me gustaría me contaras si lo recibistes,. Saludos cordiales
hola; porfa estoy trancado, no puedo hacer que funcione una tabla dinamica desde una macro. Pase un sistema hecho en 2003 al 2010 y me ha costado bastante. Te agradezco toda tu ayuda, me gustaría enviarte el sistema para que lo critiques. Te ruego me ayudes una vez mas. Felicidades en estas fiestas para ti y los tuyos
hola juan , una pregunta , cada ves que presiono f5 la respuesta me sale en la hoja de cálculo , en cambio a ti te sale en la misma hoja del procedimiento de visualbasic , y la otra pregunta , se me ha desarmado las ventanas al cliquear mal tanto explorador, de propiedades y la ventana inmediato, no puedo ubicarlas , gracias de antemano ,
Va a ser complicado. Este curso se terminó hace más de 3 años. Asegúrate de que estás viendo los vídeos a la máxima resolución posible. En ocasiones la resolución en TH-cam se adapta a la velocidad de conexión y hace que los vídeos se vean regular. Un saludo!
Buenos días Felicitaciones por los cursos. Son excelentes. Tengo una duda que no sé si alguien me puede resolver. Al utilizar el objeto Selection no me funciona la ayuda del editor, osea si pongo selection y luego un punto no me aparecen las propiedades y metodos del objeto. ¿Alguien me puede decir por que me pasa esto? ¿Puede ser que no tenga habilitada alguna librería relacionada con este objeto?
Paloma Rc Hola !! No te fíes 100% de la ayuda del editor. Hay veces que la ayuda no sale aun teniendo todo bien y otras veces no sale porque tienes un error. Lamentablemente esto despista, pero es así. Un saludo
Buenas tardes, hice mi código tal como explicas el ejemplo pero siempre me indica un error que no he podido detectar. Me ayudas? Sub rellenamatrizbucle() Dim matriz(5) As Integer Dim datos As Range Dim indice As Integer Range("A2").Select Selection.CurrentRegion.Select For Each datos In Selection matriz(indice) = datos.Value indice = indice + 1 Next datos Dim i As Integer For i = 0 To 5 Step 1 Debug.Print matriz(i) Next i End Sub
+Bryan Yesid Perez Nuñez Esto no se permite en VBA: matriz(indice) = datos.Value Debes indicar el índice de forma numérica. No valen variables Un saludo
Hola no comprendo, he revisado el código del vídeo y el código escrito por Bryan y es prácticamente lo mismo, ¿Por qué él no puede indicar el índice de forma numérica? ¿No estás usando VBA en ese momento?
@@pildorasinformaticas Tengo el mismo problema, hice el cambio de cambiar indice por forma numérica y me funcionó, sin embargo en el video se hace tal como aparece el código de Bryan. ¿Por qué yo debo modificarlo, si al profe si le funciona?
hola, estoy tratando de pasar un sistema que realice en excel 2003 al 2010 y no puedo hacer funcionar las tablas dinamicas. Aparece la opcion nueva hoja de calculo como apagada y no puedo hacerla funcionar. Te agradezco toda tu ayuda y sorry por molestarte tanto. Muchas gracias por todo. De donde eres?
+mrrcd777 no funciona, da error fuera de rango. ya lo intente. pensé que al indicarle a Excel que seleccione todo el rango d1:d6 me iba a ahorrar la línea de selection.currentregion.select.He pensado al respecto y tengo alguna idea del por qué no se puede, pero creo que aun no "atterizo" bien mi conclusión asi que si trato de explicar tal vez no sea lo mejor. Prefiero que sea Juan quien lo hiciera.
+pildorasinformaticas Hola Juan, buen día. en las líneas de código de range("d1").select selection.currentregion.select Pense que estas dos lineas se pudieran sustituir por una sola que desde el inicio seleccionara todo el rango. algo asi como range("d1:d6").select. pero a la hora de darle play sale un error de fuera de indice.Supongo que el error viene al usar el ciclo for para ir desplazándonos. desde el inicio se selecciono el rango completo y no la celda inicial.
No recuerdo qué hice en este vídeo porque hace mucho tiempo que lo grabé, pero la instrucción Range("d1:d6").Select selecciona el rango d1 a d6. Currentregion.select selecciona las celdas adyacentes con información, a la celda previamente seleccionada. Por ejemplo si estás en la celda h8 y le dices currentregion.select, seleccionará las cledas adyacentes (contiguas, juntas) con información a la celda h8. Un saludo!!
Una consulta: cuando ejecutas tu código con F5 te devuelve el MsgBox en la misma pantalla de VBA en la que estás. En mi caso, genera la ventana de texto en el propio Excel, en lugar de en la ventana de Programador. Aunque no parece excesivamente relevante, no encuentro la razon. Muchas gracias!!!
¿Como se puede pasar como parámetro el valor del rango selection.currentregion.select? Necesitaría que funcionase algo así como: Range (selection.currentregion.select)
Miguel Balilla Hola !! Se ven técnicas de selección de rangos más adelante en el curso. La instrucción que introduces sería algo así: Range(Range("a1"), Range("a1").CurrentRegion).Select Esta instrucción selecciona un rango de celdas contiguas con información (muy importante lo de con información). un saludo
+Miguel Balilla Quízas buscas definir un nuevo rango con SET y en el bucle se recorre cada "celda" del "rango" establecido, también he eliminado todas las referencias a la instrucción "select" que no me gusta usar nunca. Ahmm yo rellene a partir de la celda B3 hacia abajo no de la D1, me tome esto como un ejercicio e hice mis pruebas :-) La definición "Set Rango = Range("B3").CurrentRegion" al ser solo una columna podría haber valido "Set Rango = Range("B3").End(xlDown)" y hay otra manera de definir el rango con Application.WorksheetFunction.CountA pero quizás mas complicada. Sub declaracion_matrices() Dim datos(5) As Integer Dim celda As Range Dim Rango As Range Set Rango = Range("B3").CurrentRegion Dim indice As Integer indice = 0 For Each celda In Rango datos(indice) = celda.Value Debug.Print datos(indice) indice = indice + 1 Next celda End Sub
Bueno, en mi caso que soy absolutamente novato en este curso (claro que he pasado por los anteriores 5 videos), casi que "quedé en las nubes", poco entendí. Lo siento.
Hola a todos tengo una duda, porque si yo quiero usar la jerarquía en el range("B2").select si yo uso el WorkSheets("Hoja3").range("B2").select para especificar de donde empezara mi selección para la matriz siguiendo el video me manda error en el método select de la clase range. porque no deja usar la jerarquía en este caso no se si pudieran explicarme d favor
Hola. Puedes definir una matriz indeterminada, es decir sin tamaño fijo. Según se vaya rellenando, la matriz va creciendo. Esto lo puedes hacer con la instrucción reDim que se comenta en los vídeos. En cuanto a escoger el tamaño por parte del usuario.... creo que no se puede ya que no admite variables en las dimensiones de la raíz. Pero a lo mejor alguna mente brillante que lea esto me rectifica..... Un saludo
hombre ya investigue y la solucion si alguien tiene la misma duda que yo tenia para una matriz indeterminada (que el usuario defina su tamaño) se define como m()
jeisson roncancio Hola, estoy empezando en esto de la programacion con vba, podrias por favor ampliar (con un ejemplo) la forma como resolviste lo del tamaño de la matriz. Gracias
+pildorasinformaticas puffff 1 hora me he tirado, no solo basta con dejar sin declarar la dimensión dejándola en blanco, luego hay que redimensionar el Array con ReDim datos(). Es la única manera que encontré de saltarme el uso de una constante o la declaración de una constante y poder poner una variable, espero que guste y ahí lo dejo. Sub declaracion_matrices() Dim datos() As Integer Dim dat As Integer dat = Range("A1").Value 'puse en A1 el valor 5, el usuario puede poner otro valor ReDim datos(dat) Dim celda As Range Dim Rango As Range Set Rango = Range("D1").CurrentRegion Dim indice As Integer indice = 0 For Each celda In Rango datos(indice) = celda.Value Debug.Print datos(indice) indice = indice + 1 Next celda End Sub Si se quiere, el ReDim se puede poner al final en el bucle For Each, poniendo ReDim datos(indice), así no dará error, pero no cumpliría que pudiera ser definido por un usuario, solo cumpliría que el array fuera tan grande como el Rango.
Eres un genio estoy aprendiendo contigo un monton, en ningun instituto de mi paìs explican con tanta simpleza, facilidad y efectividad
Muchisimas gracias por lo bien explicado y la metodologia seguida.
Que dificil es encontrar algo tan bien explicado y organizado, de verdad. Muchas gracias!!
Gracias a ti por tu comentario y por seguir mis vídeos. Un saludo!!
Muchas gracias profesor. Muy bien explicado. Empecé sin saber nada de VBA, lo voy aprendiendo poco a poco gracias a usted. Saludos.
Excelente explicación, para mí es un tema nuevo y difícil pero está muy bien explicado. Muchas gracias por el esfuerzo.
Plena cuarentena del 2020 y aún vigente, muchas gracias.
Plena cuarentena del 2021 y aún vigente el cuadrado de la hipotenusa sigue siendo igual a la suma de los cuadrados de los catetos.
Ya paso la cuarentena 2024 y seguimos vigentes.
Hola, Gracias por tus aportes bien intencionados. Aparte de ganarte un nuevo suscriptor tambien un alumno, aunque estoy estudiando Ing. Industrial tus vídeos me han enseñado mas que nadie. Mil gracias!!
Dylan G Gracias por tu comentario !! Me alegro que los vídeos sean de utilidad. Un cordial saludo
Excelente curso, tanto en contenido como en metodología y explicación. Muchas gracias y saludos desde Venezuela
Eres un maestro y gran profesor mil gracias por compartir tus conocimientos, excelente explicacion en cada Video, Saludoe desde Colombia, Bogota...Bendiciones
+william orlando alvarado medina Gracia por tu comentario. Me alegro de que te gusten los vídeos. Un saludo
Muchas gracias por las explicaciones, estoy aprendiendo mucho con el curso.
Nota: creo que sería bueno añadir que, al igual que comentas que un valor integer toma el valor 0 por defecto si no se le especifica nada, también se podría añadir que en el bucle for si no se pone la instrucción step toma por defeto saltos de 1 en 1.
Muy buenos videos, he visto otros tutoriales en Visual Basic, y este ha sido el mejro he aprendido mucho mas de lo que visto en los videos anteriores y lo mejor de todo es que me quedan claras las ideas. tiene un buen talento como profesor.
Gracias por el comentario. Un saludo
Gracias por enseñanza y es u. Gran maestro mi admiración
Muchas gracias sus cursos son Excelentes EN VERDAD MUY BUENA CALIDAD
Gracias !! Un saludo
Excelente material! Todo un crack! Saludos desde Perú.
Gracias !! Un saludo
Muchas gracias!!! Gracias a ti estoy aprendiendo cosas que pesaba que eran muy complicadas.
Me alegro de que los cursos te ayuden a comprender. Un saludo!!
Estoy aprendiendo muchos trucos nuevos, gracias
Muchas gracias por compartir tus conocimientos estoy aprendiendo mucho, Eres un genio!!!
Felicitaciones, eres muy buen profesor y tienes gran disposición por compartir tus conocimientos.
Desde hace un tiempo te sigo, ya que me parece que tus cursos son muy buenos, y me han sido de mucha ayuda en mi trabajo.
Seria muy bueno que pudieras hacer un curso de Power Pivot, pues es una herramienta con mucha demanda en la actualidad.
Muchas gracias por tu comentario. Me alegro de que te gusten los vídeos. Me han pedido muchas veces un curso de Power Pivot así que lo tendré que hacer en el futuro. No se cuándo pero lo haré. Un saludo!
muchas gracias por el curso, esta muy bueno y he aprendido un montón...!!!
maespinoza1983 Gracias !! Un saludo
Felicitaciones, las explicaciones son claras, pese a que soy un novato en vba comprendo tus explicaciones
Homero Tobar Gracias por el comentario y por seguir el curso. Un saludo
La notación en álgebra lineal para matrices lo usual es que tanto renglones como columnas empiecen desde uno, por eso a la mayoría de programadores orientados a este campo se les hace extraño. Muchas gracias por el video, excelente!
Te entiendo perfectamente. Existe la posibilidad de escribir como primera línea de código, antes del inicio del sub, la instrucción "Option Base 1".
Con esto consigues que las matrices comiencen desde la posición 1 siendo inexistente la 0. Un saludo
Excelente material mil bendiciones
muchas gracias por tus videos!!!
saludos y positiva vibración, sigue así!!!
muchas gracias por tu tiempo
Excelente explicación, Gracias por tanta paciencia fue bien didáctico.
De nada. Un saludo
Hola ! No, no es el último vídeo. Hay muchos más, es una tema amplio y no he hecho nada más que empezar. Mi trabajo absorbe todo mi tiempo y no puedo subir vídeos nuevos con la frecuencia que me gustaría, pero habrá muchos más vídeos en cuanto tenga un poco más de tiempo
Gracias por tus palabras. Saludos
Que bien muy explicado me ayudo mucho!!!
Enhorabuena por el vídeo. A los neófitos nos resulta, creo, un tanto complicado. Pero voy a continuar hasta el final con toda la esperanza del mundo. Muchas gracias.
Gracias a ti por seguir los vídeos y poner tanto interés. Hoy en día no es frecuente ver esfuerzo por parte de un alumno. Un saludo!!
Muy cierto. Como creo que le he dicho en alguna ocasión, soy jubilado y aunque no pude practicarla, mi pasión siempre fue y sigue siendo la enseñanza. Ahora, de voluntario, aprendo para transmitir lo que aprendo, a colectivos necesitados, y sobre todo a mayores. Pues precisamente entre esos "mis alumnos" no es frecuente, salvo excepciones, la noción de esfuerzo. Gracias de nuevo y seguiré sus vídeos, todos ellos interesantísimos.
Eres el puto amo. Muchas gracias por tanto.
Recórrela con dos bucles for. utiliza contadores para que te la posición y un condicional if para evaluar cual es el valor mayor. ponerte aquí el código sería largo. Mira a ver si con estas pistas puedes conseguirlo. Un saludo
Últimamente dispongo de poco tiempo, pero cuando esté un poco más libre intentaré hacer un ejemplo con las características que me indicas
muchas gracias, muy buena explicacion
No molestas. Perdona la demora pero carezco de tiempo últimamente.
Habilita el panel de propiedades del editor VBA desde el menú Ver - Panel de propiedades.
Un saludo
@pildorasinformaticas, ¿Qué ejercicios practicos se podrían realizar como para poner en practica todo lo aprendido hasta el vídeo 5?
Vídeo perfectamente útil en 2023
Hola. Gracias por tus palabras. Sintiéndolo mucho no tengo vídeos de Visual Basic . Tengo vídeos de VBA (que no es lo mismo) para Excel en este canal. Es posible que en un futuro suba de Visual Basic pero no se cuándo. Un saludo
Este canal é uma maravilha do TH-cam.
Parabéns e muito obrigado.
Muito obrigado!
Excelente, muchas gracias!!!
gracias espero mas curso
excelente explicación
Hola muy buen video, necesito tu ayuda porfavor, se puede guardar botones(commandbutton) en matrices?, para luego editar sus atributos mediante un for. agredeceria mucho tu ayuda
Error 9 subíndice fuera de intervalo ocurre porque intentas acceder a un elemento de matriz inexistete. Por ejemplo, creas una matriz de 5 elementos (desde posición 0 a 4) e intentas acceder a la posición 5 (no existe, el límite es 4). Revisa los elementos de la matriz. Recuerda que la primera posición es la posición 0. Esto suele despistar
huy ojala en las universidades enseñaran de un modo que la gente entienda facil. como aca....
es solo excel pero aca entendi mas de programacion q en clase :)
william rodriguez Hola !! Gracias por el comentario. Un saludo
hola; me gustaría saber si este es el último vídeo que has subido respecto a VBA, ya que no encuentro nada mas. Te agradezco por todo lo aprendido y ojalas me contestes si hay mas
Este hubiera sido un buen momento para explicar la ejecución paso a paso...
¿En el vídeo 6? Ni loco. Más adelante lo explico pero no en este punto. Piensa que no todos los que se encuentran en este punto tienen conocimientos de programación. Un saludo!
Muy bueno. Muchas gracias!!
Hola, felicitaciones, muy profesional la didáctica de los tutoriales, los he visto casi todos. Me surge aquí una duda respecto a las matrices: es posible que las matrices puedan ser de más de un tipo, es decir almacene cadena de texto y valores (tipo string unos y otros tipo byte) por ejemplo.??? Gracias de antemano..!!!
Danubioazulado Sí, creando una matriz variant. Un saludo!!
Mil gracias, muy amable!!!
Tengo una duda, tengo algo de experiencia en VBA pero esta parte de los objetos y las matrices es nuevo para mi, al ver el vídeo veo que en la parte final se crean dos bucles en donde el primero actualiza la matriz mirango y el segundo es el de imprimir los valores de la matriz en la ventana inmediato. Desde mi punto de vista para que funcionara de la manera en que lo hace no debería estar el comando de Debug.print dentro del primer bucle? Al momento de analizarlo pensaría que lo lógico seria que al finalizar el primer bucle el valor de Mirango seria la ultima celda, es decir, 9.
Gracias.
Archivo recibido. En cuanto tenga un rato te digo algo. Un saludo
🤗👌👍✔😎 Las imagenes valen mas que mil escritos 😏
Buenas tardes! Primero agradecerte por tan buen material. Quiero pedirte un poco de ayuda, seguí las instrucciones desde el principio y tengo el mismo código que planteas, sin embargo cuando le ordeno compilar solamente me muestra el primer valor de la matriz en la ventana inmediato. ¿Por qué pasa esto?. Muchas gracias
hola. gracisa por los cursos, estan muy buenos y me han ayudadomucho a perfeccionarme, solo tengouna duda y fuera del curso pero me reguno si pudieras decirme que programa usas para grabar la pantalla?
Muy bien explicado
Gracias
hay que tener cuidado, la cantidad de celdas con valores en D no puede ser mayor que la dimensión de la matriz, de lo contrario sale error
Excelente. :)
Buenas Noches Caballero.
Le comento, a mi me gustaria saber si mirando esta guia completa y adquiriendo todos sus conocimientos, de alguna manera, podre crear un juego Rpg en 2D. Esa es mi meta, mi sueño. Estoy dispuesto a mirarla completa, hasta el final, pero necesito que me diga que no estoy perdiendo el tiempo.
Desde ya, disculpe la molestia, le agradezco por su tiempo y espero su respuesta.
Cordialmente Alex.
Hola. Tengo una cuestión. SI fuera posible que realizaras otro video de matrices bidimensional, por ejemplo de 25 posiciones (0 al 24) que de manera aleatoria elija los 25 números sin que estos se repitan y que además el resultado aparezca sobre la propia hoja de cálculo en el lugar que le correspondería sobre la propia matriz.
Te estaría muy agradecido
podríamos haber aprovechado el contador 'indice' para hacer el debug.print no?
si jaja
Hola Juan. Permíteme una observación sobre el uso de .Select y Selection antes de .CurrentRegion: creo que sería conveniente al iniciarse en un lenguaje de programación, y en la programación en general, empezar a adquirir buenas prácticas de programación, porque de lo contrario se adquieren vicios que luego es difícil de corregir. En este sentido, una práctica que, por lo que yo sé, se desaconseja insistentemente por los programadores experimentados en Excel es el uso de .Select cuando no sea estrictamente necesario. Esto es muy criticado. Y una de las razones es que seleccionar una celda o rango implica la ejecución de un evento de hoja (SelectionChange) que habrá que controlar en caso de realizar una selección, además de que seleccionar ocupa un tiempo de ejecución que te puedes ahorrar. Por lo tanto, sería muy conveniente explicar a los principiantes en programación Excel que la operación de referir o referenciar la región adyacente a una celda se puede realizar sin tener que seleccionar previamente ni la primera celda del rango, ni tampoco el rango entero. Un saludo.
Gracias por tu observación. Pero no estoy de acuerdo con ella. Si en el vídeo 6 del curso me meto en esas explicaciones, la mayoría se irá. La curva de aprendizaje debe seguir su camino. Un error que cometéis los que tenéis conocimientos de programación y veis los primeros vídeos de un curso, es mirarlo bajo vuestro prisma con vuestra visión global y perspectiva. Vosotros ya sabéis a donde se pretende ir, pero el que se topa con esto por primera vez no. Un saludo!
@@pildorasinformaticas Si, entiendo tu filosofía.. Un saludo y mi enhorabuena por tu labor.
En este video te has motivado eh? La verdad que bastante complicado esto de la programación...
Te animas con un curso del programa estadístico SPSS? Un abrazo crack!
SPSS lo impartí hace 15 años para funcionarios de la Comunidad de Madrid. Pero ya casi ni me acuerdo y es un curso que me han pedido poco por aquí. pero quién sabe.... Un abrazo!
hola ; te envíe hace unos días el archivo, espero hayas lo hayas recibido y puedas ayudarme a resolver el problémita. Me gustaría me contaras si lo recibistes,. Saludos cordiales
sigue teacher ''''¡¡¡
hola; porfa estoy trancado, no puedo hacer que funcione una tabla dinamica desde una macro. Pase un sistema hecho en 2003 al 2010 y me ha costado bastante. Te agradezco toda tu ayuda, me gustaría enviarte el sistema para que lo critiques. Te ruego me ayudes una vez mas. Felicidades en estas fiestas para ti y los tuyos
A mi personalmente lo del índice 0 si que se me hace raro porque vengo de Matlab y ahí el indice 0 no se puede utilizar :)
hola juan , una pregunta , cada ves que presiono f5 la respuesta me sale en la hoja de cálculo , en cambio a ti te sale en la misma hoja del procedimiento de visualbasic , y la otra pregunta , se me ha desarmado las ventanas al cliquear mal tanto explorador, de propiedades y la ventana inmediato, no puedo ubicarlas , gracias de antemano ,
Podrás hacer acercamiento para verlo mejor, ya que veo tus vídeos en mi celular o móvil.
Va a ser complicado. Este curso se terminó hace más de 3 años. Asegúrate de que estás viendo los vídeos a la máxima resolución posible. En ocasiones la resolución en TH-cam se adapta a la velocidad de conexión y hace que los vídeos se vean regular. Un saludo!
Recibido. En cuanto tenga un rato te digo algo. Un saludo
donde puedo ver el API de VBA???
No crees que antes de las matrices son los bucles y condicionales
Buenos días
Felicitaciones por los cursos. Son excelentes.
Tengo una duda que no sé si alguien me puede resolver. Al utilizar el objeto Selection no me funciona la ayuda del editor, osea si pongo selection y luego un punto no me aparecen las propiedades y metodos del objeto. ¿Alguien me puede decir por que me pasa esto? ¿Puede ser que no tenga habilitada alguna librería relacionada con este objeto?
Paloma Rc Hola !! No te fíes 100% de la ayuda del editor. Hay veces que la ayuda no sale aun teniendo todo bien y otras veces no sale porque tienes un error. Lamentablemente esto despista, pero es así.
Un saludo
Muchas gracias.
El código lo ha ejecutado bien. Eso es lo importante.
Buenas tardes, hice mi código tal como explicas el ejemplo pero siempre me indica un error que no he podido detectar. Me ayudas?
Sub rellenamatrizbucle()
Dim matriz(5) As Integer
Dim datos As Range
Dim indice As Integer
Range("A2").Select
Selection.CurrentRegion.Select
For Each datos In Selection
matriz(indice) = datos.Value
indice = indice + 1
Next datos
Dim i As Integer
For i = 0 To 5 Step 1
Debug.Print matriz(i)
Next i
End Sub
+Bryan Yesid Perez Nuñez Esto no se permite en VBA: matriz(indice) = datos.Value
Debes indicar el índice de forma numérica. No valen variables
Un saludo
Hola no comprendo, he revisado el código del vídeo y el código escrito por Bryan y es prácticamente lo mismo, ¿Por qué él no puede indicar el índice de forma numérica? ¿No estás usando VBA en ese momento?
@@pildorasinformaticas Tengo el mismo problema, hice el cambio de cambiar indice por forma numérica y me funcionó, sin embargo en el video se hace tal como aparece el código de Bryan. ¿Por qué yo debo modificarlo, si al profe si le funciona?
hola, estoy tratando de pasar un sistema que realice en excel 2003 al 2010 y no puedo hacer funcionar las tablas dinamicas. Aparece la opcion nueva hoja de calculo como apagada y no puedo hacerla funcionar. Te agradezco toda tu ayuda y sorry por molestarte tanto. Muchas gracias por todo.
De donde eres?
Hola pregunta, funciona igual el codigo
Range("d1:d6").Select que Selection.CurrentRegion.Select
mrrcd777 No. ¿A qué te refieres exactamente con la pregunta de si funciona igual? Un saludo
+mrrcd777 no funciona, da error fuera de rango. ya lo intente. pensé que al indicarle a Excel que seleccione todo el rango d1:d6 me iba a ahorrar la línea de selection.currentregion.select.He pensado al respecto y tengo alguna idea del por qué no se puede, pero creo que aun no "atterizo" bien mi conclusión asi que si trato de explicar tal vez no sea lo mejor. Prefiero que sea Juan quien lo hiciera.
+pildorasinformaticas Hola Juan, buen día. en las líneas de código de range("d1").select selection.currentregion.select Pense que estas dos lineas se pudieran sustituir por una sola que desde el inicio seleccionara todo el rango. algo asi como range("d1:d6").select. pero a la hora de darle play sale un error de fuera de indice.Supongo que el error viene al usar el ciclo for para ir desplazándonos. desde el inicio se selecciono el rango completo y no la celda inicial.
No recuerdo qué hice en este vídeo porque hace mucho tiempo que lo grabé, pero la instrucción Range("d1:d6").Select selecciona el rango d1 a d6.
Currentregion.select selecciona las celdas adyacentes con información, a la celda previamente seleccionada. Por ejemplo si estás en la celda h8 y le dices currentregion.select, seleccionará las cledas adyacentes (contiguas, juntas) con información a la celda h8. Un saludo!!
Buenas disculpe la tardanza xD exactamente es como dice +Alfredo PC
Una consulta: cuando ejecutas tu código con F5 te devuelve el MsgBox en la misma pantalla de VBA en la que estás. En mi caso, genera la ventana de texto en el propio Excel, en lugar de en la ventana de Programador. Aunque no parece excesivamente relevante, no encuentro la razon. Muchas gracias!!!
Hola @frangallego7074 me pasa igual. ¿Resolviste el dilema?
hola, te molesto. Estaba tratando de ocultar una hoja desde la ventana de vba y se desapareció la ventana de propiedades. ojalas puedas ayudarme
¿Como se puede pasar como parámetro el valor del rango selection.currentregion.select? Necesitaría que funcionase algo así como:
Range (selection.currentregion.select)
Miguel Balilla Hola !! Se ven técnicas de selección de rangos más adelante en el curso.
La instrucción que introduces sería algo así: Range(Range("a1"), Range("a1").CurrentRegion).Select
Esta instrucción selecciona un rango de celdas contiguas con información (muy importante lo de con información).
un saludo
Muchisimas gracias. Es exactamente lo que necesitaba.
+Miguel Balilla Quízas buscas definir un nuevo rango con SET y en el bucle se recorre cada "celda" del "rango" establecido, también he eliminado todas las referencias a la instrucción "select" que no me gusta usar nunca. Ahmm yo rellene a partir de la celda B3 hacia abajo no de la D1, me tome esto como un ejercicio e hice mis pruebas :-)
La definición "Set Rango = Range("B3").CurrentRegion" al ser solo una columna podría haber valido "Set Rango = Range("B3").End(xlDown)" y hay otra manera de definir el rango con Application.WorksheetFunction.CountA pero quizás mas complicada.
Sub declaracion_matrices()
Dim datos(5) As Integer
Dim celda As Range
Dim Rango As Range
Set Rango = Range("B3").CurrentRegion
Dim indice As Integer
indice = 0
For Each celda In Rango
datos(indice) = celda.Value
Debug.Print datos(indice)
indice = indice + 1
Next celda
End Sub
Bueno, en mi caso que soy absolutamente novato en este curso (claro que he pasado por los anteriores 5 videos), casi que "quedé en las nubes", poco entendí. Lo siento.
amigo porque no pruebas en rangos quiero saber.....
es que mas lo haces en msgbox ??????????????????????
+JR boby Hola !! Si sigues adelante verás como empezamos a trabajar con rangos. Este es el vídeo 6 del curso, voy poco a poco. Un saludo
ya gracias...eres un genio saludos desde
Lima - Peru
Hola a todos tengo una duda, porque si yo quiero usar la jerarquía en el range("B2").select si yo uso el WorkSheets("Hoja3").range("B2").select para especificar de donde empezara mi selección para la matriz siguiendo el video me manda error en el método select de la clase range. porque no deja usar la jerarquía en este caso no se si pudieran explicarme d favor
Tengo la misma duda. Si ya la resolviste me puedes ayudar a mi resolviendola. Muchas gracias
Si me pudieras pasar el archivo podría ayudarte quizás. Puedes enviarlo a juanmds74@hotmail.com
Un saludo
creo q era mas facil poner 5 veces msgbox q usar el bucle :(
como hago para definir una matriz que el usuario escoja su tamaño
Hola. Puedes definir una matriz indeterminada, es decir sin tamaño fijo. Según se vaya rellenando, la matriz va creciendo. Esto lo puedes hacer con la instrucción reDim que se comenta en los vídeos. En cuanto a escoger el tamaño por parte del usuario.... creo que no se puede ya que no admite variables en las dimensiones de la raíz. Pero a lo mejor alguna mente brillante que lea esto me rectifica..... Un saludo
hombre ya investigue y la solucion si alguien tiene la misma duda que yo tenia para una matriz indeterminada (que el usuario defina su tamaño) se define como m()
jeisson roncancio Hola, estoy empezando en esto de la programacion con vba, podrias por favor ampliar (con un ejemplo) la forma como resolviste lo del tamaño de la matriz. Gracias
+pildorasinformaticas puffff 1 hora me he tirado, no solo basta con dejar sin declarar la dimensión dejándola en blanco, luego hay que redimensionar el Array con ReDim datos(). Es la única manera que encontré de saltarme el uso de una constante o la declaración de una constante y poder poner una variable, espero que guste y ahí lo dejo.
Sub declaracion_matrices()
Dim datos() As Integer
Dim dat As Integer
dat = Range("A1").Value 'puse en A1 el valor 5, el usuario puede poner otro valor
ReDim datos(dat)
Dim celda As Range
Dim Rango As Range
Set Rango = Range("D1").CurrentRegion
Dim indice As Integer
indice = 0
For Each celda In Rango
datos(indice) = celda.Value
Debug.Print datos(indice)
indice = indice + 1
Next celda
End Sub
Si se quiere, el ReDim se puede poner al final en el bucle For Each, poniendo ReDim datos(indice), así no dará error, pero no cumpliría que pudiera ser definido por un usuario, solo cumpliría que el array fuera tan grande como el Rango.
Gracias.