[Excel][VBA] Variabiliser une formule COUNTIF

Résolu/Fermé
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 - 4 mars 2011 à 14:30
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 - 4 mars 2011 à 15:05
Bonjour,

J'ai la formule suivante dans une macro VBA sous Excel.

Range("F11:F" & iMax).FormulaR1C1 = _
"=COUNTIF('[Fichier source.xls]Onglet1'!R11C7:R560C7,RC[1])"


Je souhaiterais appliquer cette formule plusieurs fois avec plusieurs fichiers sources différents, en d'autres termes variabiliser la partie '[Fichier source.xls]Onglet1'!R11C7:R560C7. Est-ce possible ou faut-il que j'utilise une autre formule ?

Merci.

Netman



2 réponses

Bonjour,

Exemple :

Option Explicit

Sub CreationParametres()

    Dim NomFichier As String
    Dim NomOnglet As String
    Dim Cible As Range
    Dim iMax As Long
    Dim Reponse As Boolean

    iMax = 14
    Set Cible = Range("F11:F" & iMax)
    NomFichier = "Fichier source.xls"
    NomOnglet = "Onglet1"
    
    
    Reponse = InsereFormule(NomFichier, NomOnglet, Cible)
    
    If (Reponse) Then
        MsgBox "Insertion de formule réussie."
    End If

End Sub
'

Function InsereFormule(ByVal Fichier As String, _
                       ByVal Onglet As String, _
                       ByRef Target As Range) As Boolean

    Dim Formule As String
    
'    Range("F11:F" & iMax).FormulaR1C1 = _
'        "=COUNTIF('[Fichier source.xls]Onglet1'!R11C7:R560C7,RC[1])"
'                                                $G$11:$G$560;G11
    Formule = "=COUNTIF('[" & Fichier & "]" & Onglet & "'!R11C7:R560C7,RC[1])"
    ' Ou
    Formule = "=COUNTIF('[" & Fichier & "]" & Onglet & "'!$G$11:$G$560,G11)"

    ' Cette partie peut aussi être variabiliser : [ $G$11:$G$560;G11 ]
    ' qui correspond à [ R11C7:R560C7,RC[1] ]

    Target.Value = Formule

    MsgBox Target.Address

End Function
'


Cdt

Info
1
netman44 Messages postés 59 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 29 janvier 2020 1
4 mars 2011 à 15:05
Bonjour,

J'avais bien essayé cette solution mais je pense que je m'étais trompé dans la syntaxe.

La solution fonctionne, merci !

Netman
0