Chrystel01
XLDnaute Occasionnel
Bonjour,
Je souhaitais simplifier une macro mais je tourne en rond. Sauriez-vous m'aider svp ?
A partir d'un menu, en cliquant sur un bouton, un programme se lance qui permet d'accéder à un rapport (un onglet) et de lancer diverses opérations pour alimenter ce rapport.
Mais j'ai une 30 aines de rapports à réaliser, donc potentiellement 30 programmes à répéter.
Sachant que ces rapports sont tous alimentés de la même façon et afin d'éviter de répéter 3O fois le programme d'alimentation, je pensais utiliser la fonction call
Un 1er code définirait le nom de l'onglet sur lequel travailler
Sub onglet()
Dim TabRecap As Worksheet
Set TabRecap = ActiveWorkbook.Sheets("TAB_RECAP_75001")
Call copy_tcd
End Sub
Un 2ème code lancerait le programme d'alimentation de données sur l'onglet défini ds sub onglet()
Sub copy_tcd()
TabRecap.Range("A6:Av1000").Clear
TabRecap.Range("BD6:BD3000").copy TabRecap.Range("A6")
....
Cela ne fonctionne pas car il me dit que je n'ai pas défini mes variables dans le code sub copy....
Avez vous des suggestions SVP pour travailler sur ce type de programme où seul le nom de l'onglet change en fonction du bouton choisi ?
Merci d'avance pour votre aide !
Chrystel
Je souhaitais simplifier une macro mais je tourne en rond. Sauriez-vous m'aider svp ?
A partir d'un menu, en cliquant sur un bouton, un programme se lance qui permet d'accéder à un rapport (un onglet) et de lancer diverses opérations pour alimenter ce rapport.
Mais j'ai une 30 aines de rapports à réaliser, donc potentiellement 30 programmes à répéter.
Sachant que ces rapports sont tous alimentés de la même façon et afin d'éviter de répéter 3O fois le programme d'alimentation, je pensais utiliser la fonction call
Un 1er code définirait le nom de l'onglet sur lequel travailler
Sub onglet()
Dim TabRecap As Worksheet
Set TabRecap = ActiveWorkbook.Sheets("TAB_RECAP_75001")
Call copy_tcd
End Sub
Un 2ème code lancerait le programme d'alimentation de données sur l'onglet défini ds sub onglet()
Sub copy_tcd()
TabRecap.Range("A6:Av1000").Clear
TabRecap.Range("BD6:BD3000").copy TabRecap.Range("A6")
....
Cela ne fonctionne pas car il me dit que je n'ai pas défini mes variables dans le code sub copy....
Avez vous des suggestions SVP pour travailler sur ce type de programme où seul le nom de l'onglet change en fonction du bouton choisi ?
Merci d'avance pour votre aide !
Chrystel