Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

comment faire référence à l'onglet précédent

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alfazoulou

XLDnaute Occasionnel
Bonjour le forum,
pourriez vous me dire comment faire référence à l'onglet précédent.
je m'explique.
à l'activation d'une feuille je voudrais que la cellule A2 contienne la valeur de la cellule A1 de la feuille précédente dont je ne connais pas le nom.
J'imagine une histoire de Count-1 mais bon...😱
merci pour votre aide.
 
Re : comment faire référence à l'onglet précédent

Bonjour Alfazoulou,

code ci dessous à placer dans le module de la feuille concernée :

Code:
Option Explicit
Private Sub Worksheet_Activate()
If Me.Index > 1 Then Range("A2").Value = Sheets(Me.Index - 1).Range("A1").Value
End Sub

bonne journée
@+
 
Re : comment faire référence à l'onglet précédent


merci pierrot93 pour ta réponse, en fait j'ai trouvé entre temps que l'on pouvait écrire If Sheets(Sheets.Count - 1) pour faire référence à la page d'avant.
 
Re : comment faire référence à l'onglet précédent

Re, bonsoir Job

Car si le code est placé dans le premier onglet, cela planterait car il n'existe pas d'index 0... simple test...

bonne soirée
@+
 
Re : comment faire référence à l'onglet précédent

Bonjour le forum,

Quelqu'un pourrait-il m'expliquer ce qu'il convient d'entendre par "dans le module" ? S'agit-il d'une macro ?

Merci par avance.
 
Re : comment faire référence à l'onglet précédent

Bonjour toutvavraimentbien,

Il s'agit en effet de ce que l'on appelle une macro.

Et j'en profite pour améliorer la macro de Pierrot 🙂

Pour qu'elle fonctionne sur toutes les feuilles, coller dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Index > 1 Then Sh.Range("A2") = Sheets(Sh.Index - 1).Range("A1")
End Sub
Pour cela Alt+F11 pour aller dans Visual Basic, puis double-clic en haut à gauche sur ThisWorkbook.

A+
 
Re : comment faire référence à l'onglet précédent

Re,

S'il y a des feuilles type "Graphique" intercalées, la macro précédente plante...

Alors on peut utiliser une macro un peu plus compliquée, toujours dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim i As Integer
For i = 2 To Worksheets.Count
  If Worksheets(i).Name = Sh.Name Then
    Sh.Range("A2") = Worksheets(i - 1).Range("A1")
    Exit For
  End If
Next
End Sub
A+
 
Re : comment faire référence à l'onglet précédent

Bonjour job75,

Un autre essai (devrait fonctionner avec n'importe quel type de feuille)
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim X
On Error GoTo FIN:
Set X = Sh
Do
    Set X = X.Previous
Loop Until X.Type = xlWorksheet
Sh.Range("A2") = X.Range("A1")
FIN:
End Sub
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
256
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…