VBA : adapter une référence de cellule dans une formule en fonction du tableau

Amauty

XLDnaute Junior
Bonjour à tous,
J'utilise une macro afin d'ajouter une colonne à un tableau. Cette colonne affiche le rang des entreprises en fonction de leurs ventes.
Le souci, c'est que mon tableau va changer de taille en fonction du marché considéré. l'idée est de créer une macro qui affiche le rang de chaque entreprise seulement selon le marché considéré, il y a plus ou moins de lignes (plus d'entreprise qui vendent sur le marché USA que sur le marché Angolais !).

Voici la macro :

Ajout colonne rang
Range("B3").Select
ActiveCell.FormulaR1C1 = "rang"
Range("B4").Select
ActiveCell.FormulaR1C1 = "=RANK(RC[2],R4C4:R41C4,0)"
ActiveCell.Select
Selection.AutoFill Destination:=ActiveCell.Range("A1:A41")
ActiveCell.Range("A1:A41").Select
ActiveCell.Offset(0, 1).Range("A1").Select

En bleu, ce sont les éléments que je souhaite voir varier en fonction de la taille du tableau. J'effectue cette sélection lors de l'enregistrement automatique en utilisant CTRL+MAJ+Flèche bas pour sélectionner toutes les données (moins deux lignes pour ne pas prendre en compte le sous-total et le total dans la plage de référence de la formule rang). Seulement, dans la macro, cette méthode n'est pas prise en compte et je me retrouve avec un rang qui s'arrête à la ligne 41 pour tous les tableaux.

Merci par avance pour votre aide.

Amaury
 
C

Compte Supprimé 979

Guest
Re : VBA : adapter une référence de cellule dans une formule en fonction du tableau

Bonsoir Amauty,

Si je puis me permettre mieux vaut utiliser "FormulaLocal" plus simple à comprendre
Code:
ActiveCell.FormulaLocal = "=RANK(B1,D4:D41,0)"

Pour la taille du tableau il suffit de trouver la dernière cellule
Code:
DerCel= Range("A" & Rows.Count).End(XlUp).Row

et de l'intégrer en variable
Code:
ActiveCell.FormulaLocal = "=RANK(B1,D4:D" & DerCel & ",0)"
et
Code:
Selection.AutoFill Destination:=ActiveCell.Range("A1:A" & DerCel)

A+
 
Dernière modification par un modérateur:

Amauty

XLDnaute Junior
Re : VBA : adapter une référence de cellule dans une formule en fonction du tableau

Merci pour ta réponse. Formulalocale, c'est bien pour du VBA en Français? Parce que mon document sera utilisé sur un Excel espagnol...Est ce que cela ne va pas poser de problème par la suite ?
 

Discussions similaires

Réponses
16
Affichages
476

Statistiques des forums

Discussions
312 206
Messages
2 086 220
Membres
103 158
dernier inscrit
laufin