Erreur d'exécution '-2147417848' lors d'un columnwidth dans Excel 2010 [Résolu]

Signaler
-
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
-
Bonjour,
Lors de l'activate d'un onglet j'applique le code suivant :

Sub ReportingRD_Activate()
If Visu2012 = False Then
'-- réduction des colonnes 2012
Columns("B:M").ColumnWidth = 0.1
Else
'-- affichage des colonnes 2012
Columns("B:M").ColumnWidth = 10
End If
End Sub

> ça marche nickel

Par contre, j'ai créé un bouton dans l'onglet pour basculer
l'affichage avec le code suivant :

Sub Toggle_visu2012()
If Visu2012 = True Then
' bascule à False et on cache les colonnes 2012
Visu2012 = False
Columns("B:M").ColumnWidth = 0.1
Else
' bascule à True et on montre les colonnes 2012
Visu2012 = True
Columns("B:M").ColumnWidth = 10
End If
End Sub


Lorsque j'appuie sur le bouton, j'ai le message d'erreur suivant :

Erreur d'exécution '-2147417848'
La méthode columnwith a échoué

Et l'excel se ferme méchamment.
Je ne comprends pas car le code me semble correct.
Quelqu'un aurait-il une idée ?

Par avance, merci !

6 réponses

En simplifiant au maximum ma macro et ma feuille, j'ai trouvé la cause du problème :
la columnwidth provoque cette erreur lorsque la colonne concernée contient un graphique sparkline !

C'est curieux car, manuellement, on peut le faire sans problème.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
70
Salut

Bizarre.
Est-ce que ton bouton est placé sur la feuille que tu manipules ?
Je devine que oui : Vois si le bouton est attaché à une cellule - peut être que les boutons n'aiment pas être rétrécis à outrance ...

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 le partage (Socrate)
C'est un bouton de controle de formulaire (inséré depuis le menu développeur). Il est effectivement sur le bon onglet et ne se trouve pas sur les colonnes à rétrécir.

Bizarre que le formatage fonctionne sur l'activate de l'onglet et que la même méthode plante sur un click de bouton
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Bonjour,
1) Qu'est exactement visu2012 ? Une booléenne ? Un objet (et alors lequel) ?
2) crées-tu quelque part des objets dynamiquement dans ton appli ? Si oui : lesquels et comment ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
Sub Toggle_visu2012()
                      Visu2012 = Not Visu2012
    Columns("B:M").ColumnWidth = IIf(Visu2012, 10, 0.1)
End Sub

Voilà de la "bascule" !
___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Statut
Membre
Dernière intervention
21 juillet 2013
2
A vérifier : le graphique est-il protégé ?

Le déprotéger pourrait résoudre le problème ...

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !