Nombres lignes dans colonnes dynamique

  • Initiateur de la discussion Initiateur de la discussion deniooo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

deniooo

XLDnaute Occasionnel
Bonjour,
J'ai honte j'ai un énorme trou de mémoire, et la recherche sur le forum ne m'a rien donné (honte sur moi..)

je veux parcourir mes colonnes, et pour chaque colonne déterminer le nombre de cellules utilisées.

J'avais pensé à UsedRange.Columns(toto).Rows.count

Mais ça me renvoi le nom de ligne de usedrange tout court (normal)

Donc j'ai essayé Columns(toto).usedrange.count mais used range ne s'applique qu'à une feuille...

Une autre idée ?!

(je suis sûr que c'est tout con mais je vois pas là.. ni hier d'ailleurs..)
 
Re : Nombres lignes dans colonnes dynamique

Parfait merci!
vous allez peut-être m'aider sur un script,

Je joint le fichier type.

Vous allez vite comprendre, j'ai deux colonnes, une de niveau N et l'autre de niveau N-1. Je veux faire un script qui place les N-1 en fonction des N.

Voici mon ébauche de code :
Code:
Sub reoga()
    Dim plage As Long
    Dim cel As Long
    Dim toto As Long
    
    
    plage = ActiveWorkbook.ActiveSheet.UsedRange.Columns(3).Cells.Count
    cel = 2
    
    Do Until cel > plage
        
        verticalCel = Cells(cel, 3).Value
        For n = 2 To 256
            toto = n + 5
            horizontalCel = Cells(1, toto).Value
            j = Cells(65536, n).End(xlUp).Row
            If (verticalCel Like horizontalCel) Then
                'j = ActiveWorkbook.ActiveSheet.UsedRange.Columns(toto)
                MsgBox (toto)
                MsgBox (i)
                Cells(j, toto).Value = Cells(cel, 2).Value
                
            Next n
        Loop
        cel = cel + 1
    Loop
End Sub

bien entendu il ne fonctionne pas.. j'y ai passé la soirée quelqu'un a une idée ?!


(dsl j'avais zappé le fichier..)
 

Pièces jointes

Dernière édition:
Re : Nombres lignes dans colonnes dynamique

Bonjour à tous,

Peut-être un code comme ça ?

Dim i As Long
For i = 1 To ActiveSheet.UsedRange.Columns.Count
MsgBox "Colonne " & i & " : " & Application.WorksheetFunction.CountA(ActiveSheet.Range(Cells(1, i), Cells(65536, i)))
Next i
 
Dernière édition:
Re : Nombres lignes dans colonnes dynamique

Une remarque avant tout :
Le code que je t'ai fourni précédement compte le nombre de valeurs dans une colonne mais ne te donne pas le numéro de la dernière ligne remplie, ce qui peut être différent.
Qu'est-ce qui t'intéresse ?
Je suppose qu'ensuite on bouclera sur les valeurs existantes en colonne B et qu'on les répartira en colonnes G, H ou I en fonction du contenu de la colonne C.
 
Re : Nombres lignes dans colonnes dynamique

Oui j'ai bien compris ta ligne de commande ne t'inquiéte pas 🙂
Pour trouver combien de lignes sont occupées dans la colonne :
Code:
Application.WorksheetFunction.CountA(ActiveSheet.Range(Cells(1, toto), Cells(65536, toto)))

Je pense faire 2 boucles imbriqués, une qui parcours les valeurs, et l'autre qui pour chaque valeurs parcours les colonne et fais un test.

Si le test est bon alors zou ! on copie !

j'ai commencé avec un truc comme ça mais il plante. j'ai dut faire des erreurs mais pour moi c'est écrit logiquement.

Code:
 plage = ActiveWorkbook.ActiveSheet.UsedRange.Columns(3).Cells.Count
    cel = 2
    
    Do Until cel > plage
        
        verticalCel = Cells(cel, 3).Value
        For i = 2 To 251
            toto = i + 5
            horizontalCel = Cells(1, toto).Value
            ligneUtil = Application.WorksheetFunction.CountA(ActiveSheet.Range(Cells(1, toto), Cells(65536, toto)))
            If (verticalCel = horizontalCel) Then
                MsgBox (toto)
                MsgBox (i)
                MsgBox (ligneUtil)
                Cells(ligneUtil, toto).Value = Cells(cel, 2).Value
            End If
        Next i
        cel = cel + 1
    Loop
 
Re : Nombres lignes dans colonnes dynamique

Et voila !!!! Réussi !! 😀D
c'est qui papa ?!!! 😀

allez je donne le code, je suis sympa 😉

Code:
Sub reoga()
    Dim plage As Long
    Dim cel As Long
    Dim toto As Long
    
    
    plage = ActiveWorkbook.ActiveSheet.UsedRange.Columns(3).Cells.Count
    cel = 2
    iFin = ActiveSheet.UsedRange.Columns.Count

    
    Do Until cel > plage
        verticalCel = Cells(cel, 3).Value
        For i = 2 To iFin
            toto = i + 5
            horizontalCel = Cells(1, toto).Value
            ligneUtil = Application.WorksheetFunction.CountA(ActiveSheet.Range(Cells(1, toto), Cells(65536, toto))) + 1
            If (verticalCel = horizontalCel) Then
                Cells(ligneUtil, toto).Value = Cells(cel, 2).Value
            End If
        Next i
        cel = cel + 1
    Loop
End Sub

Je joke je rassure!

J'avais du faire une boulette quelque part.. bref ça marche merci de vous y être intéressé, en espérant vous aider un jour 😛

Denis.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour