help sur une petite macro débutante

  • Initiateur de la discussion Initiateur de la discussion Ida
  • Date de début Date de début

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 !

I

Ida

Guest
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😀6").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

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
 
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
 
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
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
10
Affichages
791
Réponses
18
Affichages
597
Réponses
2
Affichages
399
Réponses
17
Affichages
1 K
Retour