XL 2010 Copier les commentaires en masse vers un autre emplacement

jokerfidelio

XLDnaute Occasionnel
Bonjour a tous et d'abord merci pour votre travail a tous

Dans l'exemple du fichier donné ici, est il possible via VBA (via bouton de formulaire) de copier les commentaires de plusieurs cellules exemple ici
"A1:A21"
et de les copier les uns en dessous des autres comme dans l'exemple en "J23" pour une lecture rapide et clair ?

Merci a vous de m'aidé
 

Pièces jointes

  • COPIER COMMENTAIRES.xlsx
    12.2 KB · Affichages: 30

Jacky67

XLDnaute Barbatruc
Bonjour a tous et d'abord merci pour votre travail a tous

Dans l'exemple du fichier donné ici, est il possible via VBA (via bouton de formulaire) de copier les commentaires de plusieurs cellules exemple ici
"A1:A21"
et de les copier les uns en dessous des autres comme dans l'exemple en "J23" pour une lecture rapide et clair ?

Merci a vous de m'aidé
Bonjour,
Quelque chose comme en PJ ??
 

Pièces jointes

  • COPIER COMMENTAIRES.xlsm
    24.3 KB · Affichages: 31

jokerfidelio

XLDnaute Occasionnel
autre question, je suppose que de multiplier ce code par autant de bouton ce n'est pas possible ?
quelle est la marche a suivre dans ce cas ?

car j'avais dans l'idee de créer un bouton par jour du lundi au samedi

Option Explicit
'commentaire lundi
Sub commentaire()
Dim c As Range, Lig&, Plage
Range("J23:j" & Rows.Count).ClearContents
Lig = 23
Set Plage = Range("a1:a21") 'a définir
For Each c In Plage
On Error Resume Next
Cells(Lig, "j") = c.Comment.Text
If Err = 0 Then Lig = Lig + 1
Next
End Sub
'commentaire mardi
Sub commentaire()
Dim c As Range, Lig&, Plage
Range("J23:j" & Rows.Count).ClearContents
Lig = 18
Set Plage = Range("b1:b21") 'a définir
For Each c In Plage
On Error Resume Next
Cells(Lig, "j") = c.Comment.Text
If Err = 0 Then Lig = Lig + 1
Next
End Sub
'commentaire mercredi
Sub commentaire()
Dim c As Range, Lig&, Plage
Range("J23:j" & Rows.Count).ClearContents
Lig = 18
Set Plage = Range("c1:c21") 'a définir
For Each c In Plage
On Error Resume Next
Cells(Lig, "j") = c.Comment.Text
If Err = 0 Then Lig = Lig + 1
Next
End Sub
 

Jacky67

XLDnaute Barbatruc
J ai donc crée plusieurs module avec le code et cela fonctionne !
mais toujours pas pu corriger la hauteur de ligne qui ce modifie quand la copie est faite !
Une proposition avec une liste de validation.
J'ai supposé que les jours étaient en cellule colonne A
Contrainte: pas de vide en colonne A
 

Pièces jointes

  • COPIER COMMENTAIRES_V2.xlsm
    46.3 KB · Affichages: 27

jokerfidelio

XLDnaute Occasionnel
Une proposition avec une liste de validation.
J'ai supposé que les jours étaient en cellule colonne A
Contrainte: pas de vide en colonne A
excusez moi mais on a dus mal se comprendre le premier code fonctionne nickel et correspond a mes besoins, j'ai juste eu du mal a comprendre qu'il fallait plusieurs module avec autant de fois le code que de module avec bien sur une selection de cellules differente !

mais mon dernier souci c'est la deformation de la hauteur des ligne une fois les commentaires copier !
 

Jacky67

XLDnaute Barbatruc
excusez moi mais on a dus mal se comprendre
mais mon dernier souci c'est la deformation de la hauteur des ligne une fois les commentaires copier !
Je crois que oui !

Pour formater la cellule
Ajoute après cette instruction
.Cells(Lig, "j") = c.Comment.Text
Celle ci-dessous
.Cells(Lig, "j").WrapText = False
 

Pièces jointes

  • COPIER COMMENTAIRES_V3.xlsm
    27.8 KB · Affichages: 26
Dernière édition:

jokerfidelio

XLDnaute Occasionnel
bonjour jacky67

j'ai voulu tester le code sur un de mes fichier et je me trouve confronté a un probleme
premierement merci le code fonctionne nickel sur l'exemple.

par contre quand je veux me servir du code sur un autre fichier, si je ne sélectionne pas, par exemple une image qui se trouve sur la feuille avant l'action du code, la macro se déroule jusqu’à la fin, mais dans la meme cellule, les commentaires s'ecrire les uns derriere les autres mais efface le precedent et ainsi de suite !
jusqu'au dernier etpour ne laissé que celui ci

j'ai pensé au debut que la fusion de certaine cellule posé problème, mais cela ne vient pas de ce coté si !
 

jokerfidelio

XLDnaute Occasionnel
Je crois que oui !

Pour formater la cellule
Ajoute après cette instruction
.Cells(Lig, "j") = c.Comment.Text
Celle ci-dessous
.Cells(Lig, "j").WrapText = False
bonjour jacky67

j'ai voulu tester le code sur un de mes fichier et je me trouve confronté a un probleme
premierement merci le code fonctionne nickel sur l'exemple.

par contre quand je veux me servir du code sur un autre fichier, si je ne sélectionne pas, par exemple une image qui se trouve sur la feuille avant l'action du code, la macro se déroule jusqu’à la fin, mais dans la meme cellule, les commentaires s'ecrire les uns derriere les autres mais efface le precedent et ainsi de suite ! jusqu'au dernier et pour ne laissé qu'un seul commentaire le dernier de la plage selectionné

j'ai pensé au debut que la fusion de certaine cellule posé problème, mais cela ne vient pas de ce coté si !
 

Pièces jointes

  • PROJET ATTRIB V2-2017.xlsm
    331.5 KB · Affichages: 27

Jacky67

XLDnaute Barbatruc
bonjour jacky67

j'ai voulu tester le code sur un de mes fichier et je me trouve confronté a un probleme
premierement merci le code fonctionne nickel sur l'exemple.

par contre quand je veux me servir du code sur un autre fichier, si je ne sélectionne pas, par exemple une image qui se trouve sur la feuille avant l'action du code, la macro se déroule jusqu’à la fin, mais dans la meme cellule, les commentaires s'ecrire les uns derriere les autres mais efface le precedent et ainsi de suite ! jusqu'au dernier et pour ne laissé qu'un seul commentaire le dernier de la plage selectionné

j'ai pensé au debut que la fusion de certaine cellule posé problème, mais cela ne vient pas de ce coté si !
Re...
Si ce n'est pas par clic d'un des 2 boutons, par quelle action sur la feuille la macro doit elle s'exécuter ?
**J'avoue ne pas vraiment comprendre le fonctionnement..
La colonne D est toujours un Lundi ??
La colonne E est toujours un Mardi ??
Etc...
***Ajoute au code l'instruction "on error goto 0"
et testes sur le pc ou cela ne fonctionnait pas
Code:
'commentaire lundi
Sub commentaire()
Dim c As Range, Lig&, Plage
Range("J31:j" & Rows.Count).ClearContents
Lig = 31
Set Plage = Range("D16:D115") 'a définir
For Each c In Plage
On Error Resume Next
Cells(Lig, "J") = c.Comment.Text
Cells(Lig, "J").WrapText = False
If Err = 0 Then Lig = Lig + 1
On Error GoTo 0
Next
End Sub
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
est ce que cela peu provenir de la version excel ? car sur 2010 (chez moi) cela fonctionne correctement !
j'y comprend rien ...
RE
Ceci fonctionne sans problème avec xl 2007
Sans dupliquer la macro x fois

**Autre version en V4
 

Pièces jointes

  • PROJET ATTRIB V2-2017_ V1.xlsm
    348.9 KB · Affichages: 35
  • PROJET ATTRIB V2-2017_ V4 .xlsm
    349.8 KB · Affichages: 32
Dernière édition:

Discussions similaires

Réponses
18
Affichages
670

Statistiques des forums

Discussions
312 370
Messages
2 087 688
Membres
103 639
dernier inscrit
NIEMASAFI