XL 2019 Fonction Decaler

kikililou

XLDnaute Nouveau
Help Help Help !!!
Depuis ce matin je n'arrive pas à utiliser cette fonction si pratique !!
Je souhaiterai que mes stocks et besoins s'inscrivent automatiquement en fonction de l’unité que je choisie en cellule B1....
Je m'arrache les cheveux ...

Je sais que je vais bien trouver une âme charitable pour m'expliquer mon erreur ....
 

Pièces jointes

  • STOCK.xlsx
    41.3 KB · Affichages: 13

sylvanu

XLDnaute Barbatruc
Supporter XLD
Mais si le but était dans Folha1 de recopier les tableaux des feuilles en fonction de la liste déroulante alors il y a plus simple avec INDIRECT.
VB:
=INDIRECT($B$1&"!B"&LIGNE()+1)
Indirect reconstruit l'adresse de la cellule.
Ainsi si B1=HP alors =INDIRECT($B$1&"!B"&LIGNE()+1) devient =HP!B4.
 

Pièces jointes

  • STOCK (2).xlsx
    30 KB · Affichages: 12

kikililou

XLDnaute Nouveau
Mais si le but était dans Folha1 de recopier les tableaux des feuilles en fonction de la liste déroulante alors il y a plus simple avec INDIRECT.
VB:
=INDIRECT($B$1&"!B"&LIGNE()+1)
Indirect reconstruit l'adresse de la cellule.
Ainsi si B1=HP alors =INDIRECT($B$1&"!B"&LIGNE()+1) devient =HP!B4.
C'est exactement ça que je souhaitais faire...
Par contre, dès que je renomme les feuilles, il s'inscrit dans la cellule #REF !
 

job75

XLDnaute Barbatruc
Bojour kikililou, sylvanu, soan,
Mais tu vois quand je modifies le nom des feuilles certaines dellules sont idiquées #REF !
Pour l'éviter il faut du VBA, voyez le fichier joint et cette macro dans le code de la 1ère feuille :
VB:
Private Sub Worksheet_Calculate()
If Worksheets.Count = 1 Then Exit Sub
Dim a$(), i%
ReDim a(1 To Worksheets.Count - 1, 1 To 1)
For i = 2 To Worksheets.Count
    a(i - 1, 1) = Worksheets(i).Name
Next
Application.EnableEvents = False
With [L2]
    .Resize(i - 2) = a
    .Resize(i - 2).Name = "Liste"
    .Offset(i - 2).Resize(Rows.Count - i - .Row + 3).ClearContents
End With
If IsError(Application.Match([B1], [Liste], 0)) Then [B1] = [Liste].Cells(1) '1ère valeur
Application.EnableEvents = True
End Sub
Grâce aux formules avec INDIRECT qui sont volatiles la macro se déclenche chaque fois que des cellules se recalculent.

Pour tester modifiez le nom des feuilles.

A+
 

Pièces jointes

  • STOCK VBA(1).xlsm
    39.5 KB · Affichages: 8

Discussions similaires

Réponses
5
Affichages
312

Statistiques des forums

Discussions
312 095
Messages
2 085 250
Membres
102 836
dernier inscrit
Ali Belaachet