Stellar Blade Un'esclusiva PS5 che sta facendo discutere per l'eccessiva bellezza della protagonista. Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

VBA x Stampare

Ultimo Aggiornamento: 17/07/2020 02:03
13/07/2020 17:08

Ciao a tutti
Tramite un ciclo For nascondo le righe da NON visualizzare, invece per stampare le stampa tutte, presumo che la cosa migliore sarebbe di copiarle in un nuovo foglio mà il codice si complica parecchio. Sapete se "possibile", assegnare alcune Aree al NOME Stampa? Non riesco far funzionare le due righe RefersToR1C1 + FormulaLocal...con Msg (presumo sia colpa degli apici)
Msg =...Foglio1!$A$95:$W$141;Foglio1!$A$236:$W$282
Grazie mille
Sub aaa()
Dim ur As Long, x As Long, Msg As String, a
Cells.EntireRow.Hidden = False
ur = Range("B" & Rows.Count).End(xlUp).Row
    For x = 1 To ur Step 47
        If Not Cells(x + 9, 14) = "X" Then
            Range(Rows(x), Rows(x + 46)).EntireRow.Hidden = True
        Else
            Msg = Msg & "Foglio1!$A$" & x & ":$W$" & x + 46 & ";"
        End If
    Next
    Msg = Left(Msg, Len(Msg) - 1)
    Sheets("dati1").Cells(1, 1).FormulaLocal = "=" & Msg
    With ActiveWorkbook.Names("Stampa")
        .Name = "Stampa"
        '.RefersToR1C1 = "=" & Msg
        '.FormulaLocal = "=" & Msg
        .Comment = ""
    End With
MsgBox "fatto"
End Sub
Post: 299
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Junior
2003
OFFLINE
13/07/2020 18:33

Ciao ABCDEF@Excel se ti va bene io ho una soluzione momentanea perchè magari hai una necessità di stampare urgente non tutte le righe,finchè qualcuno corregga il tuo codice.Nascondi quello che vuoi e poi riporta nel foglio2 con questa macro e poi stampa.
Sub riporta()
Application.ScreenUpdating = False
Dim Ur As Long, K As Long, ur1 As Long
Dim wk As Worksheet
Set wk = Worksheets("foglio2")
Ur = Range("A" & Rows.Count).End(xlUp).Row
For K = 1 To Ur
If Cells(K, 1).EntireRow.Hidden = False Then
ur1 = wk.Range("A" & Rows.Count).End(xlUp).Row + 1
Cells(K, 1).EntireRow.Copy
wk.Range("A" & ur1).PasteSpecial xlPasteValues
End If
Next K
Application.CutCopyMode = False
Application.ScreenUpdating = True
Set wk = Nothing
End Sub
Spero di aver capito giusto.Nascondo le righe da non visualizzare non è la stessa cosa. Non basta dire uno o l'altro?
Ciao Gattodimarmo
[Modificato da gattodimarmo1980 13/07/2020 18:38]
Post: 2.892
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
13/07/2020 18:49

Re:
ABCDEF@Excel, 13/07/2020 17:08:

Ciao a tutti
Tramite un ciclo For nascondo le righe da NON visualizzare, invece per stampare le stampa tutte.....



ma come fa a stampare anche le righe nascoste??

saluti




Domenico
Win 10 - Excel 2016
13/07/2020 19:24

Ciao dodo47
Non lo sò (non ho la stampante, verificato in anteprima = OK), mi è stato detto nel post https://www.freeforumzone.com/d/11709117/Assegnare-automaticamente-nomi-in-sequenza-corretta-a-Range-uguali-tra-loro/discussione.aspx

Adesso che me l'hai ricordato, sono proprio fuso...
Comunque, se fosse "senza nascondere le righe", non si può fare?
Post: 300
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Senior
2003
OFFLINE
13/07/2020 19:34

Ciao DoDo47 se nascondi le righe e stampi vengono stampate tutte anche quelle che non le vedi.
Ciao
ABCDEF@Excel
se vuoi rivisuallizare le righe nascoste dopo aver usato la mia macro usa questo codice
Sub Visualizza()
Cells.EntireRow.Hidden = False
Cells(1, 1).Select
End Sub
Mi sono dimenticato.Ciao a (tutti) Matteo
[Modificato da gattodimarmo1980 13/07/2020 19:38]
Post: 2.893
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
14/07/2020 09:48

Re:
gattodimarmo1980, 13/07/2020 19:34:

Ciao DoDo47 se nascondi le righe e stampi vengono stampate tutte anche quelle che non le vedi.
Ciao



credo che tu abbia le idee confuse Matteo.

saluti




[Modificato da dodo47 14/07/2020 09:52]
Domenico
Win 10 - Excel 2016
14/07/2020 16:21

A parte l'errore iniziale che "stampa tutto", mi era venuta l'idea di creare un NOME con tutte le Aree selezionate da un ciclo For. Ci sono riuscito con questo...
Ps. Nel mio caso si tratta di una 10/20/30/40 Aree, non sò se funzionerà con molte Aree in più.
Option Explicit
Sub aaa()
Dim ur As Long, x As Long, Rr1 As Range, Rr As Range
'Cells.EntireRow.Hidden = False
ur = Range("B" & Rows.Count).End(xlUp).Row
    For x = 1 To ur Step 47
        If Cells(x + 9, 14) = "X" Then
            If Rr1 Is Nothing Then
                Set Rr1 = Range("Foglio1!A" & x & ":W" & x + 46)
            Else
                Set Rr = Range("Foglio1!A" & x & ":W" & x + 46)
                Set Rr1 = Application.uni0n(Rr1, Rr)
            End If
        End If
    Next
    With ActiveWorkbook.Names("Stampa")
        .Name = "Stampa"
        .RefersTo = Rr1
    End With
Set Rr = Nothing
Set Rr1 = Nothing
MsgBox "fatto"
End Sub


EDIT. Il forum cambia Union con Uni0n
[Modificato da ABCDEF@Excel 14/07/2020 16:48]
Post: 2.896
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
14/07/2020 17:01

ciao
quando scrivi : Set Rr1 = Application.uni0n(

il vb ti elenca gli argomenti della funzione e se leggi sono 30: Arg1. Arg2,....Arg30)

in questi casi (personalmente) preferisco accodare in un foglio di appoggio i range da stampare, magari in un foglio nascosto che, prima di stampare, scopri, e poi nascondi nuovamente.

(ma perchè crei il nome stampa?)

saluti




[Modificato da dodo47 14/07/2020 17:02]
Domenico
Win 10 - Excel 2016
Post: 301
Registrato il: 03/10/2015
Città: ALBAREDO PER SAN MARCO
Età: 44
Utente Senior
2003
OFFLINE
14/07/2020 18:39

Buona sera DoDo47 io ho le idee confuse ma si potrebbe avere un file
per provare a stampare . Saluti Matteo
14/07/2020 18:43

>>>presumo che la cosa migliore sarebbe di copiarle in un nuovo foglio
In effetti, visto gli Arg30 dovrò rivalutare il tutto.

Ciao dodo47
A dire il vero non mi interessava il NOME stampa (che poi non stampa, solo selezionare le varie Aree scelte dal For). Era da tempo che cercavo un metodo per lavorare su Aree diverse. Ex Se non conosco quante Aree verrano scelte, non potevo scrivere set Rr1 = Uni0n(area1,area2,area3,area4 ecc ecc). Tramite la rete ho trovato la riga Set Rr1 = Application.uni0n(Rr1, Rr) che aggiunge più Aree e mi sembrava una cosa buona.
Grazie per Arg1. Arg2,....Arg30 (ho visto). Io non sono capace d'usare l'help, Finestra immediata, variabili ed espressioni di controllo

Ps. Penso (non saprei), gli stampava tutto perchè per ogni Area ha messo un'interruzione di pagina e presumo che uscivano fogli bianchi.
[Modificato da ABCDEF@Excel 14/07/2020 19:12]
15/07/2020 14:20

Ciao dodo47
Quel post è un casino, non posso creare un foglio nuovo (causa le dimensioni delle righe e colonne). Allora copio le Aree in altre colonne (BB:BW), mi è rimasto il problema dell'interruzione di pagina. Potrei spostare "l'Area di Stampa" in (BB:BW), mà ho l'impressione che quando avrò solo 2 pagine da stampare (ne usciranno molte di più). Tramite codice devo usare (BB:BW), per una Multi_Stampa penso di non aver problemi (farò un ciclo for). Invece per un Unico_PDF, dovrei... prendere la 1° area e creare la 1° pagina del PDF, poi la 2° area e creare la 2° pagina del PDF ecc ecc
Conosci il comando per farlo andare nella pagina successiva del PDF?
Ps. Gli ho allegato un files provvisorio. Grazie di tutto
Post: 2.900
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
15/07/2020 16:42

ciao
Via veloce:
duplichi il foglio (in questo modo vengono salvaguardate altezza e larghezza colonne), elimini le righe che non ti servono e stampi.
-----------------------------------------------------------------

Per quanto riguarda i salto pagina non c'è nessun comando ABC.....

quando ci sono salti pagina in excel, automaticamente il pdf viene creato con più pagine....

Forse non capisco cosa vuoi)

saluti



Domenico
Win 10 - Excel 2016
17/07/2020 02:03

Grazie per il (duplichi), mi ero scordato pure di lui.
Con molta fatica, penso di riuscire (pure con l'area di stampa che viene duplicata)
Vota: 15MediaObject4,501013 9
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 21:58. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com