[Excel][VBA] Variabiliser une formule COUNTIF

Résolu
netman44 Messages postés 65 Statut Membre -  
netman44 Messages postés 65 Statut Membre -
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

  1. Info
     
    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
  2. netman44 Messages postés 65 Statut Membre 1
     
    Bonjour,

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

    La solution fonctionne, merci !

    Netman
    0