Création de boucle sur une formule

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
 

Staple1600

XLDnaute Barbatruc
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
 

Cloudy-sky

XLDnaute Nouveau
merci beaucoup j'ai malheureusement tout recopié, mais tes macros fonctionnent pour d'autres feuilles. Au moins, j'ai compris, j'ai réussis à en refaire :)
 

Discussions similaires


Haut Bas