Insertion de formule selon cellules remplies ou pas

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Arnaud dit Citro

XLDnaute Junior
Bonjour à tous,

A la suite du remplissage d'un formulaire, je souhaiterais qu'à partir de la colonne Y il soit insérer un certain nombre de formule. Mais à la suite de Y cela a une fin, et cette fin est variable (cela peut être AF ou AJ ou plus encore).

J'ai donc commencé un petit code :
VB:
Dim test, cell


With Sheets("Devis")
        test = Application.Max(.Cells(7, Columns.Count).End(xlToLeft).Column, 24) + 1
                
        For Each cell In Sheets("Devis").Cells(7, test)
            If test <> "" Then
                .Cells(Fdev, test - 4).FormulaR1C1 = "=SUMPRODUCT((RC13=BdD_Vendeur!R4C1:R999C1)*(RC13=R7C)*(RC13<>"""")*1)"
                .Cells(Fdev, test - 3).FormulaR1C1 = "=IF(AND(R7C[-1]=RC13,RC18=""Accepté""),1,0)"
                .Cells(Fdev, test - 2).FormulaR1C1 = "=IF(AND(R7C[-2]=RC13,RC18=""Reporté""),1,0)"
                .Cells(Fdev, test - 1).FormulaR1C1 = "=IF(AND(R7C[-3]=RC13,RC18=""Refusé""),1,0)"
            Else
                .Cells(Fdev, test) = ""
            End If
        Next cell
End With

J'ai choisi volontairement de partir de la fin pour éviter que cela passe en revue toutes les colonnes. Cela fonctionne bien pour les 4 colonnes précédant la 1ère vide mais cela ne remonte pas jusqu'à Y et du coup je suis un peu perdu...

Si quelqu'un a une petite idée pour me dépanner, je suis preneur

Arnaud
 

Pièces jointes

Bonjour Arnaud dit Citro,
VB:
Dim lig&, col%
lig = 7
With Sheets("Devis")
    For col = 25 To .Columns.Count Step 4
        If .Cells(lig, col) = "" Then Exit For
        .Cells(lig + 1, col).FormulaR1C1 = "=SUMPRODUCT((RC13=BdD_Vendeur!R4C1:R999C1)*(RC13=R7C)*(RC13<>"""")*1)"
        .Cells(lig + 1, col + 1).FormulaR1C1 = "=IF(AND(R7C[-1]=RC13,RC18=""Accepté""),1,0)"
        .Cells(lig + 1, col + 2).FormulaR1C1 = "=IF(AND(R7C[-2]=RC13,RC18=""Reporté""),1,0)"
        .Cells(lig + 1, col + 3).FormulaR1C1 = "=IF(AND(R7C[-3]=RC13,RC18=""Refusé""),1,0)"
    Next col
End With
A+
 
Bonjour Job75,

Merci de ta réponse, malheureusement cela ne fonctionne pas.
La cellule de référence est Y7 et tu as bien compris : cela avance de 4 en 4 (AC7 puis AG7 et ainsi de suite). Le code me paraît bien construit pourtant (mais bon il est vrai que je n'y connais pas grand chose).

Arnaud
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour