| | Post: 471 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
01/08/2022 16:31 | |
Ciao a tutti.
Nel workbook allegato ci sono 2 macro
una macro per stampare le celle
Sub stampa_tutte_righe_attive_stampa_input()
una macro per selezionare l'intervallo
Sub DoppiaMacro_1()
Se prima faccio click sul pulsante 1, la macro Sub Double Macro_1 () è veloce
se prima faccio click sul pulsante 2 e poi sul pulsante 1 la macro Sub DoppioMacro_1() è lenta
Perchè?
un aiuto?
grazie ---------------
excel 2007 |
|
| | Post: 1.247 | Registrato il: 16/08/2015
| Città: CORDENONS | Età: 67 | Utente Veteran | Excel 2016-32bit Win11 | | OFFLINE |
|
01/08/2022 17:03 | |
Mah, a parte il fatto che la macro: Double Macro_1 non l'ho trovata, ho cliccato i pulsanti in tutte le combinazioni di sequenza ma la velocità mi è sembrata sempre la stessa. [Modificato da rollis13 01/08/2022 18:35]
______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto) |
| | Post: 471 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
01/08/2022 17:09 | |
La macro Sub DoppiaMacro_1 è questa abbinata con doppio click a
Sub seleziona_per_mail_1()
Sub togli_seleziona_per_mail_1
che sono nel workbook allegato
Dim Controllo As Boolean
Sub DoppiaMacro_1()
'doppia macro 1/2 click foglio mailstampa
Dim avviso As String
If Controllo = True Then
'Call seleziona_per_mail
Call togli_seleziona_per_mail_1
Controllo = False
Else
'Call togli_seleziona_per_mail
Call seleziona_per_mail_1
Controllo = True
End If
End Sub
Sub seleziona_per_mail_1() '<<< ok
'foglio mail
Application.ScreenUpdating = False
Dim Selezione As Range, R As Range, R2 As Range, rng As Range
Dim avviso As String
Dim I As Long
ActiveSheet.Unprotect "987654"
'If Range("X1") = "" Then
If Range("A5") = "" Then
avviso = MsgBox("non c'è niente da selezionare!", vbExclamation + vbOKOnly + vbDefaultButton2, "AVVISO")
If avviso = vbOK Then
Exit Sub
End If
End If
Set rng = Range("A3:Q84")
For I = rng.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(rng.Rows(I)) = 0 Then
rng.Rows(I).EntireRow.Hidden = True
End If
Next I
With Sheets("foglio1").Range("A3:Q84") '<== sostituisci il nome del foglio, oppure usa ActiveSheet
For Each R In .Rows
For Each R2 In R.Cells
If R2 <> "" Then
If Selezione Is Nothing Then
Set Selezione = R
Else
Set Selezione = Uni0n(R, Selezione)
End If
Exit For
End If
Next R2
Next R
End With
If Not Selezione Is Nothing Then Selezione.Select
Set Selezione = Nothing
'Range("X1") = 1
'ActiveSheet.Protect "987654"
ActiveSheet.Protect Password:="987654", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=False, AllowInsertingHyperlinks:=False, AllowFiltering:=True
Selection.Copy
Application.ScreenUpdating = False
End Sub
Sub togli_seleziona_per_mail_1() '<<< ok
'foglio mail
Dim Selezione As Range, R As Range, R2 As Range, rng As Range
Dim I As Long
ActiveSheet.Unprotect "987654"
Application.ScreenUpdating = False
Set rng = Range("A3:Q84")
For I = rng.Rows.Count To 1 Step -1
If WorksheetFunction.CountA(rng.Rows(I)) = 0 Then
rng.Rows(I).EntireRow.Hidden = False
End If
Next I
'Range("X1") = ""
ActiveSheet.Protect "987654"
Application.CutCopyMode = False
'End If
Application.ScreenUpdating = True
Range("A5").Select
End Sub
mah, forse lento a caussa di excel 2007? [Modificato da john_cash 01/08/2022 17:11] ---------------
excel 2007 |
| | Post: 1.523 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
01/08/2022 18:04 | |
rollis13, 01/08/2022 17:03:
Mah, a parte il fatto che la macro: Double Macro_1 non l'ho travata, ho cliccato i pulsanti in tutte le combinazioni di sequenza ma la velocità mi è sembrata sempre la stessa.
sono d'accordissimo!
premessa:
1
Set nome_variabile = Nothing
lo devi applicare a TUTTE le variabili oggetto e non solo a quelle di cui ti ricordi
2
crea un file nuovo con nome diverso e con estensione ".xlsm"
dal file vecchio, copia nel file nuovo il foglio su cui devi lavorare
aggiungi la prima macro e verificane la velocità (usa il cronometro del cellulare 😁😁😁)
aggiungi la seconda macro e verificane la velocità (usa lo stesso strumento citato sopra 😁😁😁)
Buon lavoro
ciao
Frank
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 1.524 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
01/08/2022 18:35 | |
ciao, ma ci sei o stai facendo altro??!?!?!?
fai domande e non rispondi...????
Va beh,
intanto che tu ti possa degnare di dare un riscontro, ho già notato che non è una tua prerogativa farlo in tempi rapidi,
io ho un problema più importante e vado a prepararmi la cena!
Buona serata
Frank
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
| | Post: 472 | Registrato il: 28/05/2011
| Città: MILANO | Età: 43 | Utente Senior | excel 2000/2007 | | OFFLINE | |
|
01/08/2022 19:25 | |
Scusatemi, non sono sempre attaccato al forum.
Comunque ho risolto in questo modo aggiungendo nelle macro
Sub seleziona_per_mail_1() '<<< ok
Sub togli_seleziona_per_mail_1() '<<< ok
all'inizio
Application.ScreenUpdating = False
'Application.DisplayStatusBar = False
Application.Calculation = xlCalculationManual
'Application.EnableEvents = False
ActiveSheet.DisplayPageBreaks = False
e alla fine
'Application.DisplayStatusBar = True
Application.Calculation = xlCalculationAutomatic
'Application.EnableEvents = True
ActiveSheet.DisplayPageBreaks = True
Selection.Copy
Application.ScreenUpdating = True
allego workbook aggiornato.
Clicca pulsante 1 per stampare le righe
Clicca pulsante 2 per selezionare / clicca pulsante 2 per togliere la selezione
Ora è veloce.
Con le 2 aggiunte nelle macro va bene o possono dare problemi?
Grazie
[Modificato da john_cash 01/08/2022 19:27] ---------------
excel 2007 |
| | Post: 1.525 | Registrato il: 27/06/2011
| Utente Veteran | excel 2007 | | OFFLINE |
|
01/08/2022 20:00 | |
john_cash, 01/08/2022 19:25:
Con le 2 aggiunte nelle macro va bene o possono dare problemi?
Grazie
il file lo è tuo e tu lo utilizzi.
Se non dà problemi a te, non ne darà di certo a noi....
Stretta la foglia, larga la via, dite la vostra che ho detto la mia.
Excel 2007 forse anche 2013 ... 2021 ... 365 e future... |
|
|