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

- - Dernière réponse : MarcPL
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
- 5 févr. 2013 à 12:06
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 !
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Siefch1
Messages postés
14010
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
72
0
Merci
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)
Commenter la réponse de cs_Jack
0
Merci
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
Commenter la réponse de Siefch1
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
259
0
Merci
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.
Commenter la réponse de ucfoutu
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
0
Merci
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 !
Commenter la réponse de MarcPL
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
0
Merci
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 !
Commenter la réponse de MarcPL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.