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

Aiuto "Adatta altezza righe escludendo righe nascoste"

Ultimo Aggiornamento: 27/12/2019 18:37
Post: 19
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
25/12/2019 19:54

Salve mi chiamo Fabrizio avrei la neccessita' di adattare l'altezza delle righe dalla 4 alla 10000.
Pero' ci sono diverse righe nascoste e vorrei che la formula entrasse in funzione solo per le righe Visibili.
con questa formula mi da variabile non definita.
Qualcuno puo' aiutarmi???
grazie



Private Sub Worksheet_SelectionChange(ByVal Target As Range



For x = 4 To 10000
If Rows(x).Hidden = False Then
Cells(x, 1).Select.EntireRow.AutoFit
End If
End With
End Sub
Post: 4.296
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
25/12/2019 20:51

L’errore non c’entra nulla con il problema che sottoponi.

Devi solo dichiarare con Dim la variabile x del ciclo For.

Cerca un po’ su Internet come si dichiarano le variabili in VBA.

Alfredo
Post: 19
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
25/12/2019 21:13

Ciao Alfredo, è poprio perchè ho gia' cercato in internet e non ne sono venuto a capo !
Purtroppo per me quello che mi chiedi è acora arabo...
mi daresti una dritta?
grazie
Post: 4.297
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
25/12/2019 22:09

Io non so tu cosa abbia cercato ma cerca con Google "Excel VBA dichiarare variabili" e ti si aprirà un mondo.

https://www.google.com/search?q=excel+vba+dichiarazione+variabili&rlz=1C1DIMC_enIT814IT815&oq=Excel+vba+dichia&aqs=chrome.1.69i57j0l3.10425j0j8&sourceid=chrome&ie=UTF-8

Bada che non sono "cattivo" a non dirtelo ma se ci arrivi da solo non lo dimentichi più; se te lo dico io il giorno dopo lo avrai dimenticato e non avrai imparato niente.

Se fai così vedrai che l'"arabo" a poco a poco ti diventerà comprensibile.
[Modificato da alfrimpa 25/12/2019 22:11]

Alfredo
Post: 20
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
25/12/2019 22:38

Ciao Alfredo ho dato un'occhiata ma come ti dicevo purtroppo non ho il tempo per iniziare a studiare un "mondo del vba" grazie cmq...
Post: 4.298
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
25/12/2019 23:06

Per dichiarare una variabille non occorre studiare il VBA basta una banale ricerca con Google.

Se l’avessi fatta in tre secondi e mezzo avresti scoperto che l'istruzione che ti occorre è

Dim x As Integer


e non vuoi fare neanche questo?

Se vuoi usare il VBA e ti si presentano problemi un giorno e l’altro pure come li risolvi?

Chiedendo sempre sui forum?

Alfredo
Post: 21
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
26/12/2019 12:14

ciao ho provato a integrare questo codice ,
ho notato che a iniziato a fare il ciclo, pero mi ha scoperto tutte le righe nascoste , mantre le righe nascoste devono rimanere nascoste.
Avete suggerimenti.??
grazie
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim x As Integer

For x = 4 To 10000
If Rows(x).Hidden = false Then
Cells(x, 1).Select
Cells.EntireRow.AutoFit
End If
Next x
End Sub
Post: 767
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
26/12/2019 18:32

Ciao
@alfrimpa (ciao Alfredo) ha ragione quando dice che se non conosci VBA è difficile darti suggerimenti.
Ora, poichè non voglio neppure prendere in considerazione che alla tua età "non si ha tempo" per imparare, ti suggerisco di analizzare passo passo la macro che hai pubblicato.
Facciamolo insieme.

questa è la riga iniziale che dice ad Excel di "stare attento quando si seleziona una cella"
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

questa è la riga delle dichiarazioni delle variabili
Dim x As Integer

questa ti fa iniziare un ciclo dalla riga 4 alla riga 10000
For x = 4 To 10000

questa dice ad Excel: attento, se la riga x NON è nascosta allora
If Rows(x).Hidden = false Then

questa riga dice ad Excell: selezionala (ma mi chiedo che bisogno hai di selezionarla e non tieni in conto che si innesca nuovamente la macro al cambiamento di selezione. Entri in un ciclo infinito.
Io ti consiglio di toglierla.
Cells(x, 1).Select

e adesso veniamo all'errore. Con questa riga cosa stai dicendo ad Excel?
Cells.EntireRow.AutoFit

Tieni presente che Cells per Excel vuol dire l'intero foglio, tutte le celle presenti (nascoste o no). Quindi Excel esegue e ti porta tutte le celle all'altezza di default.
Invece, visto che stai analizzando di Rows (righe) continua con questa riga

Rows(x).EntireRow.AutoFit


le successive righe vanno bene
End If
Next x
End Sub

Prova e fai sapere.
Ciao,
Mario
[Modificato da Marius44 26/12/2019 18:32]
26/12/2019 18:43

E poi farlo con un SelectionChange....,
Significa ammazzare la CPU in due giorni (meglio un bottone)

Edit, inoltre cosa intendi per allargare le righe?
Che vedrai il testo su più righe....
NB Non funziona se le celle non sono formattate con "testo a capo", oppure intendevi allargare la colonne per visualizzare il testo
[Modificato da ABCDEF@Excel 26/12/2019 19:00]
Post: 1.865
Registrato il: 10/10/2013
Città: VICENZA
Età: 69
Utente Veteran
365
OFFLINE
26/12/2019 21:51

ciao 
visto che allargare le colonne di solo 
le righe visibili è impossibile 
immagino tu voglia allargare le righe 
dove hai del testo a capo 

crea un pulsante e collegalo a 


Private Sub CommandButton1_Click() 
ir = 4 
For ir = 4 To 10000 
A = Cells(ir, 1).Value 
B = Len(Trim(A)) 
If B > 10 And Cells(ir, 1).EntireRow.Hidden = False Then 
Cells(ir, 1).WrapText = True 
Cells(ir, 1).EntireRow.AutoFit 
End If 
Next 
ir = ir + 1 
End Sub 

ti manda a capo solo le celle visibili 
e con almeno 11 carattere. 

se vari If B > 10 
in If B > 40 

la cella deve avere almeno 41 caratteri 
eccetera 

è balorda come macro ma funziona 
e ti da la possibilità di scegliere che righe aumentare 

NB
Cells(ir, 1).EntireRow.AutoFit 
è in più non servirebbe
27/12/2019 13:08

Domanda: Le righe nascoste le hai "nascoste" Tu fisicamente, oppure sono "nascoste" da un filtro?
Se fossero "nascoste" da un filtro, potresti usare il Worksheet_Change
La CPU avrà uno enorme sgravio, in caso contrario dovrai fare il ciclo For
Post: 4.199
Registrato il: 13/03/2012
Città: LIVORNO
Età: 78
Utente Master
2010
OFFLINE
27/12/2019 13:31

Re:
fabrizio.ExcelForum, 25/12/2019 22.38:

Ciao Alfredo ho dato un'occhiata ma come ti dicevo purtroppo non ho il tempo per iniziare a studiare un "mondo del vba" grazie cmq...


siete troppo buoni, va bene che siamo sotto Natale, ma uno che dice queste cose e frequenta da anni i vari forum di excel, non si merita di essere aiutato


----------
Win 10 - Excel 2010
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Post: 4.299
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
27/12/2019 13:48

Re: Re:
patel45, 27/12/2019 13.31:


siete troppo buoni, va bene che siamo sotto Natale, ma uno che dice queste cose e frequenta da anni i vari forum di excel, non si merita di essere aiutato




Sono completamente d'accordo.

Alfredo
Post: 23
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
27/12/2019 18:37

Salve ,scusate ma anche se sono datato dal /2017, io non ho mai frequentato i forum se non 3 volte, e purtroppo sono impegnato nel mio lavoro e faccio fatica proprio come tempistica a dedicare tempo ad altro..
mi piacerebbe.. ma non riesco e allora mi rivolgo qui da voi quando mi incaglio sperando di trovare qualche dritta...
ho provato a guardare il consiglio vago di "Patel" ma ci vuole tanto tempo per capire il vba , magari con le formule me la cavo meglio.



Poi ho risolto con l'aiuto del registratore con questo codice...

Sub Macro500()
'
' Macro500 Macro
'
Application.ScreenUpdating = False
Rows("4:4").Select
Selection.Rows("1:10000").SpecialCells(xlCellTypeVisible).Select
Selection.EntireRow.AutoFit
Range("A3").Select
Application.ScreenUpdating = True
End Sub

cmq provero' i vari aiuti con i codici da voi forniti..
poi faro' sapere.
grazie mille a quelli che mi hanno aiutato...
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 12:48. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com