adatta al contenuto celle unite

Anonimo
2011-11-18T07:36:13+00:00

Devo adattare le celle che seleziono di volta in volta ( celle unite ) al contenuto.

Ho trovato questa macro ma funziona soltanto una cella alla volta.

Ho cercato di capire cosa cambiare per utilizzarla su una selezione di celle ma non ci sono riuscito. Ho provato cambiando As Single con As Range e altre cose che ho trovato facendo una ricerca ma non funziona.

Il testo della macro è questo :

Sub AutoFitMergedCellRowHeight()

Dim CurrentRowHeight As Single, MergedCellRgWidth As Single

Dim CurrCell As Range

Dim ActiveCellWidth As Single, PossNewRowHeight As Single

Range(Selection, Range("A1:B65536").End(xlDown)).Select

If ActiveCell.MergeCells Then

With ActiveCell.MergeArea

.WrapText = True 'crea un invio automatico (modifica fs)

If .Rows.Count = 1 Then 'And .WrapText = True Then

Application.ScreenUpdating = False

CurrentRowHeight = .RowHeight

ActiveCellWidth = ActiveCell.ColumnWidth

For Each CurrCell In Selection

MergedCellRgWidth = CurrCell.ColumnWidth + _

MergedCellRgWidth

Next

.MergeCells = False

.Cells(1).ColumnWidth = MergedCellRgWidth

.EntireRow.AutoFit

PossNewRowHeight = .RowHeight

.Cells(1).ColumnWidth = ActiveCellWidth

.MergeCells = True

.RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _

CurrentRowHeight, PossNewRowHeight)

End If

End With

End If

End Sub

Grazie

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2011-11-24T10:19:13+00:00

ciao ci sono novità ?

Scusa e grazie per il sollecito.

Allora. Per recuprare il nome della cartella(file), in vb l'struzione è:

ThisWorkbook.Name

oppure se vuoi percorso e nome:

ThisWorkbook.FullName

Nel codice di Norman(se è quello che utilizzi) puoi modificare questo:

Set WB = Workbooks("Mia Cartella.xls") '<<=== da CAMBIARE

così:

Set WB = ThisWorkbook

Dovrebbe essere sufficiente.Fai sapere, grazie.

La risposta è stata utile?

0 commenti Nessun commento

19 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2011-11-18T09:10:57+00:00

    se non è troppo complicato sarebbe perfetto se fosse una cosa automatica. 

    del tipo: ho la riga 1 con le celle delle colonne A, B e C unite.

    Inserisco il testo e in modo automatico l'altezza della riga si adatta al contenuto.

    Oppure, se così è impossibile, sarebbe comodo poter usare adatta celle unite selezionando l'intero foglio senza dover scegliere le celle unite e quelle non unite.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2011-11-18T08:01:50+00:00

    Esempio:

    Nella riga 1 le colonne da A a C sono unite.

    Nella riga 7, le colonne da C a F sono unite.

    E così via..

    Vorrei poterle selezionare e adattare l'altezza della riga al contenuto.

    Il link è questo:

    http://remigueudelot.free.fr/PHP/tuttigliesempivba.php

    esempio 42

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2011-11-18T07:54:14+00:00

    Devo adattare le celle che seleziono di volta in volta ( celle unite ) al contenuto.

    Ho trovato questa macro ma funziona soltanto una cella alla volta.

    Ho cercato di capire cosa cambiare per utilizzarla su una selezione di celle ma non ci sono riuscito. Ho provato cambiando As Single con As Range e altre cose che ho trovato facendo una ricerca ma non funziona.

    Il testo della macro è questo :

    <cut>

    Premessa: celle unite(merge) e vb non vanno molto d'accordo. Direi che sono *il male*.

    Puoi farmi un esempio concreto? Cosa intendi per: *Devo adattare le celle che seleziono di volta in volta ( celle unite ) al contenuto.* ? Inoltre, il link dell'esempio, puoi postarlo?

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2011-11-18T07:38:40+00:00

    la riga :

    Range(Selection, Range("A1:B65536").End(xlDown)).Select

    è una modifica che ho provato a fare, non fà parte dell'esempio che ho trovato

    La risposta è stata utile?

    0 commenti Nessun commento