[bug ?] rows.hidden ok sur 2003 KO sur 97

O

okparanoid

Guest
Bonjour a tous !

J'ai prepare une macro chez moi sur XL 2003 et en l'essayant au boulot sur XL 97 elle marche plus...

Plusieurs choses :
Range('a5:a7').Rows.Hidden ne passe pas je ne sais pas pourquoi...

Quand je change E3 avec la liste deroulante sur 2003 ca appelait bien la fonction worksheet_change et plus sur 97...

Vous voyez d'ou ca peut venir, je desespere un peu d'avoir bosse chez moi pour rien !

Bien a vous :eek:)

P.S : J'ai du supprimer le contenu des titres des lignes par souci de confidentialite au sujet de mon boulot vu que c'est pas franchement ce qui nous interesse dans le probleme. [file name=OK.zip size=19308]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/OK.zip[/file]
 

Pièces jointes

  • OK.zip
    21.5 KB · Affichages: 22
  • OK.zip
    21.5 KB · Affichages: 30
  • OK.zip
    21.5 KB · Affichages: 24

Creepy

XLDnaute Accro
Bonjour le Forum, okparanoid,

Tu te heurtes au pb de compatibilité entre les versions. En effet tu as beaucoup de fonctions qui ont été rajoutées au fur et à mesure des versions d'Excel.

Excel 97, n'est pas compatible evec row.hidden
Essaie de découper : range('..').select, puis selection.hidden.

Je ne sais même pas si Excel 97 gère le Hidden !

Fait des rechercches sur le net on trouve souvent des codes de 'substitution' pour Excel 97.

Idem pour ta seconde question.
Je ne peux pas t'aider plus je n'ai pas de 97 sous la main.

Bon courage

Creepy
 

Jacques87

XLDnaute Accro
Bonjour

Sous Excel 97, voici une réponse à ta première question
Propriété Hidden appliquée à l'objet Range : cette propriété a la valeur True si les lignes ou les colonnes sont masquées. La plage spécifiée doit couvrir une colonne ou une ligne entière.
Bon courage
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir le fil,

Comme le précise Jacques87, Excel 97 est tout à fait compatible avec Row.hidden (et encore heureux lol !). Et comme pour toutes versions d'Excel, cette propriété ne peut s'appliquer que pour des colonnes et/ou lignes entières.

Pour ton classeur, tu dois rencontrer 2 problèmes distincts sur XL97 :
[ol][li]Tu obtiens une erreur 1004 'Impossible de définir la propriété Hidden de la classe range' lorsque tu cliques sur le bouton 'Réinitialiser' : pour supprimer cette erreur, il convient simplement de mettre la propriété TakeFocusOnClick de ton bouton sur 'False'. Il s'agit là d'un vieux bug de XL97 lié au bouton ActiveX qui garde le focus et empêche cette version d'Excel de déclencher le traitement sur la feuille correctement. J'en donnais une explication dans le fil Lien supprimé (voir mon post du 30/09/2005 22:16).[/li]
[li]L'évènement Change() ne réagit pas au changement de valeur dans la liste de validation : il s'agit effectivement là d'un problème d'Excel 97 résolu dans les versions suivantes. Pour remédier à cette absence de réaction d'Excel97, tu peux essayer de procéder simplement comme je l'expliquais là : Lien supprimé.
Si tu n'as pas cette possibilité, alors tu peux essayer de reproduire ce que j'ai appliqué dans ton fichier ci-joint modifié (solution qui m'avait été soufflée à une certaine époque par JeanMarie je crois) : pour forcer Excel 97 à détecter ce changement de valeur, j'ai caché (couleur de police) une simple formule CELLULE('Address') en A1. Cette formule donne pour résultat l'adresse de la dernière cellule modifiée dans une feuille de calcul. Cette formule donnera donc $E$3 lorsque tu feras un choix dans la liste de validation. Cette formule déclenchera donc parallèlement un évènement de type Calculate(). Et c'est donc grâce à cet évènement qu'on va donc pouvoir déclencher la macro (en lieu et place de l'évènement Change())... [/li][/ol]
Cordialement,

[file name=PourOkparanoid.zip size=15135]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourOkparanoid.zip[/file]
 

Pièces jointes

  • PourOkparanoid.zip
    14.8 KB · Affichages: 40

Statistiques des forums

Discussions
312 343
Messages
2 087 440
Membres
103 546
dernier inscrit
mohamed tano