Point à un parent autre Feuille dans Excel
J'essaie de trouver un moyen de partir d'une Cellule d'obtenir les données à partir d'une cellule dans la Feuille qui se trouve à la Gauche (vers le bas dans le bac) de la Feuille en cours.
Je sais comment faire appel à d'autres fiches via
=Sheet1!A1
Mais maintenant j'ai besoin de quelque chose de mieux expliquées par
=Sheet[-1]!A1
Des idées?
OriginalL'auteur Gnutt | 2010-10-29
Vous devez vous connecter pour publier un commentaire.
À l'aide de l'ordre de tabulation comme une partie fondamentale de votre calcul est compliqué et risqué approche de calculs Excel. Excel vous offre de nombreuses alternatives qui vous feriez mieux d'utiliser:
Une version simplifiée de bélisaire à la suggestion est:
=INDIRECT(A1 & "!A2")
où la cellule A1 est le nom de votre source de données de la feuille et A2 est le nom de votre cellule cible dans votre source de données de la feuille. Si vous connaissez le nom de votre feuille d'intérêt (ou pouvez le regarder d'une certaine façon), l'utilisation de cette méthode.Si vous avez besoin de le faire souvent, vous voudrez peut-être exporter les données dans une base de données (c'est à dire MS Access). Ensuite, vous pouvez faire des requêtes SQL standard et importer les résultats dans votre fichier Excel.
Si vous voulez absolument aller le VBA route, alors vous devriez écrire un peu de code:
3a. Attrape tous les noms du classeur actif et les stocke dans un tableau.
3b. Identifie le numéro d'index du classeur actif dans ce tableau. Soustraire 1 à partir de cet indice pour obtenir la feuille vers la gauche.
3c. Obtient la valeur de la cellule à partir de cette feuille.
Vous pouvez également obtenir bizarre avec des Plages Nommées. Dans Excel 2003, aller à Insertion->Nom>Définir, ajouter une nouvelle Plage et vous pouvez utiliser ce nom dans vos calculs au lieu de faire référence à la cellule par ligne et par colonne.
Modifier
S'il vous plaît, s'il vous plaît, ne le faites pas. Pour commencer, ce n'est pas une méthode standard de l'interaction avec une feuille de calcul. Vos utilisateurs finaux sera probablement confus et ne peuvent même pas demander des éclaircissements.
Vous aurez envie d'explorer l'idée de de validation des données:
Alternativement, vous pouvez aussi consulter les Outils->Scénarios. Je ne connais personne qui utilise cette fonctionnalité, mais vous pourriez être un bon candidat. Fondamentalement, il vous permet de voir les résultats des calculs à l'aide de différents jeux de données (c'est à dire des "scénarios") de sorte que l'utilisateur peut revenir en arrière et vient entre eux.
En utilisant l'une des 2 méthodes ci-dessus, il ya une bonne chance que vous pouvez éviter VBA entièrement, économisant ainsi les utilisateurs qui ennuyeux message d'avertissement lors de l'ouverture de votre dossier.
J'espère que les OP destiné à appeler le VBA processus avant que le fichier a été distribué.
L'Idée, c'est que vous avez les Feuilles disposées, et sont en mesure de les déplacer, et qui doit modifier les calculs.
Voir mon Edit (ci-dessus)
OriginalL'auteur PowerUser
Mises en garde:
Pas autant que je sache. Ici vous pouvez trouver une approximation, mais la définition d'une UDF vbaexpress.com/kb/getarticle.php?kb_id=402
OriginalL'auteur Dr. belisarius
Je sais que c'est pas vu ici comme une bonne pratique, mais je veux faire quelque chose de similaire. Et il ne répliquer les fonctionnalités de base de données à un point, mais je n'ai pas le temps ou l'aide pour construire un à partir de zéro quand il y a quelque chose de déjà à moitié en place.
La raison pour laquelle je veux être capable de faire cela est de créer un tableau récapitulatif que les liens vers les feuilles de calcul dans le classeur, et s'étend automatiquement si vous insérez une nouvelle feuille de calcul. C'est de gérer une grande vente /rapports de feuille de calcul avec beaucoup de différentes unités d'affaires qui ont tous la même structure (c'est à dire utiliser la même feuille de calcul au format de rapport les mêmes résultats pour différentes personnes. Il y a un roulement de personnel élevé. Je veux avoir plusieurs fiches de synthèse des rapports différents aspects de la source des feuilles. C'est beaucoup de temps à gérer si recréer toutes les tables à chaque fois.
Vous devrait être en mesure d'utiliser la ligne (en) comme un marqueur d'index pour définir les informations que vous souhaitez à l'aide de quelque chose comme REMPLACER, l'OFFSET ou de l'INDICE, mais vous ne pouvez pas, car ils ne se réfèrent à la 2D tableaux.
Alors que Excel traite en 3-D de références sous forme de tableaux pour les fonctions statistiques, il ne semble pas faire de même pour les fonctions de référence. Vous pourriez avoir de la SOMME(feuillex:sheetY!A1) et être en mesure d'ajouter une feuille entre les deux, il n'y a pas (par exemple) un INDICE(feuillex:sheetY!A1,n) de la fonction. J'ai essayé d'expérimenter l'utilisation de ces fonctions 2D dans le cadre de formules de tableau, et la définition de la référence 3D comme une matrice ou une plage nommée... eh bien, ça valait la peine d'y aller :).
Donc je crois que c'est une bonne action. Je crois aussi qu'il doit y avoir un moyen de le faire, mais pour l'instant je suis en retard sur un UDF qui a le risque d'erreurs causées par des problèmes de calcul, ou de la manipulation d'un Workbook_SheetChange fonction ou similaire. Ou de créer une seule fiche pour le contrôle de tous les autres, qui est remplie à l'aide d'une sous-routine basée sur un tableau de tous les classeurs.
OriginalL'auteur Nick