Boucle sur colonne
Bonjour,
J'ai opté pour l'ajout d'une macro pour éviter de faire, refaire et re refaire les mêmes mises en pages.
Je dois faire des "somme si" sous les colonnes d'un tableau.
J'ai fait un code du type
.Range("m" & Derlign + c + 1) = "=SUMIF(R2C3:R" & Derlign & "C3,RC3,R2C:R" & Derlign & "C)"
.Range("m" & Derlign + c + 1).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
.Range("n" & Derlign + c + 1) = "=SUMIF(R2C3:R" & Derlign & "C3,RC3,R2C:R" & Derlign & "C)"
.Range("n" & Derlign + c + 1).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
.Range("o" & Derlign + c + 1) = "=SUMIF(R2C3:R" & Derlign & "C3,RC3,R2C:R" & Derlign & "C)"
.Range("o" & Derlign + c + 1).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
.Range("p" & Derlign + c + 1) = "=SUMIF(R2C3:R" & Derlign & "C3,RC3,R2C:R" & Derlign & "C)"
.Range("p" & Derlign + c + 1).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
.Range("q" & Derlign + c + 1) = "=SUMIF(R2C3:R" & Derlign & "C3,RC3,R2C:R" & Derlign & "C)"
.Range("q" & Derlign + c + 1).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
C'est juste moche... et je pense que c'est possible de faire une boucle pour que l'ajout de somme se fasse de la colonne L à W sans me faire un code de deux pages.
Merci pour la simplification.
Leakim
- Messages
- 2'415
- Excel
- 2019
- Inscrit
- 13/07/2017
- Emploi
- Formateur, animateur,tech.informatique
Bonjour toutes et tous
Bonjour Leakim
Warning: Aucune idée du résultat mais, je tente!
.Range("m") And ("n") And ("o") And ("p") & Derlign + c + 1)))) = "=SUMIF(R2C3:R" & Derlign & "C3,RC3,R2C:R" & Derlign & "C)"
.Range("m") And ("n") And ("o") And ("p") & Derlign + c + 1)))).Select
With Selection
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
crdlt,
André
Salut Leakim,
Salut André,
jamais rien compris à ce système RC-machin-chose...
Tu peux me traduire? SUMIF de quoi ?
Un fichier, peut-être?
Bref, des précisions en langage plus clair... pour moi!
Edit :
Bon, ok, en aveugle, sans fichier ni précisions, sans essai et avec une formule de n'importe quoi...
'
For x = 12 To 23
sCol = Chr(64 + x)
iRow = Range(sCol & Rows.Count).End(xlUp).Row + C + 1
With Range(sCol & iRow)
.Formula = "=SUMIF(A2:A" & iRow & ";""OK"";" & sCol & "2:" & sCol & iRow & ")"
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
Next
'
A+
Bonsoir,
Merci Andre13 et curulis57 pour vos contributions.
Souvent quand je pose une question, la solution me vient et là c'est le cas.
En fait, il fallait faire une boucle sur les lignes et les colonnes et dans ce cas là il vaut mieux utiliser Cells ! plutot que Range CQFD !
For l = 1 To derligndouble - 1
For c = 1 To 12 ' colonne de P à W
.Cells(Derlign + l + 1, c + 11) = "=SUMIF(R2C3:R" & Derlign & "C3,RC3,R2C:R" & Derlign & "C)"
With .Cells(Derlign + l + 1, c + 11)
.NumberFormat = "General"
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Bold = True
End With
Next c
Next l
Par contre, j'avais pas pensé ni à l'une ni à l'autre de vos propositions qui fonctionnent hormis la formule SOMME SI...
Mais un tel essai à l'aveugle, je dis bravo.
Merci à vous
Leakim