Je ne comprends pas le code ==> FormulaR1C1 = "=SUM(RC4:RC23)"
Bonjour,
Je ne comprends pas le code à la toute fin de cette fonction ci-dessous
FormulaR1C1 = "=SUM(RC4:RC23)"
Car je dois l'appliquer sur 2 autres feuilles du même type et je ne sais pas ce que je dois en faire, ni si je dois la recopier telle quelle...
Public f1 As Worksheet, f2 As Worksheet
Public DerLig_f1 As Long, DerLig_f2 As Long
Sub Importer_Noms_Prenoms_5_Ateliers()
Dim d As Object
Dim i As Long, Lig_Dest As Long
Dim Nom As String, Prenom As String
Dim cle
Application.ScreenUpdating = False
Set f1 = Sheets("Classmt par discipline+Général")
Set f2 = Sheets("5 ateliers")
'enlever le mot de passe
f2.Unprotect Password:="seb"
Set d = CreateObject("Scripting.Dictionary")
DerLig_f1 = f1.Range("A" & f1.Rows.Count).End(xlUp).Row
f2.Range("Z3:AB" & DerLig_f1).Clear 'Effacement de tous les nomns et prénoms des colonnes de Z à AB de la f2
Lig_Dest = 3 ' Ligne de départ pour copier dans f2
' Lecture des noms et prénoms à partir de la ligne 5
For i = 5 To DerLig_f1
Nom = f1.Cells(i, "B").Value
Prenom = f1.Cells(i, "C").Value
Sexe = f1.Cells(i, "D").Value
If Nom <> "" And Prenom <> "" And Sexe <> "" Then
cle = Nom & "|" & Prenom & "|" & Sexe ' Clé unique pour éviter doublons
If Not d.exists(cle) Then
d.Add cle, Array(Nom, Prenom, Sexe)
End If
End If
Next i
' Écriture dans f2 colonnes Y et Z à partir de la ligne 3
For Each cle In d.Keys
f2.Cells(Lig_Dest, "Z").Value = d(cle)(0)
f2.Cells(Lig_Dest, "AA").Value = d(cle)(1)
f2.Cells(Lig_Dest, "AB").Value = d(cle)(2)
Lig_Dest = Lig_Dest + 1
Next cle
'Tri des noms par ordre alphabétique
DerLig_f2 = f2.Range("Z" & f2.Rows.Count).End(xlUp).Row
ActiveWorkbook.Worksheets(f2.Name).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(f2.Name).Sort.SortFields.Add2 Key:=Range("Z3:Z" & DerLig_f2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets(f2.Name).Sort
.SetRange f2.Range("Z3:AB" & DerLig_f2)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'Application des validations de données
Range("D3").Select
With f2.Range(f2.Cells(3, "D"), f2.Cells(DerLig_f2, "S")).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="0,1,3,5"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
With f2.Range(f2.Cells(3, "T"), f2.Cells(DerLig_f2, "W")).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="0,3,5"
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
'MFC_5_ateliers_verte
Quadrillage_5_ateliers 'application d'un Quadrillage_5_ateliers
'Formule colonne Total (X)
f2.Range(f2.Cells(3, "X"), f2.Cells(DerLig_f2, "X")).FormulaR1C1 = "=SUM(RC4:RC23)"
f2.Columns("X:X").Font.Bold = True
End SubVoici le tableau et notamment la colonne "X"
Merci beaucoup
Bonne journée
bonjour,
FormulaR1C1 = "=SUM(RC4:RC23)"cette instruction met une formule dans la plage de cellules indiquée avant formulaR1C1. La formule fait la somme des valeurs trouvées sur la même ligne de la Colonne 4 à la colonne 23 (de D à W). Tu peux vérifier la formule qui a été générée en cliquant sur une des cellules de la plage concernée, après exécution de cette instruction. Par exemple si tu cliques sur la cellule X5 tu devrais y trouver la formule =SOMME(D5:W5).
Bonjour h2so4 et merci beaucoup
Les explications sont limpides et complètes !!!!!!!
Bonne journée
Bien cordialement