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

Larghezza colonne

Ultimo Aggiornamento: 16/12/2019 07:30
15/12/2019 02:18

Avrei un problema che non riesco risolvere, in foglio1 colonne O:DB ci sono delle Date. Per estetica desideravo restringerle, mà tramite VBA il find non le trova più. Mi era già successo un'altra volta e non capivo il motivo, secondo Voi tramite VBA meglio che allargo le colonne e dopo il ciclo For le rimpiciolisco???
Grazie mille
Post: 2.462
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
15/12/2019 09:56

ciao
Il Find con le date ha sempre creato problemi a causa delle differenze del formato data italiano.

perchè non usare un ciclo for..next (o comunque sia un loop) per trovare una data? non sono poi tante colonne

saluti



[Modificato da dodo47 15/12/2019 10:05]
Domenico
Win 10 - Excel 2016
Post: 3.617
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
15/12/2019 15:14

Buona giornata @ABCDEF@Excel;
non sono certo di aver interpretato correttamente la tua richiesta.

Azzardo un'ipotesi:

 Range("N7:DB7").Columns.AutoFit 

le Colonne del Range indicato verranno dimensionate in funzione dei Valori contenuti.

Oppure, volendi imporre una larghezza predefinita:

 Range("N7:DB7").ColumnWidth = 5 

le Colonne del Range indicato verranno dimensionate in funzione del Valore indicato; in questo esempio 5.

 

A disposizione.

Buon fine settimana.

Giuseppe



Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 765
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
15/12/2019 17:21

Buonasera a tutti
se vuoi mantenere il .Find devi ricorrere ad uno stratagemma. Ho aggiunto due righe di codice alla tua macro e tutto funziona.
Questo il codice (al limite implementabile con ScreenUpDating)
Option Explicit
Sub Colora_Celle()
Dim x As Long, y As Long, C1 As Long, C2 As Long
Dim wf As WorksheetFunction
Set wf = Application.WorksheetFunction
Range("O13:DB28").Interior.ColorIndex = xlNone

Range("N7:DB7").ColumnWidth = 10     '<== riga aggiunta

For x = 13 To 28
    If Cells(x, 9) = "" Or Cells(x, 11) = "" Then
        MsgBox "Mancano dati in colonna I oppure K"
    Else
        Range("N7:DB7").Find(Cells(x, 9), LookIn:=xlValues, LookAt:=xlWhole).Activate
        C1 = ActiveCell.Column
        Range("N7:DB7").Find(Cells(x, 11), LookIn:=xlValues, LookAt:=xlWhole).Activate
        C2 = ActiveCell.Column
        'Range(Cells(x, C1), Cells(x, C2)).Interior.ColorIndex = 6
        For y = C1 To C2
            If wf.NetworkDays(DateValue(Cells(7, y)), DateValue(Cells(7, y)), [Chiuso]) = 1 Then Cells(x, y).Interior.ColorIndex = 6
        Next y
    End If
Next x

Range("N7:DB7").ColumnWidth = 2.43     '<== riga aggiunta

Set wf = Nothing
End Sub


Ciao,
Mario
15/12/2019 17:34

Grazie mille, pensavo ad un mio errore..
Ho risolto allargando e restringendo le colonne

Un' ultima cortesia se possibile (forse un Array)?
Nell'allegato, in E13:E19 ci sono solo due nomi univoci.
Come potrei fare per associarli a questi numeri per colorare(Interior.ColorIndex = 3,4,5,6,7,8,9,10,11,12,13)

Intendo mario=3, pippo=4 e se ci fossero altri nome1=5, nome2=6 ecc ecc
Ps. Se i nomi fossero più di 11 ricominciando dal 3

Pps. Vero che mi basterebbe creare una tabella da qualche parte mà volevo cercare di capire meglio array o collection (non sono capace)
Ho aggiornato il post https://www.freeforumzone.com/d/11670023/Saturazione-delle-risorse/discussione.aspx
[Modificato da ABCDEF@Excel 16/12/2019 00:24]
Post: 3.618
Registrato il: 03/04/2013
Utente Master
Excel 2000 - 2013
OFFLINE
16/12/2019 07:30

Buona giornata a Tutti.
Un caro saluto a Domenico e Mario.

@ABCDEF@Excel; prometto che poi non disturbero più, ma una precisazione mi sento in dovere di fornirla.

Sinceramente quello che mi aveva tratto in inganno è stato il titolo della discussione:
- Larghezza colonne
Il mio contributo si era limitato a questo aspetto.

Successivamente, anche grazie al contributo di @Marius44, ho capito che l'esigenza era piuttosto diversa.

In realtà la struttura si riferiva alla precedente discussione:
https://www.freeforumzone.com/d/11670023/Saturazione-delle-risorse/discussione.aspx?#idm137256816
alla quale anch'io avevo partecipato con risposta #4.
A questo punto, a beneficio degli Utenti di Forum interessati alla discussione sopra indicata, mi sono preso lo sfizio di implementare la struttura precedentemente proposta.

Nell'immagine in allegato tutte le Risorse, in automatico, sono state analizzate evidenziando in giallo tutti gli impegni e in rosso le sovrapposizioni; sinceramente, non conoscendo la reale struttura del ciclo produttivo, ho considerato lavorativi i Sabati, le Domeniche e le Festività infrasettimanali limitandomi ad evidenziare in Riga 6 I Sabati e le Festività ma non sarebbe un problema evitare di saturare queste Date.


Tanto è dovuto

Giuseppe



Windows XP - Excel 2000
Windows 10 - Excel 2013
Vota:
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 01:23. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com