extraire le texte d'un commentaire vers une feuille excel différente

lusson

XLDnaute Nouveau
Bonjour,

je suis nouvelle sur ce forum et j'ai besoin de l'aide de quelqu'un qui à plus de compétence que moi sur Excel.
je souhaite copier le texte d'un commentaire vers une cellule dans une autre feuille du classeur voir un autre classeur excel. De plus je souhaite que la copie du commentaire soit dans la même cellule que celle qui a le commentaire ( ex : feuille 1, A2 a un commentaire et feuille 2, A2 la copie texte du commentaire.)

je pense qu'il faut ecrire une macro , ce qui est la limite de mes compétences.

Pouvez vous me venir en aide?

Merci à tous.
 

Citronflexe

XLDnaute Junior
Bonjour,

Essaye quelque chose comme ça :

Code:
Sub Macro1()

Dim colonne, ligne As Integer

For ligne = 1 To 100 'sur 100 lignes
    For colonne = 1 To 100 'sur 100 colonnes
        If Sheets("Feuil1").Cells(ligne, colonne).Comment Is Nothing Then 'Feuil1 et Feuil2 à adapter selon tes noms de feuilles
            Sheets("Feuil2").Cells(ligne, colonne).Value = ""
            Else: Sheets("Feuil2").Cells(ligne, colonne).Value = Sheets("Feuil1").Cells(ligne, colonne).Comment.Text
        End If
    Next
Next

End Sub

Ca balaie une zone de 100 lignes sur 100 colonnes (à adapter selon tes besoins, c'était pas précisé) en recopiant dans les cellules de la Feuil2 les commentaires de la Feuil1.

Je ne suis pas du tout un expert en VBA donc essaie peut-être d'attendre les réponses d'autres membres...

Je te joins le fichier qui va avec pour que tu essaies de voir ça te convient avant de l'adapter à ton application !

Bruno
 

Pièces jointes

  • test_lusson.xlsm
    16.6 KB · Affichages: 18

lusson

XLDnaute Nouveau
Lone-Wolf, je ne peux pas joindre les classeurs ils sont confidentiels.
Mais je viens d'essayer la solution de Bruno est elle fonctionne. juste un souci de mise en page au final mais rien de grave. Puis je adapter cette macro en remplaçant les noms des feuilles par ceux des classeurs?

Merci beaucoup
 

job75

XLDnaute Barbatruc
Bonjour lusson, Citronflexe, Lone-wolf,

La macro de Citronflexe est très lente chez moi, avec un tableau VBA c'est beaucoup plus rapide :
Code:
Sub CopieCommentaire()
Dim a$(), ub%, i&, j%
With Sheets("Feuil1").[A1].Resize(100, 100) 'plage à adapter
    ReDim a(1 To .Rows.Count, 1 To .Columns.Count)
    ub = UBound(a, 2)
    For i = 1 To UBound(a)
        For j = 1 To ub
            If Not .Cells(i, j).Comment Is Nothing Then a(i, j) = .Cells(i, j).Comment.Text
    Next j, i
    Sheets("Feuil2").Range(.Address) = a
End With
End Sub
A+
 

lusson

XLDnaute Nouveau
Lone-Wolf de feuille à feuille ou de classeur à classeur, il n'y a pas beaucoup d'importance dans ma recherche. Mon souhait est surtout de faire quelque chose de simple et d'assez rapide. J'ai une plage de cellules de 400 colonnes par 200 lignes.
 

Lone-wolf

XLDnaute Barbatruc
Re

lusson à dit: copier le texte d'un commentaire vers une cellule dans une autre feuille du classeur voir un autre classeur excel - feuille 1, A2 a un commentaire et feuille 2, A2 la copie texte du commentaire


@lusson. Pour toi non, mais pour la personne qui fait la macro oui. Au lieu de dire dès le départ : j'ai une plage de cellules de 400 colonnes par 200 lignes.

Il y a une différence entre celle de job75 et celle-ci par exemple.

chemin = ?????
Set Wbsource = Workbooks.Open(chemin) - encore faut-il connaître le chemin et le nom du classeur source.

With Wbsource.Sheets(?????)
Le reste du code job75
End With
ActiveWorkbook.Close True

Maintenant, tu vois la différence?
 
Dernière édition:

lusson

XLDnaute Nouveau
Oui je comprends la différence, au vu de ce que tu dis le plus simple c'est dans un même classeur (de feuille à feuille).
La feuille 1 se nomme "CP Schedule 2018" et la feuille 2 "Planning"
Le contenu du classeur est confidentiel je suis désolé.
Merci beaucoup en tout cas.
 

Discussions similaires