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 2024, 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 2024, 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 2024, 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 2024, 02:52
    par rhodo
    0

    Bonjour Rhodo,

    Je n'ai pas pu te répondre plus tôt car j'étais en voyage.

    Alors pour ta première remarque :

    Columns("B").AutoFit  : si tu fais cela, tu déclenche une MAJ de la largeur de la colonne ce qui, je pense n'était pas demandé.  Il fallait respecter la largeur initiale et MAJ en hauteur.

    Deuxième  remarque :

    C'est exacte que B suffisait mais cela me semblait plus clair pour la compréhension de bien montrer que l'on considérait la colonne B en son entièreté.

    Troisième remarque :

    EntireRow au lieu de .EntireColumn

    Pour la même raison que la première remarque : si tu considère la colonne, tu ajustes en largeur alors que si tu ajustes la ligne tu ajustes en hauteur.

    C'est bien que tu décortiques ma proposition : cela montre que au moins quelqu'un la lue car le demandeur semble avoir oublié sa demande...

    A bientôt

    Chris

    CHRIS Posté le 4 décembre 2024, 11:54
    par CHRIS
    0

    Bonjour Chris,

    merci pour ta réponse et tes explications.  :)  donc au temps pour moi,
    c'est moi qui n'avait pas bien compris la demande de JSM.  :(

    j'espère que ton voyage s'est bien passé, et que tu as pu avoir de
    bonnes vacances.  :)  puis dans 21 jours ça sera Noël !  ;)

    rhodo

    rhodo Posté le 4 décembre 2024, 12:35
    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 :