recuperation chiffre dernier onglet

materhorn

XLDnaute Occasionnel
Bonjour

Je construis un fichier répertoriant dans chaque onglet des résultats de production.
Chaque semaine un nouvelle onglet est crée.( S1 S2 S3 .....) qui vient donc s'ajouter avant la feuille Fin.
En fin de fichier figure un onglet Global qui comptabilise mes productions hebdo.

Dans l'onglet global certaines colonnes font donc la somme (ou parfois des moyennes ) des colonnes des autres onglets.

Je voudrais que la colonne BBB par exemple reprenne les chiffres de cette meme colonne dans le dernier onglet hebdo ( S3 dans ce cas).
Lors de l introduction d'un mouvel ongle (S4) comment peut on dans la formule indiquer cette possibilité de maniére automatique sans avoir a revenir chaque semaine et donc modifier la référence onglet.
Cordialement
Jean Louis
 

Pièces jointes

  • essai global.xlsx
    12.6 KB · Affichages: 23

Caillou

XLDnaute Impliqué
Re : recuperation chiffre dernier onglet

Bonjour,

Je suppose que :
1. le classeur contient uniquement les feuilles s1 à sn + les 3 feuilles (debut, fin & global)
2. les feuilles semaines sont nommées s suivi du n° de la semaine

On commence par créer un nom qui contient le nombre de feuilles "semaines", soit dans le gestionnaire de noms :
Nom : NO
Fait référence à : =NBVAL(LIRE.CLASSEUR(1))-3

Ensuite sur la feuille global dans la cellule C2, on entre la formule :
Code:
=INDIRECT("s"&NO&"!C"&LIGNE())

on peut recopier vers le bas

Caillou
 

Paf

XLDnaute Barbatruc
Re : recuperation chiffre dernier onglet

Bonjour materhorn, Caillou,

une autre solution, par fonction personnalisée

Dans un module standard copier cette fonction:

Code:
Function ValeurFeuilPreced()
 Application.Volatile
 With Worksheets("GLOBAL")
  ValeurFeuilPreced = Worksheets(.Index - 2).Range(Application.ThisCell.Address)
 End With
End Function



Puis en C2 (par exemple)de la feuille GLOBAL, insérer, fonction, fonction personnalisée, ValeurFeuilPreced;

La valeur de la cellule C2 de la feuille précédent la feuille Fin ( donc la feuille S3 dans l'exemple joint ) apparaitra en C2 de la feuille GLOBAL.

La formule peut-être tirée vers le bas.

A+
 

job75

XLDnaute Barbatruc
Re : recuperation chiffre dernier onglet

Bonjour à tous,

Pour remplir la feuille "GLOBAL" voyez cette macro dans le fichier joint :

Code:
Private Sub Worksheet_Activate()
Dim d As Object, w As Worksheet, sem, t, i&, nom$, n&, rest()
Set d = CreateObject("Scripting.Dictionary")
For Each w In Worksheets
  If LCase(w.Name) Like "s#*" Then
    sem = Val(Mid(w.Name, 2))
    t = w.[A1].CurrentRegion.Resize(, 3)
    For i = 2 To UBound(t)
      nom = t(i, 1)
      If Not d.exists(nom) Then
        n = n + 1
        d(nom) = n 'repérage
        ReDim Preserve rest(1 To 6, 1 To n)
        'ligne 1 nom
        'ligne 2 somme AAA
        'ligne 3 dernier BBB
        'ligne 4 moyenne
        'ligne 5 nombre d'occurences du nom
        'ligne 6 numéro de la dernière semaine
        rest(1, n) = nom
      End If
      rest(2, d(nom)) = rest(2, d(nom)) + t(i, 2) 'somme
      If sem > rest(6, d(nom)) Then rest(6, d(nom)) = sem: rest(3, d(nom)) = t(i, 3)
      rest(5, d(nom)) = rest(5, d(nom)) + 1 'nombe d'occurences du nom
      rest(4, d(nom)) = rest(2, d(nom)) / rest(5, d(nom)) 'moyenne
    Next i
  End If
Next w
If n Then [A2].Resize(n, 4) = Application.Transpose(rest)
Rows(n + 2 & ":" & Rows.Count).Delete
End Sub
Edit : notez que les listes des noms dans les feuilles peuvent ne pas être identiques.

A+
 

Pièces jointes

  • essai global(1).xlsm
    26.7 KB · Affichages: 31
Dernière édition:

materhorn

XLDnaute Occasionnel
Re : recuperation chiffre dernier onglet

Merci a tous

J ai essayé les diverses solutions toutes conviennent parfaitement à mes besoins.

Encore une fois le forum prouve sa grande réactivité et surtout les compétences de tous les intervenants

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 247
Messages
2 086 588
Membres
103 247
dernier inscrit
bottxok