INFO : Faire planter Excel...

Résolu
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 2 févr. 2010 à 15:30
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 2 févr. 2010 à 22:22
Bonjour,

Voici un petit code pour faire planter excel 2003, au moins...

Sub Macro1()
    
    Range("D8").AddComment.Shape.Delete
    
End Sub


Il reste à activer la macro, puis à cliquer sur D8... et boum... Excel rencontre un problème, patati patata...

Est-ce que c'est la même chose pour les autres versions ?!

Amicalement,
Us.

18 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
2 févr. 2010 à 15:42
lol
Perso, il m'a fallu cliquer.
Et ça marche aussi pour B3 (lol)

Sous Office 2007, l'erreur ne se produit pas.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 17:57
Bonjour,
J'ai également Excel 2007 :
Ni plantage, ni erreur ... sauf si, bien évidemment, un commentaire, même vide, est déjà là (et c'est alors le addcomments qui provoque bien sûr l'erreur)
Maintenant : attention : lorsque l'on travaille longtemps sur un projet sans enregistrer et que la pile des erreurs successives dénoncées est grande, Excel a la mauvaise habitude de disjoncter purement et simplement (tu es peut-être dans ce cas et tu avais peut-être déjà un commentaire et alors l'erreur provoquée par le addcomments a peut-être été la dernière goutte ayant fait déborder le vase)

PS ; Juste pour satisfaire ma curiosité (je suis curieux) : quel est le but de .AddComment.Shape.Delete ?

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 18:39
Ah, mais non !
Excel se débrouille comme un chef, dans cette affaire de fous ...
Tu vas voir :
1) pas de message d'erreur
2) il signale (petite coche rouge dans la cellule) qu'elle contient maintenant un commentaire
3) le menu contextuel de la cellule ne propose pas l'effacement de ce commentaire (comme en présence d'un commentaire, habituellement)
4) Il propose par contre une option "Afficher/masquer le commentaire" ... Si on la choisit, on a droit à une boîte de dialogue nous disant qu'il n'y a pas de commentaoire ...

La "totale", quoi !

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 18:47
Et pour compléter le tableau :
Il dit qu'il n'y a aucun commentaire (comme exposé), mais si l'on clique sur "modifier le commentaire" ===>> Va bene ===>> il accepte


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 19:45
Oui, mais sur quelle version ?
Excel 2007.
Version 12.0
A-t-elle quelque-chose de spécial qui m'aurait échappé ?
Lui échappe-t-il une certaine incongruité ?
Manaarf ! ===>> je ne fais que constater et rapporter mes constatations

____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 19:56
Et j(ajoute que sur ma version, intellisense (abrutisense ?) n'hésite pas à proposer chacun des verbes après cjhaque point dans, par exemple :
Range("D8").AddComment.Shape.Application.ActiveCell.Areas.Count


Voilà qui ne veut bien sûr rien dire, mais abrutisense propose tout et n'importe quoi à qui veut s'amuser
Et, bien évidemment, on a droit (ouf) à un message d'erreur (il était temps !) à l'exécution ....(vachement explicite quant à la propriété fautive : " utilisation incorrecte vde la propriété " !) ==>> tout est alors pour le mieux dans le monde de abrutisense
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 21:43
Hé ! Us_30,

T'as pas compris que je me moquais tout au long des bévues de Micromachin ?
Relis et tu verras toute l'ironie à l'égard de cette équipe (celle de Mister Bill) ... pas à ton égard ...
Les "réparations" qui semblent avoir été faites sur ma version ne sont pas plus "soignées" et "bien pensées" que ce qui existait (je te crois sur parole) avant.
Quant à abrutisense, il semble que l'on se soit contenté d' "aligner" des "propositions" toujours les mêmes en fonction du dernier verbe précédent un signe . (et voilà .... pourquoi l'adjectif utilisé : abrutisense)


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 21:58
Tu me rasures.

Et tout (de cet abrutisense) a ainsi été "bâti" !
l'IDE ne dénoncerait (en mode création) aucune erreur si l'on écrivait par exemple :
Code Visual Basic :

MsgBox Range(Cells("A1")).Rows.Address



Rows serait proposé après le 1er ., Address serait proposé après le 2ème .
Il faudra attendre l'exécution pour constater une erreur pourtant fondamentale


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
2 févr. 2010 à 22:11
Et la chose peut devenir comique !
regarde ce qui se passe à chaque frappe d'un signe . dans ce :
MsgBox Range("A1").Application.ActiveCell.Application.ActiveCell.Address

et le résultat, ....


____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer
Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
3
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 15:34
ou attendre qlq secondes au lieu de cliquer... trop fort !
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 15:46
et comment réagit excel 2007... donne-t-il une erreur dans le script ?

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 18:23
Non, non... Excel 2007 ne retourne peut-être pas d'erreur, mais Excel 2003, si. Confirmé par jack.

... et, non la cellule ne possède pas de commentaire avant, sinon il y a un traitement normal de l'erreur par l'arrêt du script. J'ai testé à vide. et aussi qlq autres propriétés ensuite, et on obtient seulement un traitement normal de l'erreur... C'est juste avec "delete" que cela bug grave...

Sinon le sens de :
.AddComment.Shape.Delete
veut dire rien du tout ! plus absurde, on peut pôs !

... néanmoins on peut le former avec les propositions du bandeau "d'intellisense"...

... et comme cela ne veut rien dire, c'est pour ça que je reste étonné que Excel 2007 ne dit rien, d'ailleurs... Cela veut dire qu'il exécute un code idiot sans bug (donc sans arrêt). Bref, Excel2007, considère qu'un code qui mériterait un arrêt du script (comme normalement c'est le cas) ne veut même pas la peine de s'arrêter !? (pourquoi s'arrêter si le programmateur code comme un pied ?... je poursuis... Génial Excel2007 )

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 18:54
Oui, mais sur quelle version ?

Ensuite cela reste anormal... puisqu'il n'exécute pas les propriétés (absconses ici)...

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 21:35
t'enflammes pôs...

Donc, oui un truc t'as échappé... la version où je constate le bug, c'est 2003... Voilà, pour répondre aux propos précédents...

Ensuite, bien sur, on peut bâtir un certain nombre de propriété incongrue avec "abrutisense", mais en principe doit être détectée comme des erreurs lors de l'exécution... mais la proposition que je relate passe à travers du comportement normal, pour conduire à un plantage sans appel d'Excel ( 2003, donc)... Visiblement pour 2007, Microsoft à eu vent de se bug, où alors à modifier le traitement des erreurs fatales, pour les traiter sans arrêt brutal... à la manière de TRY de VB.NET, en quelque sorte... En ce sens, il sera plus difficile de faire un plantage des versions 2007, que les précédentes... C'est tant mieux d'une certaine manière, mais bon...

Reste à savoir pour les anciennes versions, quelles sont les résultats...

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 21:50
j'ai bien compris ton ironie... t'inquiètes pas...
t'enflammes pôs...

j'ironise sur ton ton combatif : "Et j'ajoute...", plutôt que sur MicroSoft...

Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 22:13
hum... abrutisense est surtout là pour éviter (ou presque) d'écrire, pas pour aider à programmer...

Quelle est la différence entre ...
MsgBox Range("A1").Rows.Address
MsgBox Range("A1").Address



Amicalement,
Us.
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 22:14
oupss... en même temps...
0
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
2 févr. 2010 à 22:22
et pis, on peut aussi programmer une action inutile :
Range("A1").AddComment.Delete

toujours très utile...

Amicalement,
Us.
0
Rejoignez-nous