È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

Adattare testo in celle unite!!

  • Messaggi
  • OFFLINE
    fabrizio.ExcelForum
    Post: 74
    Registrato il: 04/03/2017
    Città: MILANO
    Età: 44
    Utente Junior
    2010
    00 28/04/2021 22:09
    Salve a tutti, Avrei bisogno di un aiuto dagli esperti e come al solito mi rivolgo a voi che gentilmente mi avete sempre aiutato!! e vi ringrazio ...
    La questione è questa: in allegato trovate il file, aprendolo troverete un foglio di lavoro di nome "SAL" e sia in "c1" che in "c13" potete osservare in primis che le 3 celle sono unite e dentro le celle unite vi è un riferimento ad un'altro foglio di lavoro "sheet1" .
    Quindi il problema è che facendo il doppio click sia in "c1" che in "c13" con celle unite ,le celle in questione non si allargano in altezza per mostrare tutto il testo , che ovviamente dovra' superare la capienza della singola cella, altrimenti non avrei unito 3 celle.
    Quindi che voi sappiate come posso fare per allargare in altezza "solo" le celle unite presenti nella colonna "c"? attraverso una macro, considerando che io dovrò aggiungere altre voci con celle unite nel foglio "sal".?
    Grazie mille!!
  • OFFLINE
    by sal
    Post: 6.342
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 29/04/2021 08:10
    Ciao Fabrizio, premesso che odio le celle unite creano solo complicazioni al foglio Excel sono inutili e nella maggior parte dei casi se ne può fare benissimo a meno.

    vedi che ti ho messo un limite di 45 caratteri minimo per la larghezza della colonna che hai impostato se usi una larghezza maggiore devi correggere il 45 alla larghezza necessaria.

    se selezioni la cella della colonna "C" che ha più di 45 caratteri l'altezza della riga si adatta al testo per ritornare alla larghezza normale basta selezionare un altra cella della colonna "C"

    vedi immagine



    Ciao By Sal (8-D
    [Modificato da by sal 29/04/2021 08:12]
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    fabrizio.ExcelForum
    Post: 74
    Registrato il: 04/03/2017
    Città: MILANO
    Età: 44
    Utente Junior
    2010
    00 29/04/2021 12:50
    Ciao Salvatore grazie, l'idea è geniale, e sei sempre puntuale negli aiuti! GRAZIE MILLE! ora non riesco a vedere il file perché non sono a computer ci guarderò stasera, ecco una mia esigenza se possibile sarebbe quella di avere le celle c14 e c3 e le future celle che popoleranno la colonna C sempre totalmente visibili per tutto il testo che contengono! Grazie
  • OFFLINE
    by sal
    Post: 6.343
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 29/04/2021 16:13
    Ciao Fabrizio, niente di più facile, io ho usato l'evento del foglio "SelectionChange" quindi quando si seleziona una cella della colonna
    "C" che supera i 45 caratteri allora la cella si adegua in altezza in base al testo.

    ora per far rimanere le cella sempre della stessa altezza basta modificare l'evento in "Change" quindi la riga iniziale della macro:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    

    diventa

    Private Sub Worksheet_Change(ByVal Target As Range)


    tutto qui, ma attenzione qualsiasi cella della colonna "C" che superi i 45 caratteri si adegua in altezza.
    Logicamente se il testo viene modificato e si riducono i caratteri l'altezza della cella viene ripristinata.

    Ciao By Sal (8-D


    [Modificato da by sal 29/04/2021 16:15]
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    fabrizio.ExcelForum
    Post: 75
    Registrato il: 04/03/2017
    Città: MILANO
    Età: 44
    Utente Junior
    2010
    00 29/04/2021 18:15
    Ciao SAlvatore ho dato uno sguardo al file e nello specifico il mio intento è quello di inserire piu' caratteri oltre l'altezza standard che è di "409" ; che con le celle unite riesco a ottenere, mentre in questo modo la riga puo' contenere in altezza solo alcuni caratteri.
    Per farti capire ti allego il file!
    grazie
  • OFFLINE
    fabrizio.ExcelForum
    Post: 76
    Registrato il: 04/03/2017
    Città: MILANO
    Età: 44
    Utente Junior
    2010
    00 30/04/2021 17:55
    Ciao Salvatore hai visto il file che ti ho inviato?
    Secondo te la possibilita' di poter visualizzare il testo come dal mio file ma con il tuo modo tramite vba è una cosa fattibile?
    Grazie mille per la disponibilita'.
  • OFFLINE
    by sal
    Post: 6.344
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 30/04/2021 20:06
    Ciao al momento sto cercando di trovare un altra strada, vediamo se riesco.

    Ciao By Sal (8-D
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    fabrizio.ExcelForum
    Post: 77
    Registrato il: 04/03/2017
    Città: MILANO
    Età: 44
    Utente Junior
    2010
    00 01/05/2021 15:43
    Ciao Salvatore stavo guardando questo codice per fare delle prove sulle le celle unite, vedo che funziona ma se per esempio unisco 6 celle in colonna tipo A1, a2,a3,a4,a5,a6, poi dando l'invio il codice mi apre tutte le 6 celle incolonnate al massimo in altezza.
    Chiedo tu sai modificare il codice affinchè me lo allarghi si ma riesca ad adattarsi al testo??
    ti ho allegato il file
    Magari per te è un gioco da ragazzi ma per me ....😀


    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim NewRwHt As Single
    Dim cWdth As Single, MrgeWdth As Single
    Dim c As Range, cc As Range
    Dim ma As Range
    OldRwHt = Target.RowHeight
    With Target
    If .MergeCells And .WrapText Then
    Set c = Target.Cells(1, 1)
    cWdth = c.ColumnWidth
    Set ma = c.MergeArea
    For Each cc In ma.Cells
    MrgeWdth = MrgeWdth + cc.ColumnWidth
    Next
    Application.ScreenUpdating = False
    ma.MergeCells = False
    c.ColumnWidth = MrgeWdth
    c.EntireRow.AutoFit
    NewRwHt = c.RowHeight
    c.ColumnWidth = cWdth
    ma.MergeCells = True
    If OldRwHt < NewRwHt Then
    ma.RowHeight = NewRwHt
    Else
    ma.RowHeight = OldRwHt
    End If
    cWdth = 0: MrgeWdth = 0
    Application.ScreenUpdating = True
    End If
    End With
    End Sub
  • OFFLINE
    by sal
    Post: 6.353
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 03/05/2021 15:36
    Ciao Fabrizio, dando un occhiata più approfondita, ho notato anche che tu usi come dimensione di carattere 20, perche non usi un 11 o 12 che sono più piccoli, e quindi nella cella alla massima dimensione di altezza che sarebbe 409 ci andrebbe comodamente il tuo testo?

    potrai anche usare il carattere 20 per altri posti dove non è previsto un testo cosi lungo

    oppure in definitiva se il testo è più lungo allora si incomincia a ridurre la grandezza del carattere.

    ho diminuito la grandezza del carattere ed il testo si legge tutto

    inoltre metti carattere 20 e poi diminuisci lo zoom dello schermo, mi sembra un controsenso.

    Ciao By Sal (8-D
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui