Excel 2013 Macro de copie d'une feuille vers d'autres feuilles

Résolu/Fermé
Lodhoss2 Messages postés 28 Date d'inscription mercredi 21 septembre 2011 Statut Membre Dernière intervention 9 octobre 2014 - Modifié par Chris 94 le 27/08/2014 à 11:23
Lodhoss2 Messages postés 28 Date d'inscription mercredi 21 septembre 2011 Statut Membre Dernière intervention 9 octobre 2014 - 27 août 2014 à 14:16
Bonjour à tous,

Tout d'abord je tiens à préciser que j'y connais rien en dev/VB ... et quand je veux faire des macros, j'utilise le bouton "Enregistrer" et "stop" ^^.

J'ai créé une feuille avec quelques formules + mise en forme (feuille 1) et je voudrais, pour chaque nouvelle feuille créée pourvoir copier une partie des lignes de la première feuille vers la nouvelle feuille mais quand j'exécute la macro sur une nouvelle feuille (feuille 3,4,5,...) après avoir enregistrer ma macro à l'aide du bouton "enregistrer macro" (sur la feuille 2) , le problème est que la destination sera toujours la feuille 2 que je me serais servie pour faire l'enregistrement et ma feuille 3 sera toujours vierge (ce qui ne me parait pas plutôt normale).

Y aurait il une astuce pour que la destination soit la feuille que j'ai sélectionnée et pas celle qui ma servie à la création de ma macro?

Merci d'avance!!!
A voir également:

3 réponses

via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 736
27 août 2014 à 12:50
Bonjour

Où se trouve ta macro ?
Si elle est dans le Worksheet d'une feuille elle ne s'applique qu'à cette feuille
Par contre si elle dans un Module elle peut être appelée de n'importe quelle feuille et appliquée à cette feuille avec Activesheet au lieu du nom de la feuille

Ce serait plus simple si tu copiais ici l'intégralité de la macro que tu as enregistré

Cdlmnt
0
Lodhoss2 Messages postés 28 Date d'inscription mercredi 21 septembre 2011 Statut Membre Dernière intervention 9 octobre 2014 1
27 août 2014 à 12:57
Merci pour votre réponse rapide!

Alors je ne sais pas où ce trouve ma macro, ni comment le voir...
Voici les 2 macros concernées:

Sub CopieCases()
'
' CopieCases Macro
'

'
Range("A1").Select
Sheets("Octobre 2014").Select
Rows("4:10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Novembre 2014").Select
Rows("4:10").Select
ActiveSheet.Paste
Rows("12:18").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=9
Rows("20:26").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=9
Rows("28:34").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=12
Rows("36:42").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=3
Rows("44:50").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-48
Columns("B:B").EntireColumn.AutoFit
Columns("L:L").EntireColumn.AutoFit
End Sub

Sub MiseEnPage()
'
' MiseEnPage Macro
'

'
Sheets("Octobre 2014").Select
Range("B3:I10").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Novembre 2014").Select
Range("B3:I10").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("B11:I18").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=9
Range("B19:I26").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=9
Range("B27:I34").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=9
Range("B35:I42").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveWindow.SmallScroll Down:=6
Range("B43:I50").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub
0
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 2 736
27 août 2014 à 13:57
Pour rendre les macros applicables à n'importe quelle feuille :
1) ALT F11 pour ouvri editeur VBA
2) Onglet Insertion Module
3)Copier et coller les macros dans la page blanche du module en modifiant les noms s'il existent déjà ailleurs, mettre par exemple Sub CopieCases2()
4) En début de chaque macro (juste après le Sub) ajouter la ligne suivante :
nom=activesheet.name
5) Remplacer dans chaque macro Sheets("Novembre 2014").Select par sheets(nom).select

Il ne reste plus appeler la macro depuis la feuille de destination

Cdlmnt
0
Lodhoss2 Messages postés 28 Date d'inscription mercredi 21 septembre 2011 Statut Membre Dernière intervention 9 octobre 2014 1
27 août 2014 à 14:16
Merci Beaucoup!

Ça fonctionne nickel!

Je vais me garder ça dans un coin pour les prochaines fois!

Merci encore!
Cdlmmt
0