Método Select de la clase Range

Resuelto
Nashimok Mensajes publicados 19 Estado Miembro -  
Nashimok Mensajes publicados 19 Estado Miembro -
Hola a todos,

tengo un código VBA que me permite crear un gráfico a partir del número de ocurrencias de cada entrada.

Algunas entradas tienen una ocurrencia nula, y me gustaría que no aparezcan en mi gráfico.
Para ello, antes de la creación del gráfico, he añadido las siguientes líneas de código que me permiten ocultar las filas cuya ocurrencia es cero.

 ''''''''''''''''''''''Ocultación de ocurrencias nulas'''''''''''''''''''''''''''' linea2 = 27 Do Until IsEmpty(Cells(linea2, "B")) If Cells(linea2, "B").Value = 0 Then Rows(linea2).Select Selection.EntireRow.Hidden = True linea2 = linea2 + 1 Else linea2 = linea2 + 1 End If Loop 


Este código funciona muy bien cuando está en un módulo aparte, pero cuando lo añado a mi código general que se activa al hacer clic en un botón, ya no funciona....

Tengo un error de ejecución 1004 que aparece y me dice que "el método Select de la clase Range ha fallado" ... La depuración me indica que es esta línea la que causa el problema:

Rows(línea2).Select


He intentado reemplazar
Rows(línea2).Select

por
Range(línea2:línea2).Select


pero tampoco funciona....

¿Alguna idea de por qué funciona en un módulo y no en el código global?
Gracias de antemano!

Configuración: Windows 7 / Chrome 53.0.2785.116

7 respuestas

michel_m Mensajes publicados 18903 Fecha de registro   Estado Colaborador Última intervención   3 320
 
hola,

sin ver el código o la parte general del código ya que es él quien impide...

pero desde ahora podrías mejorar tu código
en VBA, se evita al máximo los "select" y sea cual sea el if, incrementas...

If Cells(ligne2, "B") = 0 Then
Rows(ligne2).Hidden = True
End If
ligne2 = ligne2 + 1


--
Michel
0
Nashimok Mensajes publicados 19 Estado Miembro
 
¡Gracias por el consejo! Es cierto que suelo usar .select, llegando raramente a sustituirlo....

Al navegar por los foros, encontré una solución que funciona, que es llamar al módulo donde mi código funciona:

Private Sub CommandButton3_Click() Call Résumé_graphique End Sub


Sin embargo, el problema no se resuelve si dejo mi código global... De hecho, he vuelto a intentarlo, y el error se ha trasladado a otro .Select que funcionaba muy bien antes... y que simplemente me permite deseleccionar el gráfico que acabo de crear...
Cells(1, "A").Select


Por lo tanto, debe haber un error que se repite en mi código... ¿Hay alguna manera de enviar todo el código en un archivo, o tengo que copiarlo completamente en un mensaje aquí?
0
jordane45 Mensajes publicados 30426 Fecha de registro   Estado Moderador Última intervención   4 830 > Nashimok Mensajes publicados 19 Estado Miembro
 
Hola,
Puedes subir tu archivo a cijoint.com y darnos el enlace
https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers
0
Nashimok Mensajes publicados 19 Estado Miembro
 
Hola, aquí está el código completo en este enlace:

http://www.cjoint.com/c/FIzh6ICnFHf

Funciona en un módulo, pero no cuando lo inserto bajo el Sub CommandButton_Click() de mi hoja.

¡Gracias de nuevo por tu ayuda!
0