help sur une petite macro débutante

Ida

XLDnaute Junior
Bonjour,
Je débute dans les macros et je n'ai pas réussi à trouver ce que je cherchais dans d'autres discussions.

Alors en faite ma macro est la suivante:

Sub copie()

Sheets("S1M").Select
Range("A1:D6").Select
Selection.Copy
Sheets("S1J").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
End Sub


Mais je voudrais que S1M soit remplacer par "onglet précédent" et S1J par "onglet actif" pour que ma macro soit valable pour chaque onglet de mon classeur.

J'ai essayé avec count-1 et active sheet mais il me demande de mettre end If quand j'ai End Sub et quand je mets End If il me demande de corriger avec End Sub!!!! Je tourne en rond!!!

Ci joint un exemple simplifier du mon fichier (pas forcément utile!!!)

Merci
 

Pièces jointes

  • macro copier.xls
    39 KB · Affichages: 39

pierrejean

XLDnaute Barbatruc
Re : help sur une petite macro débutante

Bonjour Ida

A tester:

Code:
Sub copie()
  Dim ind As Integer
  Dim f_prec As Object
    ind = ActiveSheet.Index
    Set f_prec = Sheets(ind - 1)
    f_prec.Range("A1:D6").Copy
     Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
      Range("A1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
End Sub
 

ERIC S

XLDnaute Barbatruc
Re : help sur une petite macro débutante

Bonjour à tous

je me méfie toiujours des "précédents" et "suivant" car les feuilles ne sont pas forcément créées dans l'ordre, ou dans l'ordre.

une autre approche donc

Code:
    'La macro est à lancer d'une feuille "J" (bouton...)
    'Si le nom de la feuille à copier est celui de la feuille active sauf "M" au lieu de "J"
    Dim nomfeuil As String
    nomfeuil = Left(ActiveSheet.Name, Len(ActiveSheet.Name) - 1) & "M"
    Sheets(nomfeuil).Range("A1:D6").Copy 'sans sélectionner la feuille
'    Sheets("S1J").Select  'pas utile si ta macro est lancée à partir d'une feuille "J"
    Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    ActiveSheet.Paste
 

Ida

XLDnaute Junior
Re : help sur une petite macro débutante

Merci beaucoup pour votre aide rapide et efficace!!!

Je ne comprend pas tout mais le principal c'est que ca fonctionne!!!

Je crois que je vais qd mm demander à mon chef une formation approndis la dessus!!!

Et merci encore
 

Discussions similaires

Réponses
2
Affichages
133
Réponses
5
Affichages
136

Statistiques des forums

Discussions
312 370
Messages
2 087 688
Membres
103 639
dernier inscrit
NIEMASAFI