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

Errore esecuzione macro

Ultimo Aggiornamento: 11/10/2023 09:04
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
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 2 | 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 23:54. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com