Creation macro excel
Marco
-
Theo.R Messages postés 585 Statut Membre -
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
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
-
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-
-
-
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" -
-