Techniquement, la solution que je cherche est de minimiser la programmation réelle. J'ai besoin de savoir s'il existe des fonctionnalités Excel que je peux invoquer à partir de VBA, au lieu d'avoir à coder toute la logique moi-même.Excel - Enveloppe la plage de lignes dans une colonne donnée, avec la première colonne répétée pour la plage de lignes
Imaginez la feuille suivante:
Position Competency1 Competency2 Competency3 Competency4
Employee1 x x
Employee2 x x
Ce que je besoin est le résultat suivant:
Position Competency1 Competency2
Employee1 x
Employee2 x
Position Competency3 Competency4
Employee1 x
Employee2 x
En d'autres termes, je veux Excel pour déplacer les colonnes vers le bas, mais maintenir la première colonne. Maintenant pour le bit compliqué; il y aura plusieurs postes, avec différents employés. Ainsi, un produit final pourrait ressembler à:
Position Competency1 Competency2
Employee1 x
Employee2 x
Position Competency3 Competency4
Employee1 x
Employee2 x
Position2 Competency5
Employee3 x
Employee4
Les données sont extraites d'une base de données et formatée dans la mise en page ci-dessus via VBA. Le nombre de postes et d'employés/compétences par poste sont tous variables.
Je peux bien sûr coder le tout, mais cela me faciliterait la vie si je pouvais simplement ajouter quelques paramètres à Excel et le faire pour moi. Le problème est, quelle fonctionnalité pertinente que j'ai trouvée semble être à l'échelle de la feuille, alors que je dois être en mesure de spécifier plusieurs ensembles de lignes et de colonnes.
Je soupçonne plutôt la réponse: «Suce-le et code-le». Mais je ne connais pas assez Excel pour le dire à coup sûr.
Dans ce cas, je recommande un tableau croisé dynamique, et vous n'avez même pas besoin d'écrire du code pour le créer. – JimmyPena
Je n'ai pas été en mesure de résoudre ce problème en utilisant PivotTable et aucun de mes collègues ne peut voir comment cela pourrait être fait non plus. Si c'est effectivement possible, il est probable que j'utiliserais autant, voire plus de temps, pour comprendre comment et préparer les données que de simplement les coder dans VBA. –