Vous pouvez récupérer la plage sélectionnée en utilisant
Application.Selection.Address
Cela vous donnera une valeur de plage (la propriété de sélection renvoie un objet Range) qui ressemble à quelque chose comme « $B$4:$J$20
».
Étant donné que vous avez maintenant une gamme de travailler avec, vous pouvez itérer à travers chaque colonne en utilisant quelque chose comme:
For Each col In userSelectedRange.Columns
...
Next
La propriété Colonnes retourne à nouveau un objet Range que vous pouvez parcourir plus ou effectuer d'autres calculs (vos besoins exacts ne sont pas trop clairs de votre question).
Pour publier le résultat calculé deux lignes au-dessus de chaque colonne (par exemple un sous-total ou similaire), essayez d'utiliser la fonction de décalage:
Cells.Offset(-2, 0)
Si vous êtes en mesure de fournir plus de détails dans le genre de calcul que vous vouloir, je peux être en mesure d'ajouter plus de détails dans la façon dont vous y parvenez.
Merci pour l'aide. Je peux faire les calculs moi-même, je ne suis pas très familier avec la façon de sélectionner certains ensembles de cellules d'Excel. Les calculs sont soit simplement une moyenne simple de chaque colonne, puis en soustrayant la moyenne de chaque élément dans les colonnes. – Stefan
Est-ce que ma réponse fournit suffisamment d'aide pour parcourir des ensembles de cellules, ou en avez-vous besoin? Il existe d'autres propriétés et méthodes dans VBA qui vous permettent de travailler avec des plages de différentes manières dans Excel. –
Je crois que j'ai besoin d'itérer sur la plage des Colonnes, et ensuite la plage des Lignes pour obtenir la moyenne de chaque colonne, oui? Mais quand j'essaie de faire ça, je rencontre des problèmes. Puis-je vous PM avec mon code, ou est-il possible de l'insérer dans les commentaires? – Stefan