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 Sub

Voici le tableau et notamment la colonne "X"

image

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

Rechercher des sujets similaires à "comprends pas code formular1c1 sum rc4 rc23"