Copier le contenu de cases de la feuille precedente

Bonjour

Je souhaiterais un petit coup de main sur une fonction que je voudrais ajouter à un tableau excel que je suis en train de créer.

Je souhaiterais, en cliquant sur un bouton, copier le contenu de plusieurs cases se trouvant dans la feuille précédente.

En gros, j'ai un tableau qui s'étale de A1 à E10 dans feuill1, j'ai le même tableau dans feuill2 mais celui ci est vide. En cliquant sur un bouton sur feuill2, j'aimerais que tout le contenu des cases A1 à E10 de feuill1 soit copié dans les cases A1 à E10 de feuill2. Mon problème est que je n'y connais pas gd chose en VBA et que la formule du bouton qui sera sur feuill2 doit pointer vers la feuille qui précède Feuill2. Dans notre cas il s'agit de Feuill1 mais si jamais j'insère Feuill7 juste avant Feuill2, je voudrais que la formule copie le contenu A1 à E10, non plus de feuill1 mais de feuill7.

Pas sûr que ce soit très très clair

Merci pour toute aide

Bonjour.

Un essai avec ceci. A voir

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A1:E10")) Is Nothing Then
Dim sh As Integer
Dim cl As String
sh = ActiveSheet.Index - 1
cl = Target.Address
Target.Copy Sheets(sh).Range(cl)
End If
End Sub
60sebou.zip (10.34 Ko)

Bonsoir,

Une autre possibilité. La Sub LaunchSb est affectée au bouton. Fichier joint. Cordialement

Jules

Option Explicit
Sub LaunchSb()
'coordonnées 1ere cellule du tableau à copier
'hauteur, largeur
'coordonnées 1ere cellule du tableau d'arrivé
    Call Sb(1, 1, 10, 5, 1, 1)
End Sub
Sub Sb(y1&, x1%, ht&, lg%, yy&, xx%)
Dim oRg As Range, i%, oS1 As Worksheet, oS2 As Worksheet
Set oS1 = ActiveSheet
If oS1.Name = Worksheets(1).Name Then
    MsgBox "Cette feuille ne peut être la 1ère pour l'action demandée"
    Exit Sub
End If
For i = 1 To Worksheets.Count
    If ActiveSheet.Name = Worksheets(i).Name Then
        Set oS2 = Worksheets(i - 1)
        Set oRg = oS2.Range(oS2.Cells(y1, x1), oS2.Cells(y1 + ht - 1, x1 + lg - 1))
        oRg.Copy Destination:=Worksheets(i).Cells(yy, xx)
        Exit Sub
    End If
Next i
End Sub
53sb.zip (11.76 Ko)

Merci pour ces reponses, je teste ca de suite

Re.

Peut-être plus en rapport avec ce que tu souhaitais et en m 'inspirant du code de Jules237 pour la feuille en première position: Macro à mettre dans un module

Sub copiertab()
Dim sh As Integer
sh = ActiveSheet.Index - 1
    If sh = 0 Then
        MsgBox "Cette feuille est en première position et ne peut donc pas" & vbCrLf _
        & "renvoyer la cellule dans la feuille précédente"
    Else
        Sheets(sh + 1).Range("A1:E10").Copy
        Sheets(sh).Range("A1:E10").PasteSpecial xlPasteValues
        Application.CutCopyMode = False
    End If
End Sub

J'ai donc testé les trois formules.

Je n'arrive malheureusement pas à raccorder la premiere à un bouton

La deuxième marche mais je ne trouve pas comment configurer les cases que je dois selectionner pour la copie

La 3eme n'a pas l'air de fonctionner, les données de la pages precedentes apparaissent rapidement (1/4 de sec) puis disparaissent....

J'avais pt etre pas precisé que je suis une grosse quiche en vba

-- 23 Mar 2011, 18:55 --

un pote m'a aidé pour comprendre la 2eme formule et elle marche nickel, merci bcp

Rechercher des sujets similaires à "copier contenu cases feuille precedente"