Problème macro d'insertion de commentaire

Bonjour à tous,

J'ai configuré une macro qui permet de prendre des valeurs d'un fichier (fichier source) pour les copier sous forme de commentaire dans un fichier (fichier destination).

J'arrive à copier des valeurs mais j'ai un blocage car quand j'utilise ma macro, un commentaire vient s'ajouter sur la bonne cellule mais le commentaire est vide...

Je ne comprends pas d'ou peut venir le problème...

Je vous transmet mon code VBA que vous pouvez trouver en bas, j'ai essayé de le commenter le plus possible afin de faciliter la compréhension du code.

Sub exportversFichierDestinationAudi()

    Dim ListeOPEngagement As String
    Application.ScreenUpdating = False

    nom_fichier_source = ActiveWorkbook.Name ' Nom fichier source
    CheminFichierDestination = "\" ' chemin fichier destination
    nomFichierDestination = "Fichier destination.xlsm" ' nom fichier destination
    Set ash = ActiveSheet
    Set FichierSource = ActiveWorkbook ' Fichier source fenetre active
    num_ligne_metier = 2 ' audi est ligne 2 sur fichier destination
    ListeOPEngagement = "" ' contenu du commentaire

    On Error Resume Next
      Windows(nomFichierDestination).Activate ' fichier destination actif
      If Err <> 0 Then
         Set FichierDestination = Workbooks.Open(CheminFichierDestination & nomFichierDestination) ' ouvrir le fichier de destination via le chemin et le nom
      Else
         Set FichierDestination = ActiveWorkbook ' fichier destination fenetre active
      End If
    On Error GoTo 0
    ladate = FichierSource.Sheets(1).Cells(2, 10).Value  ' la date fichier source
    onglet = "s" & DatePart("ww", ladate, 2, 2) ' le nom de l'onglet fichier destination
    If Len(onglet) = 2 Then onglet = "s0" & DatePart("ww", ladate, 2, 2) ' fichier destination onglet
    hr = FichierSource.Sheets(1).Cells(3, 14).Value ' Hr fichier source
    On Error GoTo PbOnglet
       FichierDestination.Sheets(onglet).Cells(num_ligne_metier, 2).Value = hr ' les HR réalisés viennent se placer en colonne B du fichier destination
    On Error GoTo 0
    For J = 1 To nbonglet
       Set ash = FichierSource.Sheets(J)
       nbligne = ash.Range("A" & Rows.Count).End(xlUp).Row
       For I = 1 To nbligne - 7
                ListeOPEngagement = ash.Cells(7 + I, 1) & " , OP " & ash.Cells(7 + I, 2) & " , descrip= " & ash.Cells(7 + I, 3) & " ,Hr= " & ash.Cells(7 + I, 5)  ' vient prendre dans le commentaire les valeurs colonne A, B, C et E dans le fichier source
      Next
    Next

    FichierDestination.Sheets(onglet).Cells(num_ligne_metier, 2).ClearComments ' effacer commentaire fichier destination
    FichierDestination.Sheets(onglet).Cells(num_ligne_metier, 2).AddComment ' ajouter commentaire fichier destination
    FichierDestination.Sheets(onglet).Cells(num_ligne_metier, 2).Comment.Text Text:=ListeOPEngagement ' Commenter la listeOPEngagement dans le commentaire fichier destination

    With FichierDestination.Sheets(onglet).Cells(num_ligne_metier, 2).Comment.Shape ' commenter fichier destination
        .OLEFormat.Object.Font.Size = 9 'Taille du texte
        .TextFrame.AutoSize = True
    End With
    Windows(nom_fichier_source).Activate
    Application.ScreenUpdating = True

    On Error GoTo 0
    Exit Sub

PbOnglet:
    MsgBox "L'onglet " & onglet & " n'existe pas dans le fichier 'fichier destination.xlsm'"
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    Exit Sub

End Sub

Je vous transmet également mes 2 fichiers : - fichier source ou on retrouve la macro,

- fichier destination ou est censé se mettre le commentaire.

11fichier-source.xlsm (61.08 Ko)

Si vous avez des questions n'hésitez surtout pas.

Merci d'avance pour votre aide.

Bonjour

Une proposition avec le code assez profondément modifié

Bonjour,

Tout d'abord merci pour ta réponse et ton travail !

Néanmoins j'ai essayé de faire tourner la macro et j'ai une erreur sur une ligne (voir ci-dessous)

image image

Je comprends pas pourquoi se problème intervient alors que c'est bien le bon nom d'onglet...

Bonjour

C'est normal que ça plante. Sheets("Audi") n'existe pas dans le classeur destination qui est activé à ce moment là.

Remplace : Set shSource = Sheets("Audi") par : Set shSource = wbSource.Sheets("Audi") et ça marchera puisque là on lui indique le bon classeur.

Rechercher des sujets similaires à "probleme macro insertion commentaire"