| | 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 | | ONLINE |
|
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 | |
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 | | ONLINE |
|
06/12/2023 21:14 | |
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 | | ONLINE |
|
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 | |
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 | | ONLINE |
|
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 | |
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 |
|
|