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

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

Rechercher des sujets similaires à "boucle colonne"