XL 2016 macro avec le changement de version excel

zamchenille

XLDnaute Nouveau
Bonjour à tous,
J'ai eu il y a peu de temps un changement d’environnement informatique. Notre service est maintenant géré par un réseau. Le service qui s'est occupé de cette restructuration en a profité pour mettre à jour tous les programmes afin que nous ayons tous la même version d'excel (2016). Mon problème est le suivant : depuis cette mise à jour, les macros enregistrées ne fonctionnent plus correctement. le message d'erreur #N/A s'affiche. j'ai essayé plusieurs choses :
  1. J'ai enlevé toutes les protections macro dans les options
  2. j'ai ouvert une page vierge d'excel et j'y ai copié les feuilles en recopiant manuellement le code du module vba
  3. j'ai réenregistré sous en écrasant l'ancienne version
Le résultat c'est que cela fonctionne ponctuellement et au bout de quelques réouvertures du fichier, le message d'erreur s'affiche à nouveau.
Quelqu'un connait la raison et aurai une solution ?
Merci pour vos lumières ;)
 

vgendron

XLDnaute Barbatruc
Bonjour

sans voir ne serait ce qu'un extrait de ton fichier. aucune chance de pouvoir t'aider..
 

vgendron

XLDnaute Barbatruc
ton souci vient probablement du pb de Color / ColorIndex


Colorindex est censé ne pas changer d'une version Excel à une autre
alors que la table de couleur Color peut avoir plus ou moins de nuances..

essaie ce code
VB:
Function CompteCouleur(r As Range)
Application.Volatile
Dim n&
For Each r In r
    n = r.Interior.ColorIndex
    If n <> xlColorIndexNone And n <> 0 Then CompteCouleur = CompteCouleur + 1
Next

End Function
 

zamchenille

XLDnaute Nouveau
ça à l'air de fonctionner mais dans le code précédent, le noir ne devait compter, or là, ça me le comptabilise comme une demi heure, donc....
que dois je rajouter dans la formule ? s'il te plait
 
Bonjour,
Zamchenille, merci de relire la charte... interdit de publier des fichiers contenant des données personnelles!!
Ton fichier était plein de noms/prénoms...
Je l’ai supprimé
Bonne journée
David
 

vgendron

XLDnaute Barbatruc
hello
pour le black, c'est n=1 au lieu de n=0
VB:
Function CompteCouleur(r As Range)
Application.Volatile
Dim n&
For Each r In r
    n = r.Interior.ColorIndex
    If n <> xlColorIndexNone And n <> 1 Then CompteCouleur = CompteCouleur + 1
Next

End Function
 

zamchenille

XLDnaute Nouveau
Merci beaucoup, ça à l'air de fonctionner.
Avant ta réponse j'avais télécharger un pack de fonction XLP. ça fonctionne aussi, alors j'ai fait deux fichiers, un avec et un sans pour voir si les 2 marches séparément.
En attendant merci encore pour vos savoir
 

Discussions similaires


Haut Bas