Risultati da 1 a 14 di 14

Discussione: Vba eseguibile solo dopo verifica condizione



  1. #1
    L'avatar di Šenver
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Localitą
    Vicenza
    Etą
    38
    Messaggi
    11
    Versione Office
    office2013
    Likes ricevuti
    0
    Likes dati
    0

    Vba eseguibile solo dopo verifica condizione

    Buonasera gente!
    Sono Daniele dalla provincia di Vicenza e se son quģ č per chiedere un aiutino pratico al mio problema.
    Ho realizzato diverse macro che automatizzano un processo di carico, controllo e aggiornamento dati in una tabella. Al momento avvio le macro manualmente e questo puņ portare a commettere degli errori sulla sequenza corretta di avvio (carico/controllo/aggiornamento). La sequenza ha un punto fermo in una cella che determina l'avvio del "tris" di macro corretto.
    Quindi, quello che non riesco ad inserire č proprio il controllo di questa cella, che dovrebbe inibire la macro se non si verifica la condizione.
    In pratica, se il valore della cella A1 č diverso da quello di A2, non avviare la macro.
    Ho provato : If Range("A1").Value = "A2" Then ma....

    Ringrazio anticipatamente per l'aiuto.

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Localitą
    Cosenza
    Etą
    45
    Messaggi
    2823
    Versione Office
    Excel 2013
    Likes ricevuti
    1024
    Likes dati
    983

    Re: Vba eseguibile solo dopo verifica condizione

    se ho capito bene copia questa routine nel modulo di classe del Foglio:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
        If Range("a1") = Range("a2") Then
            'AVVIA MACRO
        End If
    End If
    End Sub
    Visto che sei nuovo del Forum, č gradita una presentazione QUI, ti consiglio anche di leggerti il “Regolamento” e di visitare la sezione “Annunci dello staff”,

  3. #3
    L'avatar di Šenver
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Localitą
    Vicenza
    Etą
    38
    Messaggi
    11
    Versione Office
    office2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Vba eseguibile solo dopo verifica condizione

    Eccomi... dopo qualche tentativo, ho capito di non essere sulla retta via.

    Codice: 
    Sub NUOVO_INSERIMENTO()
    '
    ' NUOVO_INSERIMENTO Macro
    '
    Range("DF3:DH30").Select
    Selection.Copy
    Range("BN1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
    Application.CutCopyMode = False
    End Sub
    questa č la mia macro elementare che vorrei condizionare.
    Ho provato ad inserire la routine nel modulo ma non ha funzionato.
    Ultima modifica fatta da:ges; 09/09/16 alle 01:59 Motivo: Inserito codice tra i TAG

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Localitą
    Como
    Etą
    53
    Messaggi
    7166
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2066
    Likes dati
    1305

    Re: Vba eseguibile solo dopo verifica condizione

    Nel Foglio devi inserire il codice di Rubik, richiamando la tua macro, cosģ:
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A2")) Is Nothing Then
        If Range("A1") = Range("A2") Then
            NUOVO_INSERIMENTO
        End If
    End If
    End Sub
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se puņ sembrare improbabile, non puņ che essere quella giusta!

  5. #5
    L'avatar di Šenver
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Localitą
    Vicenza
    Etą
    38
    Messaggi
    11
    Versione Office
    office2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Vba eseguibile solo dopo verifica condizione

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("BL1:CX1")) Is Nothing Then
        If Range("BL1") = Range("CX1") Then
            NUOVO_INSERIMENTO
        End If
    End If
    End Sub
    ...per esigenze di spazio, ho spostato le celle di riferimento, quindi ho riadattato il modulo, sbagliando qualcosa... o tutto.
    Le celle sono BL1 e CX1.
    Ultima modifica fatta da:Rubik72; 09/09/16 alle 16:05

  6. #6
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Localitą
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55

    Re: Vba eseguibile solo dopo verifica condizione

    Il codice funziona, probabilmente l'hai solo riportato male, va tutto nel modulo del foglio.

    Perņ, visto che la macro a sua volta modifica delle celle, bisogna ricordarsi di gestire anche:

    Application.EnableEvents = False / True

  7. #7
    L'avatar di Šenver
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Localitą
    Vicenza
    Etą
    38
    Messaggi
    11
    Versione Office
    office2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Vba eseguibile solo dopo verifica condizione

    Buonasera.
    Perdonate la mia totale incapacitą, ma non va.
    Ho inserito la macro (che si attiva tramite pulsante):

    Codice: 
    Sub NUOVO_INSERIMENTO()
    '
    ' NUOVO_INSERIMENTO Macro
    '
    Range("DF3:DH30").Select
    Selection.Copy
    Range("BN1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=True
    Application.CutCopyMode = False
    End Sub
    Ho aggiunto nel modulo di classe del foglio:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("BL1:CX1")) Is Nothing Then
        If Range("BL1") = Range("CX1") Then
            NUOVO_INSERIMENTO
        End If
    End If
    End Sub
    Bene, quindi la macro non dovrebbe funzionare se BL1 č diverso da CX1. Invece, esegue comunque l'operazione.
    Grazie per la vostra pazienza
    Ultima modifica fatta da:Rubik72; 09/09/16 alle 22:29

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Localitą
    Cosenza
    Etą
    45
    Messaggi
    2823
    Versione Office
    Excel 2013
    Likes ricevuti
    1024
    Likes dati
    983

    Re: Vba eseguibile solo dopo verifica condizione

    Citazione Originariamente Scritto da Šenver Visualizza Messaggio
    [...]

    Bene, quindi la macro non dovrebbe funzionare se BL1 č diverso da CX1. Invece, esegue comunque l'operazione.
    [...]
    Evidentemente sono uguali. Controlla variando i valori in BL1 e CX1

    P.S. Per una migliore leggibilitą, inserisci il codice nei relativi TAG [CODE], questa volta l'ho fatto io.

  9. #9
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Localitą
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55

    Re: Vba eseguibile solo dopo verifica condizione

    Ripeto, il codice funziona. Non serve agganciare la macro ad un pulsante, č un "Worksheet_Change"; nel momento in cui vengono cambiati i valori di BL1 e CX1 si attiva automaticamente la macro e se le due celle sono uguali viene poi di conseguenza eseguita la macro "NUOVO_INSERIMENTO".
    Forse se dici qualcosa in pił sul tipo di dati che vengono inseriti in BL1 e CX1, o meglio ancora, se alleghi un file che riporti l'esatta struttura/disposizione dei tuoi dati (senza dati sensibili) si potrebbe capire perché a te (forse) non funziona.
    Codice: 
    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    
        If Not Intersect(Target, Range("BL1,CX1")) Is Nothing Then
            If Range("BL1") = Range("CX1") Then
                Application.EnableEvents = False
                NUOVO_INSERIMENTO
                Application.EnableEvents = True
            End If
        End If
        
    End Sub
    
    Sub NUOVO_INSERIMENTO()
    '
    ' NUOVO_INSERIMENTO Macro
    '
        Range("DF3:DH30").Copy      'tolto Select/Selection in quanto inutile
        Range("BN1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                 SkipBlanks:=False, Transpose:=True     'tolto Select/Selection
        Application.CutCopyMode = False
        
    End Sub

  10. #10
    L'avatar di Šenver
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Localitą
    Vicenza
    Etą
    38
    Messaggi
    11
    Versione Office
    office2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Vba eseguibile solo dopo verifica condizione

    Proviamo cosi :)
    File Allegati File Allegati

  11. #11
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Localitą
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55

    Re: Vba eseguibile solo dopo verifica condizione

    Basta eliminare quanto utile al "Worksheet_Change" ed unire i codici delle due macro ed associare quest'ultima al pulsante.
    Codice: 
    Option Explicit
    
    Sub NUOVO_INSERIMENTO()
    '
    ' NUOVO_INSERIMENTO Macro
    '
        If Range("D1") = Range("R2") Then
            Range("P1:T1").Copy
            Range("E1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
                     SkipBlanks:=False, Transpose:=True
            Application.CutCopyMode = False
        Else
            MsgBox "dati diversi"
        End If
        
    End Sub

  12. #12
    L'avatar di Šenver
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Localitą
    Vicenza
    Etą
    38
    Messaggi
    11
    Versione Office
    office2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Vba eseguibile solo dopo verifica condizione

    Davvero GRAZIEEEEEEEEEEEEEEEE!! Funziona perfettamente.
    Probabilmente avevo espresso male il quesito sin dall'inizio. Continuerņ a seguirvi costantemente, magari per porvi altri rompicapo

  13. #13
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Localitą
    Cordenons
    Messaggi
    821
    Versione Office
    2016 64bit
    Likes ricevuti
    149
    Likes dati
    55

    Re: Vba eseguibile solo dopo verifica condizione

    Allora devi ringraziare di pił chi all'inizio ha cercato di aiutare andando solo ad intuito ... io mi sono limitato a rielaborare quanto trovato gią fatto ed un file (fondamentale) su cui verificare .

  14. #14
    L'avatar di Šenver
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Localitą
    Vicenza
    Etą
    38
    Messaggi
    11
    Versione Office
    office2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Vba eseguibile solo dopo verifica condizione

    Hai ragione rollis13, diciamo che senza il file d'esempio avremmo continuato ancora a lungo. Oltre all'insesperienza nel trovare soluzioni, ho anche posto male la domanda. Sono un genio!
    ...quindi ancora grazie ges e Rubik72

Discussioni Simili

  1. [Risolto] Copiare in un altro foglio celle di una riga se si verifica una condizione
    Di sowhatt nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 03/03/17, 14:05
  2. Risposte: 2
    Ultimo Messaggio: 28/02/17, 21:47
  3. Eseguire una macro quando si verifica una condizione
    Di daviluc nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 01/10/16, 20:37
  4. [Risolto] conta se....... solo a una condizione
    Di nick0573 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 17/10/15, 09:03

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
  •