XL 2016 besoin d'info fonction graphique, si quelqu'un peut essayer cette petite macro pour obtenir la valeur

Roland_M

XLDnaute Barbatruc
Bonsoir tout le monde,

voilà, c'est très simple dans mon dernier post je parlais de ce problème avec le formatnum dans les DataLabels graphique
avec Excel 2007 côté vb le séparateur est ( . ) et sur feuille ça donne ( , )
mais avec excel 2016 c'est l'inverse (belle connerie encore)

j'aimerais pouvoir détecter ce paramètre par défaut !
avec 2007 : xlDataLabelSeparatorDefault = 1

si vous pouviez simplement exécuter cette petite macro (sur 2016 bien entendu)
merci d'avance !

Sub Macro1()
MsgBox xlDataLabelSeparatorDefault
End Sub
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
re

merci à toi Staple !

c'est vraiment bizarre c'est exactement le même qu'avec excel 2007
et pourtant ce n'est pas du tout le même séparateur !?

côté vb je dois mettre par exemple "0.00" ça donne "0,00" sur feuille comme les valeurs décimales avec point c'est virgule sur feuille
et avec 2017 "0,00" et sur feuille "0.00" c'est l'inverse !? si je laisse le point comme sur 2007 le résultat est faussé et entier !

dommage j'espérais pouvoir me servir de ce paramètre pour le détecter !?

merci encore.
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
re bonsoir tout le monde,

je vous donne l'astuce pour solutionner le problème de la virgule ou du point dans le formatnum des DataLabels

VB:
Public Sub HistoFormatNumFeuilActive()
F$ = FFormatNumHisto$ ' <<<<<<<< ici fonction qui formate F$ en "0.0" ou "0.000" . . . peut importe point ou virgule
ActiveSheet.ChartObjects(GraphHisto$).Activate
If InStr(F$, ".") + InStr(F$, ",") > 0 Then
   ActiveChart.SeriesCollection(1).DataLabels.NumberFormat = F$
   If InStr(ActiveChart.SeriesCollection(1).DataLabels.NumberFormat, "#") > 0 Then ' si pas ok on a un # c'est le repère !
      If InStr(F$, ".") > 0 Then '<<< si c'est avec un point remplace par virgule
         F$ = Replace(F$, ".", ",")
      ElseIf InStr(F$, ",") > 0 Then '<<< si c'est avec une virgule remplace par point
         F$ = Replace(F$, ",", ".")
      End If
   End If
End If
ActiveChart.SeriesCollection(1).DataLabels.NumberFormat = F$ '%barres
ActiveChart.Axes(xlValue).TickLabels.NumberFormat = F$ 'bas de l'histo
End Sub
 
Haut Bas