Regolare automaticamente altezza riga

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
FrankA.
00martedì 9 febbraio 2016 10:31
Buongiorno a tutti,

vi chiedo un suggerimento riguardo la regolazione automatica dell'altezza delle righe. In poche parole:

copio i dati da una tabella e li riporto in (a3:f500) in una nuova tabella. Nella colonna b: però alcune celle hanno il testo su due o più "righe" quindi devo adattare l'altezza della riga.
ho inserito questo codice:


ultimariga = Range("a" & Rows.Count).End(xlUp).Row
'Permette testo a capo colonna b
Range("b3:b" & ultimariga).Select
With Selection
.WrapText = True
.EntireRow.AutoFit
End With



quanto sopra va bene per le celle che hanno il testo su due o più "righe" però viene cambiata anche l'altezza delle righe con testo su una sola "riga" (avevo impostato un'altezza di 18)
come potrei fare per applicare la formattazione solo alle righe interessate?

grazie
federico460
00martedì 9 febbraio 2016 11:46
Ciao

scusa se non ho capito
ma non è più semplice selezionare la colonna o addirittura tutto il foglio e con il dx
formato celle
allineamento
e spuntare testo a capo

in questo caso aumenterà solo le righe che ne necessitano

ciao
FrankA.
00martedì 9 febbraio 2016 13:41
ciao

il testo va a capo....per questo non c'è problema.

il problema è nel aumentare la larghezza della riga
se questa ha più "righe" di testo all'interno della stessa cella.

come dicevo, con il mio sistema automaticamente mi aumenta l'altezza però anche di quelle che io vorrei lasciare così come sono

federico460
00martedì 9 febbraio 2016 14:06
ciao
sono un tordo e non riesco a capire
altezza righe = come ti ho già detto
larghezza ( si tratta di colonne non di righe le righe non si allargano le colonne si )


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Columns("B:B").EntireColumn.AutoFit

End Sub


i questo modo dimensioni la colonna alla scritta

o forse non riesco ancora a capire

il primo metodo ridimensiona solo le righe che vanno a capo
se allarghi la colonna manualmente decidi quanti caratteri vuoi.

se la cella non va a capo non ridimensiona.

FrankA.
00martedì 9 febbraio 2016 15:47
ciao federico460,

scusa ma ho sbagliato....precedentemente ho scritto larghezza al posto di altezza.

allego file di esempio

https://www.dropbox.com/s/rizw6pzf2rr2w6y/Prova_altezza_celle.xlsm?dl=0


come si può vedere nella riga 15 e 18 il testo della cella b è su piu "righe". Usando il mio codice, aumenta l'altezza anche di tutte le altre righe.
Siccome questa tabella mi viene restituita in automatico da un'altra tabella, ed a volte potrebbe essere molto estesa, vorrei evitare di andare ogni volta a regolare l'altezza di ogni riga che ha il testo "multi-riga"


federico460
00martedì 9 febbraio 2016 16:41

prova questa



Private Sub CommandButton1_Click()
ir = 1
For ir = 1 To 5000
A = Cells(ir, 2).Value
B = Len(Trim(A))
If B > 40 Then
Cells(ir, 2).EntireRow.AutoFit
End If
Next
ir = ir + 1
End Sub

Marius44
00martedì 9 febbraio 2016 16:45
Salve a tutti

Frank la tua macro è giusta. Il problema sta nella colonna H dove il carattere è impostato a 20 (le altre colonne sono a 11).
Imposta anche questa colonna a 11 e vedrai che verranno cambiate in altezza solo le righe il cui testo va a capo.

Un saluto a Federico (scusa l'accavallamento)

Ciao,
Mario
federico460
00martedì 9 febbraio 2016 16:51
ciao Mario

più siamo e meglio stiamo [SM=x423026]
ora Frank a più possibilità
FrankA.
00martedì 9 febbraio 2016 20:48
ciao,

ho provato i vostri suggerimenti:

Marius44, hai ragione se diminuisco il carattere della colonna H il problema è risolto.....solo che preferisco avere la casella di check più visibile.


federico460, il tuo codice funziona alla perfezione. Aumenta l'altezza solo delle righe che hanno il testo superiore ad un tot numero di caratteri....quindi posso adattarlo come necessito

GRAZIE MILLE

...trovare gente disponibile e capace come voi non capita spesso


[SM=x423047]
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 22:27.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com