Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…