Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Regolazione altezza pagina

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Regolazione altezza pagina

Postdi wallace&gromit » 17/01/19 11:13

Ciao, ho un file excel in cui ho calcolato tutte le altezze delle righe in modo da poterlo stampare su una pagina A4.
Tutte le volte che lo apro con il mio PC tutto fila liscio, quando lo apro su un altro PC (con lo stesso Office 2016 e con la stessa stampante) alcune righe che dovrebbero essere alte 16 punti diventano alte 16.1 punti, sfalsando tutta l'impaginazione.
A cosa è dovuto?
Ditemi se devo allegare un file, ne preparo uno senza dati sensibili.
Office2016 + 2019 su win10
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2054
Iscritto il: 16/01/12 14:21

Sponsor
 

Re: excel altezza colonne cambia automaticamente

Postdi Anthony47 » 17/01/19 15:09

Non credo che dipenda dal file; probabilmente il tuo e il loro Pc hanno il formato "normal" diverso, e questo porta excel (che a volte vuole fare troppe cose per noi) ad aggiustare i pixel di altezza riga.
Temo che la cosa piu' sicura sia una macro che, all'attivazione del foglio, imposta le altezze come dovrebbero essere.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17658
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: excel altezza colonne cambia automaticamente

Postdi wallace&gromit » 18/01/19 08:49

avevo predisposto una macro worksheetchange, però non è efficace, penso che opto per un bottone che lancia la macro, da premere prima della stampa, al limite associo quello all'anteprima di stampa, in modo che venga automatico usarlo.
Office2016 + 2019 su win10
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2054
Iscritto il: 16/01/12 14:21

Re: excel altezza colonne cambia automaticamente

Postdi wallace&gromit » 18/01/19 15:02

Niente, non ne vuole sapere.
Ho provato a creare una macro che lavora al posto dell'anteprima di stampa, in modo da correggere eventuali errori, ma non funziona. Sul PC della segretaria tutte le righe di 16 punti diventano 16.1 e questo fa sfalsare il calcolo della riga vuota in fondo, che passa alla pagina successiva. Anche se imposto manualmente la riga 36 ad una altezza inferiore, a meno di ridurre drasticamente, questa passa alla pagina successiva (NB le righe di altezze diverse sono mantenute inalterate, è sotto al 20 che ho problemi). Aprendo il file così impostato sul mio PC invece mi trovo l'ultima riga un bel po' in su nella pagina.
Abbiamo lo stesso office (2016) con le stesse personalizzazioni di excel (programma .exportedUI che aveva fatto oggetto di un altro topic qui su PC facile) e la stessa stampante.
Qui un esempio di file: http://www.filedropper.com/provafattura
e qui la macro utilizzata:
Codice: Seleziona tutto
Sub AdattaTutteRighe()
UR = Range("H" & Rows.Count).End(xlUp).Row
For j = 1 To UR - 2
With Worksheets(1).Rows(j)
attuale = .RowHeight
Select Case attuale
Case Is < 19
adatta = 15.99
Case Else
If Left(Cells(j, 2), 6) = "Sconto" Then
adatta = 20
Else:
adatta = (Int(Len(Cells(j, 2)) / 45)) * 15 + 20
End If
End Select
.RowHeight = adatta
End With
totAlt = totAlt + adatta
Next j
totAlt = totAlt + Cells(UR, 1).RowHeight
altez = 825 - totAlt
With Worksheets("UnaPagina").Rows(UR - 1)
.RowHeight = altez
End With
ActiveWindow.SelectedSheets.PrintPreview

End Sub
Office2016 + 2019 su win10
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2054
Iscritto il: 16/01/12 14:21

Re: excel altezza colonne cambia automaticamente

Postdi Marius44 » 19/01/19 19:35

Salve a tutti
Mi succede una cosa strana (è la prima volta che mi capita).
Volevo scaricare il programma di W&G ed ho cliccato sul link. Si apre la pagina di Filedropper, seleziono su downloadnow e si apre il codice da inserire. Lo inserisco e do OK e ... mi riporta alla pagina di Filedropper.
Non riesco a scaricare.

Succede anche a voi o mi son perso qualcosa per strada? :)

Ciao,
Mario
Marius44
Utente Senior
 
Post: 548
Iscritto il: 07/09/15 22:00

Re: excel altezza colonne cambia automaticamente

Postdi alfrimpa » 19/01/19 19:56

Mario io lo scarico normalmente.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: excel altezza colonne cambia automaticamente

Postdi Anthony47 » 20/01/19 19:18

Tra gli altri parametri che determinano il comportamento della dimensione celle c'e' la risoluzione della grafica dei pc, e pur avendola qualche volta misurata (vedi nell'alberello natalizio di quest'anno) non ne conosco i retroscena per capire come governarne gli impatti.
Mi sa quindi che devi passare dall'analogico al digitale…
Nel senso che contiamo la posizione dei break pagina e agiamo di conseguenza.

Avevo gia' pubblicato anni fa una macro che impostava le pagine in funzione di un obiettivo di paginazione, ma non l'ho ritrovata; mi appoggio quindi sulla piu' recente Function GimmiPage pubblicata qui: viewtopic.php?f=26&t=109047&p=640183#p640183

Poi usiamo una macro come questa per fare in modo che la cella che ci interessi sia in pag 1:

Codice: Seleziona tutto
Sub OnePage()
Dim Filler As Long, Checker As String, cPage As Long
Dim CRH As Single, sStep As Long, dPg As Long
'
Filler = 36                         '<<< La riga modificabile in altezza
Checker = "H37"                     '<<< La cella su cui fare la verifica
'
If GimmiPage(Range(Checker)) > 1 Then sStep = -1 Else sStep = 1: dPg = 1
Application.ScreenUpdating = False
CRH = Rows(Filler).RowHeight
For I = 1 To 100
    Rows(Filler).RowHeight = CRH + I * sStep
    cPage = GimmiPage(Range(Checker))
    If cPage = 1 + dPg Then GoTo gOut
Next I
MsgBox ("Ricerca fallita, controlla spaziatura COLONNE")
gOut:
Rows(Filler).RowHeight = CRH + I * sStep - dPg
Application.ScreenUpdating = True
End Sub

Lancerai la Sub OnePage prima della stampa; ad esempio potresti agganciarla al tuo pulsante "adatta e mostra anteprima", facendola precedere dalla scelta della stampante:
Codice: Seleziona tutto
Sub AdattaTutteRighe()
'scegli printer
SelPrint = Application.Dialogs(xlDialogPrinterSetup).Show
If SelPrint = False Then
    MsgBox "Stampa Cancellata"
    Exit Sub
End If
Call OnePage
ActiveWindow.SelectedSheets.PrintPreview
End Sub
La scelta printer in questa fase serve a essere quasi certi di lavorare sul formato di stampa corretto.

Sia la Function GimmiPage che la Sub OnePage vanno in un modulo standard del vba; le righe marcate <<< vanno personalizzate secondo la tua situazione
Ho considerato che tu hai una riga destinata (apparentemente) alla compensazione di altezza; con piccole variazioni si puo' fare in modo da lavorare su un intervallo di righe, invece che una sola riga.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17658
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Regolazione altezza pagina

Postdi wallace&gromit » 21/01/19 09:18

Il mitico Gimmi Page!!!!
avevo sparato una battuta in quel post senza capirci un'acca (ed è tutt'ora così).
Ogni tanto mi sento un po' imbecille a commentare che le macro di Anthony funzionano, un po' come dire che l'acqua è bagnata, ma visto che un feedback è comunque doveroso confermo, funziona alla grande.
Office2016 + 2019 su win10
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2054
Iscritto il: 16/01/12 14:21


Torna a Applicazioni Office Windows


Topic correlati a "Regolazione altezza pagina":


Chi c’è in linea

Visitano il forum: Nessuno e 48 ospiti