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 SubSub 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 SubBonjour,
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 SubTrè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