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.Name

Bonjour,

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
Rechercher des sujets similaires à "fichier onglet rendre macro active actif"