Création de boucle sur une formule

  • Initiateur de la discussion Initiateur de la discussion Cloudy-sky
  • Date de début Date de début

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 !

Cloudy-sky

XLDnaute Nouveau
Bonjour,
je débute sur les macros, j'ai du en utiliser car aucune solution sans macro rendait possible le tableur.

Je dois créer un calendrier de contact qui se met à jours tout les jours.
Pour cela j'ai mis les dates en colonne B,
Les dates du jour en colonne I, cette date est égale à la colonne B si la date est dépassée.

J'ai une autre colonnes en C qui me met le nombre de personne à contacter (suivant plusieur condition) avec la formule suivante :
Code:
SI(I3="";"";SI($F$2>10%;SOMME('Cercle un'!$A$2:$A$155)+SOMME('Cercle deux'!$A$2:$A$155);SI($F$2>50%;SOMME('Cercle un'!$A$2:$A$155)+SOMME('Cercle deux'!$A$2:$A$155)+SOMME('Cercle trois'!$A$2:$A$155);SOMME('Cercle un'!$A$2:$A$155))))

J'aimerais que ma colonne C se met à jours automatiquement en fonction de la date.
pour cela j'ai créer cette macro (qui ne fonctionne plus, mais qui à fonctionné avec des bidouilles que j'ai oublié)

Code:
Range("C2").Select
       If "B2" < "I2" Then
            Calculate
            Selection.Copy
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
              :=False, Transpose:=False
  
        End If
        If "B2" >= "I2" Then
                If Not IsEmpty(Cel) Then Formula = "=SI(I2="";"";SI($F$2>10%;SOMME('Cercle un'!$A$2:$A$155)+SOMME('Cercle deux'!$A$2:$A$155);SI($F$2>50%;SOMME('Cercle un'!$A$2:$A$155)+SOMME('Cercle deux'!$A$2:$A$155)+SOMME('Cercle trois'!$A$2:$A$155);SOMME('Cercle un'!$A$2:$A$155))))"
        End If

J'ai l'intention de copier coller 90 fois en changeant les valeurs parceque je n'arrivais pas à créer une boucle incluant la formule (une fois que j'ai retrouvé mon erreur)

Je ne peut malheureusement pas vous envoyé le fichier...
Merci d'avance
 
Bonsoir le fil, le forum

Trois macros pour le prix d'une 😉
@>Cloudy-sky: je te laisse faire les tests et/ou adaptations nécessaires
VB:
Sub CopierFormuleSansBoucler()
Dim TextFormule As String
TextFormule = "=IF(R[1]C[6]="""","""",IF(R2C6>10%,SUM('Cercle un'!R2C1:R155C1)+SUM('Cercle deux'!R2C1:R155C1),IF(R2C6>50%,SUM('Cercle un'!R2C1:R155C1)+SUM('Cercle deux'!R2C1:R155C1)+SUM('Cercle trois'!R2C1:R155C1),SUM('Cercle un'!R2C1:R155C1))))"
'Adapter la plage de cellule
Sheets("Cercle un").Range("C3:C1967").FormulaR1C1 = TextFormule
'ou voir la Macro2
End Sub
Sub Macro2()
Dim DerLigne As Long
Dim TextFormule As String
TextFormule = "=IF(R[1]C[6]="""","""",IF(R2C6>10%,SUM('Cercle un'!R2C1:R155C1)+SUM('Cercle deux'!R2C1:R155C1),IF(R2C6>50%,SUM('Cercle un'!R2C1:R155C1)+SUM('Cercle deux'!R2C1:R155C1)+SUM('Cercle trois'!R2C1:R155C1),SUM('Cercle un'!R2C1:R155C1))))"
DerLigne = Sheets("Cercle un").Cells(Rows.Count, "B").End(xlUp).Row
Sheets("Cercle un").Range("C2:C" & DerLigne).FormulaR1C1 = TextFormule
End Sub
Sub Macro3_Valeurs_Seules()
Dim DerLigne As Long
Dim TextFormule As String
TextFormule = "=IF(R[1]C[6]="""","""",IF(R2C6>10%,SUM('Cercle un'!R2C1:R155C1)+SUM('Cercle deux'!R2C1:R155C1),IF(R2C6>50%,SUM('Cercle un'!R2C1:R155C1)+SUM('Cercle deux'!R2C1:R155C1)+SUM('Cercle trois'!R2C1:R155C1),SUM('Cercle un'!R2C1:R155C1))))"
DerLigne = Sheets("Cercle un").Cells(Rows.Count, "B").End(xlUp).Row
With Sheets("Cercle un").Range("C2:C" & DerLigne)
.FormulaR1C1 = TextFormule
.Value = .Value
End With
End Sub
 
- 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

Réponses
3
Affichages
80
Réponses
5
Affichages
464
Réponses
6
Affichages
349
Retour