Condividi:        

Controlla se la trovi ... se non la trovi dammi un alert

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

Controlla se la trovi ... se non la trovi dammi un alert

Postdi scanacc » 14/10/21 17:31

Adesso se inserisco il nome giusto nella cella 1,1 funziona tutto ma vorrei venisse fuori un messaggio nel caso in cui nella cella 1,1 sbagliassi qualcosa. Adesso infatti ovviamente mi da debug
Chi mi da una mano?
Grazie

Codice: Seleziona tutto
Sub PASQUINELLI_Apro_copio_chiudo()

'
' Macro1 Macro
'
    Application.ScreenUpdating = False
    Dim rng As Range, bk As Workbook


    ' Apro il foglio il cui nome è indicato nella cella H1
    Set rng = Worksheets("STRINGA PASQUINELLI").Cells(1, 1)
    If (Trim(rng.Value) <> "") Then
        Set bk = Workbooks.Open("C:\NEXT GENERATION\STRINGHE\" & rng.Value)


    Range("A2:BA50").Select
    Selection.Copy


    ThisWorkbook.Activate

   
    'APRO STRINGA PASQUINELLI
    Sheets("RM").Select
    Sheets("STRINGA PASQUINELLI").Visible = True

    Sheets("STRINGA PASQUINELLI").Select
    Range("A2").Select
    ActiveSheet.Paste
    Range("A1").Select
   
    'CHIUDO STRINGA PASQUINELLI
    Sheets("STRINGA PASQUINELLI").Select
    ActiveWindow.SelectedSheets.Visible = False
   
    Application.DisplayAlerts = False
    bk.Close SaveChanges:=False

    End If
    Application.ScreenUpdating = True
'
End Sub
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Sponsor
 

Re: Controlla se la trovi ... se non la trovi dammi un alert

Postdi Anthony47 » 14/10/21 20:17

Insomma vorresti un messaggio per gestire l'errore di apertura del file?

Il modo piu' spiccio e' tramite la gestione con On Error:
Codice: Seleziona tutto
    If (Trim(Rng.Value) <> "") Then
        On Error Resume Next
            Set bk = Workbooks.Open("C:\NEXT GENERATION\STRINGHE\" & Rng.Value)
        If bk.Name = ThisWorkbook.Name Then
            MsgBox ("Errore nell'apertura del file:" & vbCrLf _
              & "C:\NEXT GENERATION\STRINGHE\" & Rng.Value & vbCrLf _
              & "L'operazione viene abortita")
        End If
        On Error GoTo 0
        Range("A2:BA50").Select
        'il codice continua

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Controlla se la trovi ... se non la trovi dammi un alert

Postdi scanacc » 15/10/21 18:02

L'alert viene fuori correttamente ma quando clicco su OK per chiuderlo viene un debug che evidenzia in giallo questa parte di macro
Codice: Seleziona tutto
bk.Close SaveChanges:=False

:cry: :cry: :cry:
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30

Re: Controlla se la trovi ... se non la trovi dammi un alert

Postdi Anthony47 » 15/10/21 18:21

[usando il codice che hai suggerito] L'alert viene fuori correttamente ma quando clicco su OK per chiuderlo viene un debug che evidenzia in giallo questa parte di macro
[....]

E ci credo... Manca una istruzione!
Codice: Seleziona tutto
        If bk.Name = ThisWorkbook.Name Then
            MsgBox ("Errore nell'apertura del file:" & vbCrLf _
              & "C:\NEXT GENERATION\STRINGHE\" & Rng.Value & vbCrLf _
              & "L'operazione viene abortita")
            Exit Sub                                             '<<< Mancava!
        End If

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

Re: Controlla se la trovi ... se non la trovi dammi un alert

Postdi scanacc » 16/10/21 09:26

Grazie Anthony!!! :) :) :)
scanacc
Utente Senior
 
Post: 350
Iscritto il: 06/12/15 10:30


Torna a Applicazioni Office Windows


Topic correlati a "Controlla se la trovi ... se non la trovi dammi un alert":


Chi c’è in linea

Visitano il forum: Nessuno e 95 ospiti