Modification de macro pour etre utilise sur n'importe quel onglet

Bonjour,

Comment puis je modifié ces 2 macro pour qu'il soit utilisable sur n'importe quel onglet?

actuellement, si le le met sur l'onglet 40, il prend toujours les référence de l'onglet 39

Merci d'avance pour votre aide

Sub envoi()
'
' envoi Macro
'

'
    Sheets("Suivi faisabilité en nombre").Select
    Range("B1:B35").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("39").Select
    Range("AR39").Select
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AR40:AR44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AS40:AS44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AT40:AT44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B17").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AU40:AU44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B24").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AV40:AV44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B31").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B1:B35").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("39").Select
    Range("AR46").Select
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AR47:AR51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AS47:AS51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AT47:AT51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B17").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AU47:AU51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B24").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AV47:AV51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B31").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("B:B").Select
    Application.CutCopyMode = False
    Selection.Style = "Percent"
End Sub
Sub Envoi_realisé()
'
' Envoi_realisé Macro
'

'
    Sheets("Suivi faisabilité en nombre").Select
    Range("B39:B72").Select
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("39").Select
    Range("AR46").Select
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B39").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AR40:AR44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B40").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AS40:AS44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B47").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AT40:AT44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B54").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AU40:AU44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B61").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AV40:AV44").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Suivi faisabilité en nombre").Select
    Range("B68").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B39:B72").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("39").Select
    Range("AR46").Select
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B39").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AR47:AR51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B40").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AS47:AS51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B47").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AT47:AT51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B54").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AU47:AU51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B61").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("39").Select
    Range("AV47:AV51").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Nb Faisibilité par poste en %").Select
    Range("B68").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range("B40:B72").Select
    Application.CutCopyMode = False
    Selection.Style = "Percent"
End Sub

Bonjour,

Un fichier allégé sans données confidentielles et bien documenté sur le but à atteindre eût été plus pratique que de s'amuser à décortiquer votre code.

Je ne peux que vous proposer une solution d'près le contenu de votre macro. j'ai traité uniquement la macro "Envoi", appliquez le même principe pour la macro "Envoi_realisé".

Sub envoi()
    Dim f1 As Worksheet, f2 As Worksheet 'déclaration des variables
    Application.ScreenUpdating = False 'evite les rafraichissements de l'écran et accélère la vitesse d'exécution
    Set f1 = Sheets("Suivi faisabilité en nombre") ' noms des feuilles mis en variables
    Set f2 = Sheets(ActiveSheet.Name)
    f1.Range("B1:C35").Insert Shift:=xlToRight 'On se positionne sur la colonne B et on y insère 2 colonnes
    f1.Range("C1").Value = f2.Range("AR39").Value
    f1.Range("C3:C7").Value = f2.Range("AR40:AR44").Value
    f1.Range("C10:C14").Value = f2.Range("AS40:AS44").Value
    f1.Range("C17:C21").Value = f2.Range("AT40:AT44").Value
    f1.Range("C24:C28").Value = f2.Range("AU40:AU44").Value
    f1.Range("C31:C35").Value = f2.Range("AV40:AV44").Value

    f1.Range("B1").Value = f2.Range("AR46").Value
    f1.Range("B3:B7").Value = f2.Range("AR47:AR51").Value
    f1.Range("B10:B14").Value = f2.Range("AS47:AS51").Value
    f1.Range("B17:B21").Value = f2.Range("AT47:AT51").Value
    f1.Range("B24:B28").Value = f2.Range("AU47:AU51").Value
    f1.Range("B31:B35").Value = f2.Range("AV47:AV51").Value
    f1.Columns(2).Style = "Percent"

    Set f1 = Nothing 'on libère la mémoire
    Set f2 = Nothing
End Sub

Très important, Pour lancer la macro, il faut impérativement que la feuille active soit la feuille à traiter, exemple feuille "40"

CDlt

Bonjour

@Arturo83 : Désolé. je n'avais pas votre post
Je vous laisse la main sur le fil

Cordialement

Merci.

La macro Envoi fait le copier sur 2 onglets "Nb Faisibilité par poste en %" et "Suivi faisabilité en nombre"

Pour faire le copier sur les 2 ongles, je devrais faire cette macro?

Sub envoi()
    Dim f1 As Worksheet, f2 As Worksheet 'déclaration des variables
    Application.ScreenUpdating = False 'evite les rafraichissements de l'écran et accélère la vitesse d'exécution
    Set f1 = Sheets("Suivi faisabilité en nombre") ' noms des feuilles mis en variables
    Set f2 = Sheets(ActiveSheet.Name)
    f1.Range("B1:C35").Insert Shift:=xlToRight 'On se positionne sur la colonne B et on y insère 2 colonnes
    f1.Range("C1").Value = f2.Range("AR39").Value
    f1.Range("C3:C7").Value = f2.Range("AR40:AR44").Value
    f1.Range("C10:C14").Value = f2.Range("AS40:AS44").Value
    f1.Range("C17:C21").Value = f2.Range("AT40:AT44").Value
    f1.Range("C24:C28").Value = f2.Range("AU40:AU44").Value
    f1.Range("C31:C35").Value = f2.Range("AV40:AV44").Value

    f1.Range("B1").Value = f2.Range("AR46").Value
    f1.Range("B3:B7").Value = f2.Range("AR47:AR51").Value
    f1.Range("B10:B14").Value = f2.Range("AS47:AS51").Value
    f1.Range("B17:B21").Value = f2.Range("AT47:AT51").Value
    f1.Range("B24:B28").Value = f2.Range("AU47:AU51").Value
    f1.Range("B31:B35").Value = f2.Range("AV47:AV51").Value
    f1.Columns(2).Style = "Percent"

Set f1 = Sheets("Nb Faisibilité par poste en %") ' noms des feuilles mis en variables
    Set f2 = Sheets(ActiveSheet.Name)
    f1.Range("B1:C35").Insert Shift:=xlToRight 'On se positionne sur la colonne B et on y insère 2 colonnes
    f1.Range("C1").Value = f2.Range("AR39").Value
    f1.Range("C3:C7").Value = f2.Range("AR40:AR44").Value
    f1.Range("C10:C14").Value = f2.Range("AS40:AS44").Value
    f1.Range("C17:C21").Value = f2.Range("AT40:AT44").Value
    f1.Range("C24:C28").Value = f2.Range("AU40:AU44").Value
    f1.Range("C31:C35").Value = f2.Range("AV40:AV44").Value

    f1.Range("B1").Value = f2.Range("AR46").Value
    f1.Range("B3:B7").Value = f2.Range("AR47:AR51").Value
    f1.Range("B10:B14").Value = f2.Range("AS47:AS51").Value
    f1.Range("B17:B21").Value = f2.Range("AT47:AT51").Value
    f1.Range("B24:B28").Value = f2.Range("AU47:AU51").Value
    f1.Range("B31:B35").Value = f2.Range("AV47:AV51").Value
    f1.Columns(2).Style = "Percent"

    Set f1 = Nothing 'on libère la mémoire
    Set f2 = Nothing
End Sub
Rechercher des sujets similaires à "modification macro etre utilise importe quel onglet"