Creation macro excel

Marco -  
Theo.R Messages postés 585 Statut Membre -
Bonjour,

Jai besoin de votre aide pour crée une macro

Voila j'ai un tableau excel avec beaucoup d'information mais en gros chaque individus a un nombre d'heure par semestre à realiser.

C1 =Nom C2= Prenom C3=NB.Hsemestre1 C4=NB.Hsemestre2 etc.

ce que je veux faire, c'est qu'en dessous de chaque ligne (environ 800), se créer une sous ligne et qu'en dessous de la colone nom il y'a la somme de C3+C4+X etc.

Aussi crée la macro qui supprime ses lignes

Merci de votre aide

ps: je suis très débutant

1 réponse

  1. Theo.R Messages postés 585 Statut Membre 31
     
    En prenant A1, B1, C1 et D1 au lieu de C1, C2, C3 et C4 qui sont incohérents avec le reste de la description :

    insérer et calculer :
    Sub test()
    Dim DernLigne As Long
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row

    For i = DernLigne to 1 step -1

    Rows(i+1 & ":" & i+1).select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Cells(i+1,1).value = Cells(i,3).value + Cells(i,4).value

    Next i
    End Sub


    Supprimer les lignes créées:
    Sub test2()
    Dim DernLigne As Long
    DernLigne = Range("A" & Rows.Count).End(xlUp).Row

    For i = DernLigne to 1 step -1

    If Cells(i+1,1).value <> "" And Cells(i+1,1).value = Cells(i,3).value + Cells(i,4).value Then
    Rows(i+1 & ":" & i+1).Select
    Selection.Delete Shift:=xlUp
    End If
    Next i
    End Sub
    0
    1. Marco
       
      merci de ta rep, je vais tester cela
      0
    2. Marco
       
      "Cells(i+1,1).value = Cells(i,3).value + Cells(i,4).value"

      cette ligne correspond aux colonnes prise pour calculer la somme c'est cela? comment faire pour choisir des colonnes spécifiques ? par exemple D1 F1 H1 sans prendre celles comprise entre.
      0
    3. Theo.R Messages postés 585 Statut Membre 31
       
      L'objet Cells de construit comme suit :
      Cells([N° de Ligne],[N° de Colonne])
      Nb: pour le N° de Colonne, 1 désigne A, 2 désigne B, 3 désigne C, etc.

      Donc pour changer les colonnes, il faut changer la 2ème partie :

      "Cells(i,3).value" signifie : la valeur de la cellule Ci

      Si on prend l'ensemble de la ligne de code : "Cells(i+1,1).value = Cells(i,3).value + Cells(i,4).value"
      Signifie : la cellule A(i+1) est valorisée par la somme de Ci et de Di

      Pour remplacer Ci et Di par Di, Fi et Hi, on aurait :
      "Cells(i+1,1).value = Cells(i,4).value + Cells(i,6).value" + Cells(i,8).value"

      PS: si l'objet Cells vous semble compliqué, vous pouvez utiliser Range(...). Range permet de désigner une plage (qui peut être 1 seule cellule ou plus).
      Dans notre exemple ça donnerait :
      "Range("A" & i + 1).value = Range("D" & i).value + Range("F" & i).value + Range("H" & i).value + Range("D" & i).value"
      0
    4. Marco
       
      super merci beaucoup !
      0
      1. Theo.R Messages postés 585 Statut Membre 31 > Marco
         
        Pas de souci, pensez à passer le sujet en Résolu si vous avez tout ce dont vous aviez besoin ;)

        Bonne continuation
        0