Comment créer une liste personnalisée avec une référence croisée de feuille?

0

À la fin du mois, je reçois un fichier Excel avec un nombre variable de feuilles.

Chaque feuille a une valeur dans la même cellule: A1

Je veux créer une nouvelle feuille et afficher toutes les valeurs de A1 sur chaque feuille et la somme.

Je sais comment obtenir la valeur d'une cellule à feuilles croisées, =Sheet1!A1mais si je mets une nouvelle feuille =Sheet1!A1et que j'essaie d'étendre une série, elle remplira la formule avec =Sheet1!B1 au lieu de =Sheet2,!A1 résultat souhaité.

Comment créer une liste personnalisée avec des références croisées de feuilles?

Mariano Montañez Ureta
la source

Réponses:

1

Sans savoir comment vous souhaitez procéder, une méthode simple consisterait à utiliser une méthode indirecte.

Donc, sur votre résumé, si vous commencez à la ligne 1 -

=INDIRECT("Sheet"&ROW()&"!$A$1")

Cela affichera A1 sur la feuille Sheet1

La rangée 2 affichera A1 sur la feuille Sheet2

etc.


Une autre façon de s’en approcher serait avec une macro

Sub gather()
Dim wssrc As Worksheet
 'if this stays as activesheet, only run this when summary sheet is active
 'Otherwise, just change the activesheet to the summary sheet like -
 'Set wssrc = ThisWorkbook.Sheets("Sheet4") where "Sheet4" is whatever your summary sheet is
 Set wssrc = ActiveSheet
 Dim i As Integer
 i = 1

   For Each sh In ThisWorkbook.Sheets
      If Not sh.Name = wssrc.Name Then
       wssrc.Cells(i, 1) = sh.Cells(1, 1)
       i = i + 1
      End If
   Next
End Sub

Cela parcourt toutes les feuilles du classeur, vérifie qu'elles ne sont pas votre feuille de résumé et copie leur A1valeur dans la feuille de résumé de la colonne A.

Raystafarian
la source
Excellent. Juste une remarque à propos de la formule, si vous ne pouvez pas commencer à la ligne 1, vous pouvez l’ajuster en soustrayant le nombre de lignes de 1 à votre point de départ. Cela fera en sorte que le numéro de ligne s'ajuste aux numéros de feuille.
Raystafarian