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

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...:eek:
merci pour votre aide.
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

alfazoulou

XLDnaute Occasionnel
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
@+

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.
 

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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+
 

mapomme

XLDnaute Barbatruc
Supporter XLD
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

  • Feuil-prec-A1 v1.xls
    48 KB · Affichages: 49
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 754
Membres
103 944
dernier inscrit
Stbj