Copier coller d'une feuille à une autre avec mise en forme conservée

0

Bonjour à tous,

Je suis nouveau sur le site. Je travaille régulièrement avec Excel et je suis confronté à un problème. Même le grand ChatGPT n'a pas su m'aider. Et pourtant, mon problème semble très facile à résoudre.

J'ai 2 fichiers Excel distincts. Dans l'un j'ai des commentaires de A et dans l'autre j'ai des commentaires de B. En regard de certains topics, j'ai les commentaires qui sont affichés côte à côte. En résumé, j'ai une feuille dont A est le propriétaire et il ajoute des remarques. Mais à côté de ses remarques (dans une autre cellule), il y a également les commentaires de B (qui sont pompés directement dans le fichier de B via un simple "="). Jusque là, rien de problématique. Sauf que je n'arrive pas à afficher l'entièreté du message s'il est plus long. En cochant le "renvoi à la ligne automatique", alors le texte s'affiche complétement. Cependant, même en programmant la cellule de destination et d'origine sur 'renvoi à la ligne automatique', à l'ouverture du fichier, il ne montre qu'une partie du texte.
Alors je dois manuellement décocher 'renvoi à la ligne automatique' et cocher directement la même case et là, le texte entier apparaît.
J'ai déjà suivi cela de ChatGPT:

  1. Changer le format de la cellule :
  2. Réduire la taille de la police :
  3. Utiliser des zones de texte :
  4. Vérifier les limites d'Excel :
  5. Utiliser des cellules adjacentes :
  6. Utiliser un format XLTM

Est-ce que qu'une âme bienveillante à déjà été confronté à cela?


    Posté le 27 novembre, 13:55
    par JSM
    Répondre
    0

    Bonjour JSM,

    en supposant que les commentaires du fichier B sont par exemple dans la colonne D,
    alors après que tous les commentaires de B ont été mis via un simple "=", il suffit
    d'ajuster la largeur de la colonne D, manuellement ou via VBA ; noter qu'un copier /
    coller (avec mise en forme ou non) ne peut pas modifier la largeur de la colonne.

    * pour ajuster la colonne D manuellement : juste au-dessus de D1, il y a la lettre D ;
    placer le curseur de la souris sur le bord droit, jusqu'à voir une petite croix noire
    dont le trait horizontal est une double-flèche ; on peut alors double-cliquer pour
    ajuster automatiquement la largeur de la colonne D (ou cliquer et déplacer vers
    la gauche pour rétrécir la largeur de la colonne, vers la droite pour l'agrandir)
    .

    * via VBA :  Columns("D").AutoFit  OU  .Columns(4).AutoFit

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    pour un renvoi automatique à la ligne pour toutes les cellules de la colonne D :

    * via VBA :  Columns("D").WrapText = True  OU  Columns(4).WrapText = True

    * manuellement : sélectionner la colonne D ; faire un clic droit dessus ; dans le
    menu contextuel, choisir l'item "Format de cellule" ➯ fenêtre du même nom ;
    2ème onglet "Alignement" : ☑ Renvoyer à la ligne automatiquement

    rhodo

    rhodo Posté le 27 novembre, 16:02
    par rhodo
    0

    Bonsoir JSM et Rhodo,

    Voici une proposition pour résoudre ton souci :

    Une petite macro d'ajustement qui se trouve dans le Module 1 du classeur 2 qui est appelée automatiquement à l'ouverture dans Thisworkbook ou manuellement par le bouton se trouvant dans la feuil1 lorsque les 2 personnes travaillent en même temps.

    Macro : 

    Sub Ajustement()

    '************************************************************

    ' Procédure pour ajuster la colonne B

    '************************************************************

        Columns("B:B").Select

        With Selection

            .EntireRow.AutoFit

        End With

    End Sub


    Macro dans Thisworkbook

    Private Sub Workbook_Open()

    Ajustement

    End Sub

    https://www.cjoint.com/c/NKBtxNoZNNo

    https://www.cjoint.com/c/NKBtyxmwJJo

    Tu cliques sur les liens et tu suis les instructions pour récupérer les 2 fichiers.

    Bonne continuation

    Chris


    CHRIS Posté le 27 novembre, 20:27
    par CHRIS
    0

    Bonjour Chris,

    pour ta 1ère sub, pourquoi tu ne fais pas plus simplement :

    Sub Ajustement()
      Columns("B").AutoFit
    End Sub

    surtout que c'est mieux d'éviter le .Select de : Columns("B:B").Select ;
    ainsi, c'est plus direct ; d'autre part :

    * Columns("B") marche bien ; pourquoi mettre Columns("B:B") ?

    * je crois que tu as mis .EntireRow au lieu de .EntireColumn !  ;)

    * à partir du moment où un objet est une colonne, c'est inutile de mettre
    .EntireColumn vu que la colonne B indiquée est bien une colonne entière ;
    en fait, c'est utile pour par exemple : [B5].EntireColumn ; ainsi, à partir de
    la cellule B5, l'objet cellule est étendu à toute la colonne B ; bien sûr,
    l'instruction précédente est équivalente à : Range("B5").EntireColumn

    note : j'ai écrit ce post sans télécharger tes 2 fichiers.

    rhodo

    rhodo Posté le 28 novembre, 02:52
    par rhodo

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :