Fichier Excel avec plusieurs onglet (rendre macro active sur l'onglet actif
Bonjour à tous,
Je suis débutant en VBA et j'ai un petit souci sur une macro.
J'ai un fichier Excel avec de nombreux onglets (40) et chaque semaine, je crée un nouvel onglet en reprenant les bases avec les macros des précédents onglets. J'ai réalisé une macro qui doit envoyer les données de l'onglet actif vers un autre fichier, mais le problème est que quand j'exécute la macro, les données qui sont envoyées sont celles de mon tout premier onglet et pas celui de mon onglet actif.
Comment définir d'envoyer les données que de mon onglet actif ?
J'espère avoir été clair, si vous avez des questions n'hésitez pas.
Merci d'avance pour vos réponses, en vous souhaitant de bonnes fêtes de fin d'année.
bonjour,
tu peux faire référence à l'onglet actif avec ActiveSheet
Bonjour,
Merci pour ta réponse. J'ai mit ça en début de code et sa marche toujours pas ça prend toujours les valeurs de mon premier onglet.
Dim ListeOPEngagement As String
Dim OS As Worksheet
Application.ScreenUpdating = False
FeuilActive = ActiveSheet.NameBonjour,
Je ne sais pas à quoi ressemble ton code, mais je suis quasi sûr qu'il ne suffit pas de mettre l'instruction FeuilActive=ActiveSheet.Name pour que cela fonctionne.
Voici le code
Sub exportHeRéalisé()
Dim ListeOPEngagement As String
Dim OS As Worksheet
Application.ScreenUpdating = False
FeuilActive = ActiveSheet.Name
nom_fichier_lancement = ActiveWorkbook.Name
CheminFichierPlanning = "\" ' emplcament fichier de destination
nomfichierplanning = ".xlsm" ' nom fichier destination
Set ash = ActiveSheet
Set PlanningMetier = ActiveWorkbook
num_ligne_metier1 = 2 ' ligne 2 synth planning
num_ligne_metier2 = 3 ' ligne 3 synth planning
num_ligne_metier3 = 4 ' ligne 4 synth planning
num_ligne_metier4 = 5 ' ligne 5 synth planning
num_ligne_metier5 = 6 ' ligne 6 synth planning
num_ligne_metier6 = 7 ' ligne 7 synth planning
num_ligne_metier7 = 8 ' ligne 8 synth planning
num_ligne_metier8 = 9 ' ligne 9 synth planning
num_ligne_metier9 = 10 ' ligne 10 synth planning
num_ligne_metier10 = 11 ' ligne 11 synth planning
ListeOPEngagement = ""
On Error Resume Next
Windows(nomfichierplanning).Activate
If Err <> 0 Then
Set FichierPlanning = Workbooks.Open(CheminFichierPlanning & nomfichierplanning)
Else
Set FichierPlanning = ActiveWorkbook
End If
On Error GoTo 0
ladate = PlanningMetier.Sheets(1).Cells(2, 11).Value ' la date fichier HR/HE
onglet = "s" & DatePart("ww", ladate, 2, 2) ' le nom de l'onglet synth planning
If Len(onglet) = 2 Then onglet = "s0" & DatePart("ww", ladate, 2, 2)
Heréa1 = PlanningMetier.Sheets(1).Cells(8, 2).Value ' engagement atelier HR/HE (HE)
Heréa2 = PlanningMetier.Sheets(1).Cells(5, 2).Value ' engagement atelier HR/HE (HE)
Heréa3 = PlanningMetier.Sheets(1).Cells(3, 2).Value ' engagement atelier HR/HE( HE)
Heréa4 = PlanningMetier.Sheets(1).Cells(4, 2).Value ' engagement atelier HR/HE (HE)
Heréa5 = PlanningMetier.Sheets(1).Cells(6, 2).Value ' engagement atelier HR/HE (HE)
Heréa6 = PlanningMetier.Sheets(1).Cells(7, 2).Value ' engagement atelier HR/HE (HE)
Heréa7 = PlanningMetier.Sheets(1).Cells(9, 2).Value ' engagement atelier HR/HE (HE)
Heréa8 = PlanningMetier.Sheets(1).Cells(10, 2).Value ' engagement atelier HR/HE (HE)
Heréa9 = PlanningMetier.Sheets(1).Cells(11, 2).Value ' engagement atelier HR/HE (HE)
Heréa10 = PlanningMetier.Sheets(1).Cells(12, 2).Value ' engagement atelier HR/HE (HE)
Heréa11 = PlanningMetier.Sheets(1).Cells(2, 2).Value ' engagement atelier HR/HE (HE)
On Error GoTo PbOnglet
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier1, 8).Value = Heréa1 ' l'engagement atelier se place colonne 2 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier2, 8).Value = Heréa2 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier3, 8).Value = Heréa3 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier4, 8).Value = Heréa4 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier5, 8).Value = Heréa5 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier6, 8).Value = Heréa6 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier7, 8).Value = Heréa7 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier8, 8).Value = Heréa8 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier9, 8).Value = Heréa9 + Heréa10 ' l'engagement atelier se place colonne 3 sur synth planning
FichierPlanning.Sheets(onglet).Cells(num_ligne_metier10, 8).Value = Heréa11 ' l'engagement atelier se place colonne 3 sur synth planning
With FichierPlanning.Sheets(onglet).Cells(num_ligne_metier2, 8).Comment.Shape
.OLEFormat.Object.Font.Size = 9 'Taille du texte
.TextFrame.AutoSize = True
End With
Windows(nom_fichier_lancement).Activate
Application.ScreenUpdating = True
On Error GoTo 0
Exit Sub
PbOnglet:
MsgBox "L'onglet " & onglet & " n'existe pas dans le fichier 'synthèse planning.xlsm'"
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Exit Sub
End Sub