Risultati da 1 a 9 di 9

Discussione: Evitare di eseguire una Macro se una cella è vuota



  1. #1
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Evitare di eseguire una Macro se una cella è vuota

    Ciao a tutti ragazzi
    Oltre ad imparare un po di VBA ho la necessità di completare un progetto per il mio lavoro
    Vado al sodo e sarò più sintetico possibilile perchè tra poco gioca l'italia
    Nel Foglio "DataEntry" inserisco dei dati attraverso una CmboBox e le formule pensano a auto compltare ed infine con un pulsante eseguo una macro che mi permette di archiviare tutti i dati nel foglio "Mensile"
    La macro funziona alla grande per cui non vorrei dei grossi stravolgimenti..mi servirebbe semplicemente una parte di codice (credo un if statment) che non mi faccia eseguire la macro se la cella D9 è vuota e non abbia un valore numerico, tutto questo per preservare altri colleghi dal compiere errori
    Grazie a tutti

    PS La password è 123

    Codice: 
    Sub Copia()
    
    
    
    
    
    Application.ScreenUpdating = False
       
        Sheets("DataEntry").Range("D5:D10").Copy
        Sheets("Mensile").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=True
        Sheets("DataEntry").Range("f7").ClearContents
        Sheets("DataEntry").Range("D9").ClearContents
        Application.CutCopyMode = False
        Sheets("DataEntry").Range("D9").Select
        MsgBox "Dati Inseriti Correttamente", vbInformation, "Avviso di Archiviazione Dati"
        
    Application.ScreenUpdating = True
          
        
    End Sub
    File Allegati File Allegati

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota

    Ciao Gerardo,
    per la cella D9 stai già utilizzando il "convalida dati" per far inserire solamente dei numeri, quindi direi che quella condizione è già a posto.
    Nel caso volessi usare solo il vba, potresti usare l'If in questo modo:

    Codice: 
    if IsNumeric(Range("D9").Value) = True Then
    
    '.....tuo codice
    
    End If
    Per verificare che non sia vuota:

    Codice: 
    Sub Copia()
    
    
    If Range("D9").Value <> "" Then
        
    '...tuo codice....
    
    
    End If
    
    End Sub
    Non ho il tempo di provare ma dovrebbe andare.

    Ciao
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota

    Grazie Tore
    per cui come posso modificare questa macro



    ----------Post unito in automatico----------


    EDIT


    Ciao Tore, ho inserito il tuo codice solo che adesso sarebbe da sistemare anche il Msgbox, perchè mi dice "dati Inseriti Correttamente" mentre bisognerebbe creare un'altro MsgBox in caso in cui cella D9 è vuota e dica "Attenzione scrivere quantità"!!


    Codice: 
    Sub Copia()
    
    Application.ScreenUpdating = False
       If Range("D9").Value <> "" Then
        Sheets("DataEntry").Range("D5:D10").Copy
        Sheets("Mensile").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=True
        Sheets("DataEntry").Range("f7").ClearContents
        Sheets("DataEntry").Range("D9").ClearContents
        Application.CutCopyMode = False
        Sheets("DataEntry").Range("D9").Select
        End If
        MsgBox "Dati Inseriti Correttamente", vbInformation, "Avviso di Archiviazione Dati"
        
    Application.ScreenUpdating = True
          
        
    End Sub
    Ok funziona
    PS Quando leggo i codici li trovo comprensibili, solo che non sono capace a scriverli

    Grazie di nuovo

  5. #4
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota

    Buona sera, Gerardo;
    consentimi un caro saluto a @ cromagno.

    Per il Tuo Codice, mi sono permesso di aggiungere la Condizione > 0

    Codice: 
    Option Explicit
    
    Sub Copia()
        If Cells(9, 4).Value = "" Or Cells(9, 4).Value = 0 Then
            MsgBox "Attenzione scrivere quantità > 0", vbInformation, "Errore inserimento Dati"
                End
        End If
    Application.ScreenUpdating = False
        Sheets("DataEntry").Range("D5:D10").Copy
        Sheets("Mensile").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=True
        Sheets("DataEntry").Range("f7").ClearContents
        Sheets("DataEntry").Range("D9").ClearContents
        Application.CutCopyMode = False
        Sheets("DataEntry").Range("D9").Select
        MsgBox "Dati Inseriti Correttamente", vbInformation, "Avviso di Archiviazione Dati"
    Application.ScreenUpdating = True
    End Sub
    La dichiarazione Option Explicit, non è indispensabile, ma, è sempre opportuno inserrla; vincola la dichiarazione di tutte le Variabili. Poi, vedi Tu.



    A disposizione.

    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  6. I seguenti utenti hanno dato un "Like"


  7. #5
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota

    Ciao Giuseppe

    La tua macro risponde esattamente alla mia richiesta, fantastico!!!
    Codice: 
    Sub Copia() 
    
    
       If Cells(9, 4).Value = "" Or Cells(9, 4).Value = 0 Then
            MsgBox "Attenzione scrivere la Quantità", vbCritical, "Errore inserimento Dati"
                End
        End If
             Application.ScreenUpdating = False
             Sheets("DataEntry").Range("D5:D10").Copy
             Sheets("Mensile").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial                      Paste:=xlPasteValues, Transpose:=True
             Sheets("DataEntry").Range("f7").ClearContents
             Sheets("DataEntry").Range("D9").ClearContents
             Application.CutCopyMode = False
             Sheets("DataEntry").Range("D9").Select
             MsgBox "Dati Inseriti Correttamente", vbInformation, "Avviso di Archiviazione Dati"
             Application.ScreenUpdating = True 
    
    
    End Sub
    Ho solo cambiato il tipo di messaggio (vedi in rosso)
    Per adesso mi sembra perfetto
    grazie a tutti e io ho RISOLTO

  8. #6
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota

    Ma esiste ancora l' istruzione END ?

    e si che in italiano suona tanto bene:

    Codice: 
    SE è vero che non c'è più latte ALLORA
          vanne a comperare
    ALTRIMENTI
          scaldane un pò e, con il nesquic, fatti una zuppetta di macine.
    FINE
    Codice: 
    Sub Copia()
        If Cells(9, 4).Value = "" Or Cells(9, 4).Value = 0 Then
            MsgBox "Attenzione scrivere quantità > 0", vbInformation, "Errore inserimento Dati"
        Else
            Application.ScreenUpdating = False
                Sheets("DataEntry").Range("D5:D10").Copy
                Sheets("Mensile").Range("A" & Rows.Count).End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Transpose:=True
                Sheets("DataEntry").Range("f7").ClearContents
                Sheets("DataEntry").Range("D9").ClearContents
                Application.CutCopyMode = False
                Sheets("DataEntry").Range("D9").Select
                MsgBox "Dati Inseriti Correttamente", vbInformation, "Avviso di Archiviazione Dati"
            Application.ScreenUpdating = True
        End If
    End Sub

  9. #7
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota

    Buona sera, Dracoscrigno;
    Ti leggo sempre molto volentieri.
    Citazione Originariamente Scritto da dracoscrigno Visualizza Messaggio
    Ma esiste ancora l' istruzione END ?

    e si che in italiano suona tanto bene:
    La mia scelta è stata dettata al "massimo risparmio!":
    - End = Tre Caratteri
    - Else = Quattro caratteri !!!

    Sai, di questi tempi, il risparmio è fondamentale!


    P.s. Come informatico non sono un granchè, ma come barzelletiere ...




    A disposizione.

    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

  10. #8
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota


  11. #9

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923

    Re: Evitare di eseguire una Macro se una cella è vuota e vuota

    Ciao a tutti,

    scusa Gerardo se ieri non ho più risposto, ma come hai detto c'era l'Italia e pur non essendo un appassionato di calcio.... l'Italia è sempre l'Italia

    @GiuseppeMN
    anche se saltuariamente, mi fa piacere vedere che hai ricominciato a scrivere su questo forum

    Ciao
    Tore

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

Discussioni Simili

  1. Macro Copiare dati da un foglio ad un altro alla prima cella utile (vuota)
    Di Spaginato nel forum Domande su Excel VBA e MACRO
    Risposte: 33
    Ultimo Messaggio: 27/02/17, 20:24
  2. [Risolto] Copiare cella sottostante ed evitare inserimenti doppi
    Di G.Bove nel forum Domande su Excel VBA e MACRO
    Risposte: 16
    Ultimo Messaggio: 04/01/17, 20:31
  3. [Risolto] Eliminare i duplicati lasciando la cella vuota
    Di Samuela nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 14/11/16, 16:09
  4. cambio dicitura cella se altra cella non vuota
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 01/07/16, 15:54
  5. Eseguire macro solo e se è stata eseguita un'altra macro in precedenza
    Di micheledag nel forum Domande su Excel VBA e MACRO
    Risposte: 13
    Ultimo Messaggio: 05/03/16, 13:09

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •