Simplifié un code pour pouvoir utiliser la macro sur différentes pages

vkaeros

XLDnaute Nouveau
Bonjour je souhaite simplifier ce code afin de pouvoir réutiliser une macro sur différentes pages de mon classeur sans avoir à creer la même macro pour chaque page. j'ai besoin de réutiliser cette meme macro sur différentes zones de stockage. Merci à l'avance

code actuel :

Range("A4").Select
Selection.Copy
Sheets("GESTION STOCK").Select
Range("A5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("C4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("E7, K5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Armoires de stockage-A").Select
Range("D4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("B5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("E4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("D5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("F4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("C5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("G4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("C7").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("H4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("E5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("I4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("F5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("J4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("G5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("K4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("H5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("L4").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("I5").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Range("O1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("GESTION STOCK").Select
Range("A7:B7").Select
ActiveSheet.Paste
Sheets("Armoires de stockage-A").Select
Rows("4:4").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Sheets("GESTION STOCK").Select
Range("A5").Select
 

jp14

XLDnaute Barbatruc
Re : Simplifié un code pour pouvoir utiliser la macro sur différentes pages

Bonjour

Mettre le code suivant au début de la procédure

With Sheets(ActiveSheet.Name)

ensuite modifier les codes comme ci dessous
remplacer
Sheets("GESTION STOCK").Select
Range("A5").Select
par
en rajoutant un point devant range
.Range("A5").Select

En fin du code mettre

End With

JP
 

Excel-lent

XLDnaute Barbatruc
Re : Simplifié un code pour pouvoir utiliser la macro sur différentes pages

Bonjour et bienvenu sur le forum Vkaeros,

Etant donné que tu es nouveau, tu n'as peut être pas encore l'habitude et/ou pas lu Lien supprimé?

Si tu avais envoyé ton fichier (du moins les deux onglets dont ta macro parle), sans avoir oublié au préalable de remplacer les données confidentiels par des données bidons, je suis persuadé que tu aurais obtenu une réponse plus rapidement.

Autre inconvénient de ne pas mettre de fichier, on ne peut pas tester notre solution, donc difficile d'être sûr à 100% de la justesse de notre réponse et de son bien fondé (risque de hors sujet).

Essaye cette macro et donne nous tes impressions :
VB:
Sub MacroSlimFast()

Sheets("Armoires de stockage-A").Select

With Sheets("GESTION STOCK")
    .[A5] = [A4]
    .[E7] = [C4]
    .[K5] = [C4]
    .[B5] = [D4]
    .[D5] = [E4]
    .[C5] = [F4]
    .[C7] = [G4]
    .[E5] = [H4]
    .[F5] = [I4]
    .[G5] = [J4]
    .[H5] = [K4]
    .[I5] = [L4]
    .[A7] = [O1]
    .[B7] = [O1]
    Rows(4).Delete
    .[A5].Select
End With

End Sub

Bon test et bonne soirée
Cordialement

Edition : salut JP14, j'avais pas vu ta réponse! Je vois que malgré cela nous sommes sur la même longueur d'onde lol
 
Dernière édition:

vkaeros

XLDnaute Nouveau
Re : Simplifié un code pour pouvoir utiliser la macro sur différentes pages

J'ai une erreur avec la methode d' Excel-lent mais cette macro m'interesse si elle est fonctionnelle

Message d'erreur :

erreur d'execution '1004'
la methode select de la classe range a échoué

Je precise je suis débutant en vba désolé
 

Excel-lent

XLDnaute Barbatruc
Re : Simplifié un code pour pouvoir utiliser la macro sur différentes pages

Salut Vkaeros, le fil,

Peut-être que je me suis trompé dans l'orthographe du nom des onglets?

Sinon peux-tu nous envoyer ton fichier? Que je puisse regarder plus précisement?

Bonne soirée
 

vkaeros

XLDnaute Nouveau
Re : Simplifié un code pour pouvoir utiliser la macro sur différentes pages

les noms des onglets est correct par contre je souhaiterai remplacer Sheets("Armoires de stockage-A").Select

par la feuille active "activesheet" je pense

commebt puis-je envoyer le fichier ? il fait 1.47mo
 

vkaeros

XLDnaute Nouveau
Re : Simplifié un code pour pouvoir utiliser la macro sur différentes pages

C ok pour .[A5].Select il me manque juste à trouver comment changer

Sheets("Armoires de stockage-A").Select
pour que la macro s'applique sur la feuille active

si vous avez la réponse je suis preneur

Merci beaucoup
 

Excel-lent

XLDnaute Barbatruc
Re : Simplifié un code pour pouvoir utiliser la macro sur différentes pages

Salut Vkaeros, le fil,

Pas pu revenir plus tôt. Je m'explique pas du tout pourquoi la ligne :

ne fonctionne pas!

J'ai même essayé la version longue :
Sheets("GESTION STOCK").Range("A5").Select

Mais elle n'ont plus ne fonctionne pas! Je me l'explique pas.

En tout, c'est bien que tu es réussi à trouver une solution de rechange.

Bonne fin de soirée

PS. : pour la prochaine fois, concernant le fichier a envoyer, pas la peine d'envoyer le fichier dans son intégralité! Il faut juste envoyé la partie qui te pose problème avec un exemple du résultat attendu (donc la limite fixé par le forum suffit très largement).
 

Discussions similaires

Statistiques des forums

Discussions
312 427
Messages
2 088 307
Membres
103 813
dernier inscrit
mehdifr