Formule renvoi #NOM? sous VBA

jdo94

XLDnaute Nouveau
Bonjour à tous

J’ai un modele de tableau (outil pour faire des devis) sur lequel je souhaite faire des sous totaux avec la formule « sous.total »
Je souhaite sélectionner une plage de cellules manuellement et lancer une macro qui en dessous de la plage sélectionnée m’insère la formule en question
J’ai écrit la macro suivante :

Sub Macro2()
Application.ScreenUpdating = False
a = Selection.Address(0, 0)
c = Mid(Selection.Address(0, 0), InStr(1, Selection.Address(0, 0), ":") + 1, Len(Selection.Address(0, 0)))
Range(c).Offset(1, 0).Select
ActiveCell.Formula = "= SOUS.TOTAL(9," & a & ")"
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlMedium
End With
With Selection.Interior
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.7
End With
Application.ScreenUpdating = True


Le problème c’est que la formule tout étant bonne s’affiche en #NOM?
Et pour tout remettre correctement et faire apparaitre le total il faut faire F2 et valider
Je vous remercie d’avance si un de vous peut m’aider
NOTA ( j’utilise excel 2007 et avec un fichier xls)
 
G

Guest

Guest
Re : Formule renvoi #NOM? sous VBA

Bonjour et bienvenue sur le forum,

Pour le nom de la formule c'est en anglais avec Formula

Code:
With Selection
Sub Macro2()
    With Selection
        '.Cells = cellules de la sélection .Count (le nombre de cellules de la sélection) +1 pour dépasser la sélection
        .Cells(.Cells.Count + 1).Formula = "=SUBTOTAL(9," & .Address(0, 0) & ")"
        With .Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlMedium
        End With
        With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlMedium
        End With
        With .Interior
            .ThemeColor = xlThemeColorAccent2
            .TintAndShade = 0.7
        End With
    End With
End Sub

End With


P.S. pour connaître le nom des formules en anglais, les taper en français dans une cellule. Garde la cellule sélectionnée.
Dans l'éditeur VBE ouvrir la fenêtre exécution (CTRL+G) et taper dedans : ?ActiveCell.Formula
Point d'interrogation compris
Puis valider, la formule de la cellule active s'affichera en dessous et en anglais
A+

[Edition] hello Hervé:) cela faisait longtemps que nous ne nous croisions plus!
Hello Gilbert:)
 
Dernière modification par un modérateur:

Modeste geedee

XLDnaute Barbatruc
Re : Formule renvoi #NOM? sous VBA

Bonsour® à tous

lors de l'utilisation de VBA conjointement aux formules de feuille de calcul
utilisez la notation US pour Formula= "bla-bla-US"
sinon utilisez FormulaLocal="blabla-FR"

:cool:
ActiveCell.FormulaLocal = "= SOUS.TOTAL(9;" & a & ")"
remarquez le changement de , en ;
 

Discussions similaires

Statistiques des forums

Discussions
314 634
Messages
2 111 438
Membres
111 136
dernier inscrit
Ahmad Ibnou