Je cherche à déterminer automatiquement le nombre de lignes de l'entête d'un tableau qui sont accessoirement figées / protégées par un volet.
La solution de facilité serait de coder en "dur" la valeur en question mais justement mon entête étant dynamique, j'ai besoin de récupérer le nombre de lignes qu'il occupe pour limiter la saisie par ailleurs dans le tableau sans avoir à revenir modifier directement le code.
Cela me permettrait aussi :
- d'agrandir dynamiquement le volet (mais là je ne sais pas encore si c'est possible ?),
- de définir de façon dynamique des plages nommées qui ont pour origine une cellule de la ligne immédiatement supérieure à la dernière ligne occupée par l'entête.
Qq'un a-t-il une idée de trame pour coder une telle fonction qui me ramènerait ce nombre de lignes ?
Merci d'avance de votre aide.
Cordialement
oracle7
Re : Calculer le nombre de lignes d'un entête figé par volets
Re,
Code:
Function nbLignesEntete() As Long
Dim idx As Variant
idx = Application.Match("[B]Datas[/B]", [A1:A100], 0)
If Not IsError(idx) Then nbLignesEntete = Range("A1:A" & idx - 1).Rows.Count
End Function
Re : Calculer le nombre de lignes d'un entête figé par volets
Bonsoir à tous,
Eh bien j'ai crié victoire trop vite le problème n'est pas résolu.
En effet la solution proposée par Hasco marche certes, mais pas dans le cas où la cellule "Datas" est une cellule "fusionnée".
Je m'explique :
Si l'entête du tableau occupe réellement 3 lignes (A1:... à A3:...) et que le libellé "Datas" soit initialement en $A$3 mais que l'on ait fusionné les cellules $A$1 à $A$3 en une seule alors la fonction renvoie la valeur 1 pour la taille de l'entête en nb de lignes. Ce qui est manifestement faux !
Je reviens donc vers vous pour m'aider à résoudre ce problème.
Merci d'avance de votre coopération.
Re : Calculer le nombre de lignes d'un entête figé par volets
Bonsoir oracle7, Hasco,
Au risque de déplaire, les cellules fusionnées sont un truc de secrétaire pour faire Zouli.... Si l'on réfléchi bien, on en a pas besoin pour le même résultat.
Donc, on vire les cellules fusionnées et l'on travaille sérieusement.
Re : Calculer le nombre de lignes d'un entête figé par volets
Re,
Voici la fonction transformé.
Elle cherche "Datas" et retourne le numéro de ligne -1, mais il faut que ta première ligne d'entête soit la ligne 1
Code:
Function nbLignesEntete() As Long
Dim idx As Variant
idx = Application.Match("Datas", [A1:A100], 0)
If Not IsError(idx) Then nbLignesEntete = Idx-1
End Function
Re : Calculer le nombre de lignes d'un entête figé par volets
Re Oracle,
Ce qu'il faut chercher c'est la première valeur de tes données. Dans l'exemple joint : 'a':
Code:
Function nbLignesEntete() As Long
Dim idx As Variant
idx = Application.Match("a", [A1:A100], 0)
If Not IsError(idx) Then nbLignesEntete = idx - 1
End Function