Nbval plage dynamique

Bonjour à tous !

Je cherche une formule à prolonger sur toute une colonne qui permettrait de compter le nombre de cellule en dessous de chaque cellule contenant un "-"

La plage est dynamique et je dois toujours modifier la plage sélectionnée quand j'utilise le nbval

Ci-joint mon problème

En colonne A les données

En colonne B ce que je fais actuellement

Merci d'avance !

Bechamelle

11bechamelle.xlsx (8.74 Ko)

bonjour

un essai ;mais ça pique

fonction matricielle

25bechamelle.xlsx (9.77 Ko)

il conviendrait de nommer la plage en dynamique pour que ce soit générique

cordialement

Bonsoir le fil, bonsoir le forum,

Une proposition VBA avec le code ci-dessous :

Sub Macro1()
Dim O As Worksheet 'déclare la variablre O (Onglet)
Dim TV As Variant 'déclare la variablre TV (Tableau des Valeurs)
Dim TL() As Variant 'déclare la variablre TL (Tableau des Lignes)
Dim I As Integer 'déclare la variablre I (Incrément)
Dim J As Integer 'déclare la variablre J (incrément)
Dim K As Integer 'déclare la variablre K (incrément)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter)
O.Columns(2).ClearContents 'vide la colonne 2 de l'onglet O
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    If InStr(1, TV(I, 1), "-", vbTextCompare) <> 0 Then 'si la donnée ligne I colonne 1 contient un tiret
        K = K + 1 'incrémente K
        ReDim Preserve TL(1 To K) 'redimensionne le tableau des lignes TL
    Else 'sinon
        TL(K) = TL(K) + 1 'définit la valeur de TL(K)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    'si la donnée ligne I colonne 1 contient un tiret, renvoie la valeur de TL(J+1), incrémente J
    If InStr(1, TV(I, 1), "-", vbTextCompare) <> 0 Then O.Cells(I, "B").Value = TL(J + 1): J = J + 1
Next I 'prochaine ligne de la boucle
End Sub

Rebonjour !

Les 2 propositions répondent parfaitement à mon problème

Je pense utiliser la méthode VBA de ThauThème

Merci d'avoir pris le temps de me répondre !

Cordialement

Bechamelle

Rebonjour !

Je reviens sur ce poste pour un autre problème..

En voulant adapter la macro de ThauThème à mon fichier initial, je me suis aperçue que je n'ai pas donné toutes les info.

En effet, je remets ci-joint mon exemple avec :

en feuil1 ce que j'avais publié et la macro qui fonctionne

en feuil2 ce à quoi se rapproche mon fichier initial et la macro qui rencontre une erreur

En cherchant à résoudre le problème (sans succès ), je pense que l'erreur vient de la formule .CurrentRegion et le fait qu'il y est des cellules avec un contenu autour

Merci d'avance !

Bechamelle

4bechamelle2.xlsm (19.70 Ko)
Rechercher des sujets similaires à "nbval plage dynamique"