Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Dimensionare la larghezza delle colonne in base al valore numerico nelle celle

Ultimo Aggiornamento: 07/12/2023 00:34
Post: 146
Registrato il: 24/07/2013
Città: SALERNO
Età: 52
Utente Junior
Excel LTSC 2021
OFFLINE
06/12/2023 20:30

Buonasera a tutti gli utenti del Forum.
Chiedo cortesemente una soluzione VBA, non alla mia portata e non trovata sul Web, riguardo all'esigenza in oggetto:

Vorrei poter dimensionare automaticamente la larghezza delle colonne di un foglio di lavoro
in base a valori numerici definiti, inseriti nelle celle in 'riga 1'.
Esempio:
in cella 'A1' è inserito il valore numerico 9,14
in cella 'B1' è inserito il valore numerico 3,43
in cella 'C1' è inserito il valore numerico 5,29 e così via

quando lancio la macro, vorrei che la larghezza di

colonna 'A' sia adattata automaticamente a 9,14
colonna 'B' sia adattata automaticamente a 3,43
colonna 'C' sia adattata automaticamente a 5,29 e così via.

Naturalmente, nelle celle vuote in 'riga 1' la larghezza delle relative colonne non subisce variazione.

Allego file di esempio e ringrazio anticipatamente per una risposta.
Buona serata

P.S. Riga 1 ha il formato numero con due decimali, ma può essere formattata anche diversamente.
Windows 10 - Excel LTSC
Post: 949
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 20:35

non è praticamente la stessa domanda del 27 ottobre con 5 STELLE ?

LEO
https://t.me/LordBrum
Post: 146
Registrato il: 24/07/2013
Città: SALERNO
Età: 52
Utente Junior
Excel LTSC 2021
OFFLINE
06/12/2023 21:01

Re:
Lo stesso argomento, non la stessa domanda.
'Praticamente' è l'inverso
(Vedo che quella discussione ti è rimasta impressa nella memoria 😆
L2018, 06/12/2023 20:35:

non è praticamente la stessa domanda del 27 ottobre con 5 STELLE ?




Windows 10 - Excel LTSC
Post: 950
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 21:14

Re: Re:
adesso non ho la calma per verificare che sia l'inverso, te la do per buona

ma quella discussione, o per meglio dire quella precedente del 24 ottobre, mi è effettivamente rimasta impressa, e non ho difficoltà a dirlo, per 2 motivi
- il modo perfetto di scrivere in italiano (cosa introvabile)
- il tentativo (più di così non posso chiamarlo) di giustificare l'attribuzione dei voti ad una conversazione, sia pur condotto con ottima dialettica ma con scarse motivazioni

LEO
https://t.me/LordBrum
Post: 951
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 21:19

tuttavia prima della mia ultima risposta ho visto il tuo problema ricorrente della larghezza delle colonne,almeno in certi casi, e ho voluto fare una prova volenterosa
ho notato che se il controllo convalida dati occupa piu di una casella, succede che anche la parola precipitevolissimevolmente viene visualizzata per intero al momento della interrogazione.
Purtroppo è un risultato statico, non funziona ad organetto

LEO
https://t.me/LordBrum
Post: 3.147
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Master
365
OFFLINE
06/12/2023 23:09

ciao
ciao Leo
per curiosità e per imparare
ho messo

Sub sostituisci()
Dim Lista As Range
Set Lista = Range("A1:ZZ1")
For Each CL In Lista
If CL <> "" Then
CL.ColumnWidth = CL.Value
End If
Next
End Sub



ho notato però che le misure vengono similari ma non uguali
mi spieghi il perchè
grazie

nb
se non si colorano di bianco le misure in riga 1
vengono delle schifezze ####### se la misura è piccola
[Modificato da federico460 06/12/2023 23:11]
Post: 147
Registrato il: 24/07/2013
Città: SALERNO
Età: 52
Utente Junior
Excel LTSC 2021
OFFLINE
06/12/2023 23:29

Re:
Federico460, grazie per la risposta e per la tua soluzione.
É perfetta.
Riguardo al fatto che le misure ti vengano similari e non uguali al valore inserito in cella, credo che ciò avvenga quando il valore in questione, riguardo al suo frazionamento decimale, non rispecchi fedelmente quello predefinito della colonna:
cioè
0,14 - 0,29 - 0,43 - 0,57 - 0,71 - 0,86

Quindi, se inserisci in cella 5,43 e lanci la macro, la larghezza della colonna sarà 5,43
se inserisci in cella 5,48 e lanci la macro, la larghezza della colonna sarà sempre 5,43
se inserisci in cella 5,54 e lanci la macro, la larghezza della colonna sarà 5,57 in quanto 5,54 è più vicino al frazionamento 0,57 rispetto a quello 0,43

Almeno credo che questo sia, descritto 'maccheronicamente', il motivo.

Quanto alle 'schifezze' ###### cui fai riferimento, è perchè la larghezza della colonna risulta troppo stretta in rapporto alla dimensione del carattere della cella.
Occorrerà, al riguardo, andare sulla cella in questione --> Tasto destro --> Formato Celle --> Allineamento --> 'Flaggare' la casella 'Riduci e adatta' --> OK e il valore in cella si adatterà alla 'ristrettezza' della colonna.
Per quanto possibile: in quanto se la colonna è molto stretta - es. inferiore a 1,43 - il carattere si ridurrà al punto da essere troppo piccolo per risultare leggibile.

federico460, 06/12/2023 23:09:

ciao
ciao Leo
per curiosità e per imparare
ho messo

Sub sostituisci()
Dim Lista As Range
Set Lista = Range("A1:ZZ1")
For Each CL In Lista
If CL <> "" Then
CL.ColumnWidth = CL.Value
End If
Next
End Sub



ho notato però che le misure vengono similari ma non uguali
mi spieghi il perchè
grazie

nb
se non si colorano di bianco le misure in riga 1
vengono delle schifezze ####### se la misura è piccola




[Modificato da Anthony D'Acunto 06/12/2023 23:42]
Windows 10 - Excel LTSC
Post: 952
Registrato il: 02/04/2018
Città: PESCARA
Età: 75
Utente Senior
EXCEL 2016 - SPREAD32
OFFLINE
06/12/2023 23:32

Ciao Federico,ma....hai scritto a me ?
Sono io che per curiosità e per imparare che ho preso e usato la tua macro che ha diligentemente funzionato ( stavo pensando pure io di inventarmene una che faceva il contrario di Rollis di giorni fa )
ma l'altra domanda che mi fai mi sorprende, mica sono un maestro da interpellare
o forse non ho capito bene, o non ce l'avevi con me ?
forse domani ci si capisce meglio ?
-------------
capito, hai salutato entrambi ma hai risposto all'OP, ok
[Modificato da L2018 06/12/2023 23:34]

LEO
https://t.me/LordBrum
Post: 3.148
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Master
365
OFFLINE
07/12/2023 00:31

ciao
Quanto alle 'schifezze' ###### cui fai riferimento, è perchè la larghezza della colonna risulta troppo stretta in rapporto alla dimensione del carattere della cella.
Occorrerà, al riguardo, andare sulla cella in questione --> Tasto destro --> Formato Celle --> Allineamento --> 'Flaggare' la casella 'Riduci e adatta' --> OK e il valore in cella si adatterà alla 'ristrettezza' della colonna.
Per quanto possibile: in quanto se la colonna è molto stretta - es. inferiore a 1,43 - il carattere si ridurrà al punto da essere troppo piccolo per risultare leggibile.


beh! questo lo sapevo ma pensavo volessi lasciare il carattere com'era e nasconderlo.

sistemiamo tutto così

Sub sostituisci()
Dim Lista As Range
Set Lista = Range("A1:ZZ1")
For Each CL In Lista
If CL <> "" Then
CL.ColumnWidth = CL.Value
CL.ShrinkToFit = True
End If
Next
End Sub



ora il carattere si adeguerà alla larghezza.

Leo
certo che chiedevo a te
io di VBA ne conosco poche righe
comunque ora ho capito perchè le misure non tornano😀
[Modificato da federico460 07/12/2023 00:35]
Post: 148
Registrato il: 24/07/2013
Città: SALERNO
Età: 52
Utente Junior
Excel LTSC 2021
OFFLINE
07/12/2023 00:34

Re:
Troppa grazia...e grazie; che non sono mai troppe.
Un abbraccio
federico460, 07/12/2023 00:31:

ciao
Quanto alle 'schifezze' ###### cui fai riferimento, è perchè la larghezza della colonna risulta troppo stretta in rapporto alla dimensione del carattere della cella.
Occorrerà, al riguardo, andare sulla cella in questione --> Tasto destro --> Formato Celle --> Allineamento --> 'Flaggare' la casella 'Riduci e adatta' --> OK e il valore in cella si adatterà alla 'ristrettezza' della colonna.
Per quanto possibile: in quanto se la colonna è molto stretta - es. inferiore a 1,43 - il carattere si ridurrà al punto da essere troppo piccolo per risultare leggibile.


beh! questo lo sapevo ma pensavo volessi lasciare il carattere com'era e nasconderlo.

sistemiamo tutto così

Sub sostituisci()
Dim Lista As Range
Set Lista = Range("A1:ZZ1")
For Each CL In Lista
If CL <> "" Then
CL.ColumnWidth = CL.Value
CL.ShrinkToFit = True
End If
Next
End Sub



ora il carattere si adeguerà alla larghezza.




Windows 10 - Excel LTSC
Vota: 15MediaObject5,0051015MediaObject5,00210 2
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 11:30. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com