Changement de colonne dans une itération

Bonjour à tous,

Je pense que mon problème a probalement déjà été posé mais voilà je ne trouve pas ce qui me correspond ^^... je ne veux pas forcément la solution net mais au moins un petit coup de pouce

Le problème :

Je veux compter le nombre de cellule contenant un nombre par colonne puis les retranscrire dans un autre fichier. J'arrive actuellement à le faire mais ce n'est pas du tout optimisé. C'est probablement flou ce que je raconte ^^.. voilà comment je fais actuellement : (je vous passe le détail du reste du code)

 cpt = WorksheetFunction.Count(Range("O12:O347"))
                ThisWorkbook.Worksheets("DONNEES").Range("A6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("P12:P347"))
                ThisWorkbook.Worksheets("DONNEES").Range("B6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("Q12:Q347"))
                ThisWorkbook.Worksheets("DONNEES").Range("C6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("R12:R347"))
                ThisWorkbook.Worksheets("DONNEES").Range("D6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("S12:S347"))
                ThisWorkbook.Worksheets("DONNEES").Range("E6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("T12:T347"))
                ThisWorkbook.Worksheets("DONNEES").Range("F6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("U12:U347"))
                ThisWorkbook.Worksheets("DONNEES").Range("G6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("V12:V347"))
                ThisWorkbook.Worksheets("DONNEES").Range("H6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("W12:W347"))
                ThisWorkbook.Worksheets("DONNEES").Range("I6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("X12:X347"))
                ThisWorkbook.Worksheets("DONNEES").Range("J6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("Y12:Y347"))
                ThisWorkbook.Worksheets("DONNEES").Range("K6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("Z12:Z347"))
                ThisWorkbook.Worksheets("DONNEES").Range("K6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AA12:AA347"))
                ThisWorkbook.Worksheets("DONNEES").Range("M6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AB12:AB347"))
                ThisWorkbook.Worksheets("DONNEES").Range("N6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AC12:AC347"))
                ThisWorkbook.Worksheets("DONNEES").Range("O6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AD12:AD347"))
                ThisWorkbook.Worksheets("DONNEES").Range("P6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AE12:AE347"))
                ThisWorkbook.Worksheets("DONNEES").Range("Q6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AF12:AF347"))
                ThisWorkbook.Worksheets("DONNEES").Range("R6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AG12:AG347"))
                ThisWorkbook.Worksheets("DONNEES").Range("S6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AH12:AH347"))
                ThisWorkbook.Worksheets("DONNEES").Range("T6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AI12:AI347"))
                ThisWorkbook.Worksheets("DONNEES").Range("U6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AJ12:AJ347"))
                ThisWorkbook.Worksheets("DONNEES").Range("V6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AK12:AK347"))
                ThisWorkbook.Worksheets("DONNEES").Range("W6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AL12:AL347"))
                ThisWorkbook.Worksheets("DONNEES").Range("X6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AM12:AM347"))
                ThisWorkbook.Worksheets("DONNEES").Range("Y6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AN12:AN347"))
                ThisWorkbook.Worksheets("DONNEES").Range("Z6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AO12:AO347"))
                ThisWorkbook.Worksheets("DONNEES").Range("AA6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AP12:AP347"))
                ThisWorkbook.Worksheets("DONNEES").Range("AB6").Value = cpt
                        cpt = WorksheetFunction.Count(Range("AQ12:AQ347"))
                ThisWorkbook.Worksheets("DONNEES").Range("AC6").Value = cpt

Et ça ce n'est qu'un exemple, je le fais 12 fois dans ma macro ça.. je pense que c'est faisable avec itération ou autre mais je ne trouve rien..

Bonjour,

Une piste :

Sub Test()

    Dim I As Integer

    For I = 1 To 29

        Worksheets("DONNEES").Cells(6, I).Value = Application.Count(Range(Cells(12, I + 14), Cells(347, I + 14)))

    Next I

End Sub

Eh bien je dirais même que c'est la solution qu'il me fallait même, merci beaucoup !

Content d'avoir pu t'aider !

Rechercher des sujets similaires à "changement colonne iteration"