Excel 2013 Macro de copie d'une feuille vers d'autres feuilles
Résolu
Lodhoss2
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
Lodhoss2 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Lodhoss2 Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
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!!!
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:
- Excel 2013 Macro de copie d'une feuille vers d'autres feuilles
- Word 2013 - Télécharger - Traitement de texte
- Excel 2013 - Télécharger - Tableur
- Feuille de pointage excel - Télécharger - Tableur
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment faire un livret avec des feuilles a4 - Guide
3 réponses
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
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
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
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
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
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