CompterDeslignesDunTableauVariable

  • Initiateur de la discussion Initiateur de la discussion Moa
  • 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 !

M

Moa

Guest
Re à Toutes et tous

Voilà, depuis plusieurs mois, je m'acharne à poser des questions et trouver une solution, pour changer dans des formules la plage de comptage.

Nous avons tout essayé "Countif", Nbval, nb.si +decaler etc...et sans réel succès.

En effet, il y avait toujours des résultats faux.

Eh bien, ce soir, j'ai trouvé la solution.

Une macro associée à une formule.

Donc, j'importe mon nouveau tableau, avec 3000 lignes alors que le précèdent en avait 1500.

Une macro de comptage, qui va me chercher le nouveau nombre de ligne et le copier en B2.

(Dans mon exemple, j'ai besoin de compter à partir de la ligne 16).


Sub CompteLigneFiltrage()
'
' CompteLigFiltrage Macro
' Macro enregistrée le 14/02/2003 par Moa
'
Sheets("Filtrage").Select

Range("C16").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select

'Selection.End(xlToLeft).Select
ActiveCell.FormulaR1C1 = "=ROW()"

Selection.Copy

ActiveCell.Offset(0, -1).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Range("b2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Range("C16").Select
Selection.End(xlDown).Select
ActiveCell.Offset(0, 0).Select
Selection.ClearContents
Range("A1").Select
'
End Sub

Et maintenant, j'ai modifié mes formules "Nb.si", "NbVal", "Somme", comme suit :

NB.SI(DECALER(A16;0;😉😀ECALER(A16;0;;B2);1)
NB.SI(DECALER(A16;0;😉😀ECALER(A16;0;;B2);FAUX)

NBVAL(DECALER(P16;0;😉😀ECALER(P16;0;;B2))


Etc....

Et voilà, du coup, toutes mes formules se mettent à jour sans interventions.

Une petite chose, la macro fonctionne bien, si il n'y a pas de lignes vides, sinon, il faut partir du bas de la feuille et remonter, jusqu'à trouver la première cellule Non vide.

@ +

Moa
 
Bonjour Moa

Je pense que tu as une bonne raison pour utiliser une macro, pour connaître la dernière ligne utilisée d'une colonne.

Cette fonction matricielle, me renvoi le numéro de la dernière ligne utilisée dans la colonne A.

=GRANDE.VALEUR((ESTVIDE(Feuil1!A1:A65536)=FAUX)*(LIGNE(Feuil1!a1:a65536));1)

@+Jean-Marie
 
Hi! (prononcer haïe) Moa et le forum


Pour compter le nombre de lignes et de colonnes de la plage sélectionnée
j'utilise

With Selection
nblig = .Rows.Count
nbcol = .Columns.Count
End With

mais ça, tu y as sans doute déjà pensé!

c u soon

Cathy
 
Merci à vous deux de ce complément d'information.

La formule de Jean-Marie, ne me convient pas dans ce cas, pour plusieurs raisons.

En effet, je dois commencer à compter à partir de la 16è ligne, ensuite, si je mets, ta formule en A2 ou autre, "Référence circulaire".

De plus, je cherche vraiment à éviter les formules allant jusqu'à 65 536.
Mon fichier fait déjà 19 Mo.

Quant à Cathy, ton code me servira certainement dans un autre cas,mais là il s'agit seulement de remettre une cellule à jour en fonction du nouveau tableau importé.

Bonne journée à vous deux et encore Merci

@ +

Moa
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
214
Réponses
18
Affichages
134
Réponses
10
Affichages
455
Réponses
17
Affichages
878
Retour