| | Post: 7.382 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
10/10/2023 15:40 | |
Bene a questo punto, seleziono solo il mese di Settembre e gli faccio cancellare i dati, questa la macro modificata per cancellare il mese di Settembre a parte
Sub Assenze()
Dim r, c, d, x, y, k, m, n, ar, risp, sh As Worksheet
risp = MsgBox("Attenzione Sicuro di voler cancellare i dati", vbCritical + vbYesNo, "Cancellazione dati")
If risp = 7 Then Exit Sub
ar = Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre")
Application.ScreenUpdating = False
On Error GoTo 1 'inserito in mancanza di fogli mese se sono presenti tutti i mesi togliere
For x = 0 To 11
d = ar(x)
If d = "Settembre" Then GoTo 1
k = 76: n = 3: m = 39
Set sh = Worksheets(d)
sh.Activate
With sh.Range("D" & n & ":I" & m) 'riga modificata
.ClearContents
.ClearComments
End With
For y = 15 To 37 Step 2
With sh.Range(Cells(3, y), Cells(k, y)) 'riga modificata
.ClearContents
.ClearComments
End With
Next y
1 Next x
d = "Settembre" '------------ cancella Settembre
Set sh = Worksheets(d)
sh.Activate
With sh.Range("D7:I43")
.ClearContents
.ClearComments
End With
For y = 15 To 37 Step 2
With sh.Range(Cells(3, y), Cells(80, y))
.ClearContents
.ClearComments
End With
Next y
End With
'----------------------------- fine
d = "Gennaio"
Set sh = Worksheets(d)
sh.Activate
sh.Cells(1, 1).Select
Application.ScreenUpdating = True
MsgBox "Operazione terminata", vbInformation, "Cancella dati"
End Sub
credo che adesso sia a posto, fammi sapere.
Ciao By Sal (8-D se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
|
| | Post: 121 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
10/10/2023 18:09 | |
Allora. C'è ancora qualche problema. Il primo penso di averlo risolto:
1. Mi segnalava "End With" senza With. Ho commentato l'End With incriminato e la routine sembrava funzionare fino alla cancellazione di tutti i dati, ma subito dopo;
2. Mi dava il messaggio "Non è possibile eseguire l'operazione in un a cella unita". E la routine si interrompe.
Non so quale sia questa operazione...
Tieni conto che ho sempre utilizzato il file che hai predisposto tu, quindi hai come verificare il perchè di questo intoppo.
Grazie molte, Sal, per la tua pazienza. Excel 2007 e 2010 |
| | Post: 7.384 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
10/10/2023 18:52 | |
Ciao le celle unite sono sempre un problema, io l'ho trovato nella stesura della macro iniziale, vuole dire che quando va a cancellare i dati un range di quello ha la cella unita, cioè avevo inserito per il mese di Febbraio la fine della cancellazione alla riga 78, non me ne ero reso conto sono andato a controllare ed ho visto che la riga 78 contiene le intestazioni di Nomi, il primo è "Paola"
Ti faccio un piccolo video per farti vedere cosa succede alla colonna "O" seleziono la colonna ma quando arrivo alla riga 78 la selezione invece di essere solamente la colonna O, come vedi selezionando Paola causa la cella unita si selezionano anche altre colonne.
importante che la macro escluso settembre non ti ha dato questo problema, quindi credo che il problema sia il mese di settembre, controlla la prima cosa se la riga 80 va a finire sui nomi, nel caso sia cosi invece di 80 metti l'ultima riga degli allievi.
potresti anche eliminare le celle unite, ma dirai poi come faccio a visualizzare il nominativo al centro delle colonne.
per farlo segui questa procedura, per prima elimina l'unione celle, poi segui l'immagine, devi andare in "Formato Celle"
fai sapere, Ciao By Sal (8-D
[Modificato da by sal 10/10/2023 18:55] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 122 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
10/10/2023 21:12 | |
Grazie Sal, ho cancellato le tabelle che si trovavano in fondo ai fogli e dove avevi trovato le celle unite (non servivano). Ma il problema si riproponeva: trovava delle celle unite.
Mi sono accorto, però, che nell'ultimo ciclo c'era un errore:
For y = 15 To 37 Step 2
With sh.Range( Cells(3, y), Cells(80, y))
.ClearContents
.ClearComments
End With
Next y
Non perchè capisca esattamente le istruzioni, ma ho intercettato quel "Cell(3,y)" e ho pensato che significasse da quale riga iniziare la selezione. E per il foglio Settembre, la prima riga dalla quale iniziare la selezione è la 7. Ho sostituito il valore e adesso mi pare funzioni. Che te ne pare, è la soluzione?
Non so come ringraziarti. Grazie Excel 2007 e 2010 |
| | Post: 7.385 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
11/10/2023 08:18 | |
Ciao Nilon, vedi che piano piano, incominci a capire dove intervenire, infatti è stato un mio errore, facendo copia/incolla non ho modificato il 3 che doveva diventare un 7 per la riga di partenza di settembre.
in effetti io invece di Range uso maggiormente Cells in quanto è molto più facile, cells funziona cosi Cell(Riga, Colonna) invece Range(Colonna, Riga) con il problema che vuole la colonna in lettere, fintanto che la colonna è sempre la stessa va bene, ma quando cambia, come la cancellazione delle colonne O e successive, ogni volta devo cambiarla ed in un ciclo non è possibile tranne che con qualche artifizio,
per cui il ciclo For y... Next fa appunto questo parte dalla colonna O che in numero è uguale a 15 e finisce alla colonna 37 con un salto di 2 "Step 2", e quindi ogni volta y diventa 15-17-19-21-etc... in questo modo cancella le colonne, oltretutto se vorrei cancellare una colonna particolare che si trova 5 colonne successive posso fare tranquillamente Cells(7, y + 5) oppure Cells( 7, "O" + 5) come vedi è molto duttile accetta anche la colonna in lettere tra apici, con Range non potrei farlo
credo che settembre partendo dalla riga 3 prendeva una cella unita ecco perche dava errore.
comunque l'importante che abbia risolto
Ciao By Sal (8-D [Modificato da by sal 11/10/2023 08:20] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 123 | Registrato il: 07/03/2008
| Città: MILANO | Età: 30 | Utente Junior | 2016 Pro Plus 2016 | | OFFLINE | |
|
11/10/2023 09:04 | |
Perfetto Sal. E grazie anche delle ultime spiegazioni. Alla prossima.🙋♂️ Excel 2007 e 2010 |
|
|