Risultati da 1 a 15 di 15

Discussione: Cancellare il codice dei UserForm



  1. #1
    L'avatar di Pacifico437
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Bari
    Età
    79
    Messaggi
    193
    Versione Office
    Office 2010
    Mi Piace ricevuti
    0
    Mi Piace dati
    2

    Cancellare il codice dei UserForm

    Gent.mi,


    ho inserito il seguente codice:


    > ThisWorkbook.Close False


    che cancella i fogli di lavoro e gradirei gentilmente un codice che mi cancellasse i codici nelle varie UserForm e dei moduli.


    Ringrazio.
    Domenico

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    1578
    Versione Office
    Excel2007
    Mi Piace ricevuti
    401
    Mi Piace dati
    100

    Re: Cancellare il codice dei UserForm

    Ciao Domenico
    sai che non ho capito cosa vuoi dire? Quel codice (suppongo inserito in ThisWorkbook) veramente cancella qualcosa?

    Puoi cercare di essere più chiaro?. Grazie. Ciao,
    Mario

  3. #3
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    673
    Versione Office
    2010
    Mi Piace ricevuti
    89
    Mi Piace dati
    1

    Re: Cancellare il codice dei UserForm

    è semplice, basta salvare con estensione xlsx

  4. #4
    L'avatar di Pacifico437
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Bari
    Età
    79
    Messaggi
    193
    Versione Office
    Office 2010
    Mi Piace ricevuti
    0
    Mi Piace dati
    2

    Re: Cancellare il codice dei UserForm

    Gent.mi Marius44 e Patel,


    ringrazio, il codice usato l'ho inserito al pulsante "Chiudi":


    Codice: 
    UnLoad me
    ThisWorkbook.Close False

    in questo modo ho la chiusura del programma e la Cancellazione/Eliminazione di tutti i
    fogli di lavoro rimanendo solo un foglio di lavoro "Bianco, senza griglia".
    Se si clicca sulle UserForm, si ha una finestra "Memoria esaurita" ed i codici sono
    visibili.
    Gradirei un codice per la cacellazione o la eliminazione dei codici sia nelle UserForm che
    nei Moduli.
    In rete ho trovato con esito negativo


    Codice: 
    Dim VBComp As VBComponent
    Dim VBComp As Integer
    Set VBComp = ThisWorkbook.VBProject.VBComponents("modulo1")
    ThisWorkbook.VBProject.VBComponents.Remove VBComp
    Domenico.
    Ultima modifica fatta da:Rubik72; 08/10/16 alle 15:28

  5. #5
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    40
    Messaggi
    739
    Versione Office
    office pro 2010
    Mi Piace ricevuti
    184
    Mi Piace dati
    111

    Re: Cancellare il codice dei UserForm

    pacifico. cos hai mangiato oggi?

    pane marmella e scossa


    in quale astruso contesto ti è tanto utile salvare un file senza macrosenza passare per un più semplice modo come quello descritto da patel?

    comunque grazie.
    hai pubblicato un paio di cose che non riuscivo più a trovare ;)

  6. #6
    L'avatar di Pacifico437
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Bari
    Età
    79
    Messaggi
    193
    Versione Office
    Office 2010
    Mi Piace ricevuti
    0
    Mi Piace dati
    2

    Re: Cancellare il codice dei UserForm

    Buongiorno Dracoscrigno,


    ringrazio della gentilezza, per pura curiosità la marmellata non è di mio gradimento, ho
    pranzato fave con cipolla e crostini in padella.
    Mi è sfuggito nel precedente post, che ho provato di salvare in XLSX come suggerito da
    Patel ed ho avuto problema nel riaprire.
    Tempo fa prelevai dalla rete un programmino che non riesco a trovarlo che alla chiusura,
    cancellavano sia i fogli di lavoro che le UserForm con i relativi moduli e ricordo che era
    protetto per non far vedere i vari codici.


    Con simpatia saluto.
    Domenico.

  7. #7
    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    2518
    Versione Office
    2007 - 2013
    Mi Piace ricevuti
    351
    Mi Piace dati
    51

    Re: Cancellare il codice dei UserForm

    Ciao Domenico ed un saluto a Draco, Marius44 e Patel.

    Ti posto l'esempio di due macro: la prima effettua la cancellazione dei moduli 2 e 3 dall'editor di VBA; la seconda ti rimuove la Userform1.

    E' chiaro che il codice è solo uno spunto e se vuoi cancellare più moduli o più userform va adattato (al momento non saprei come).

    Attenzione: Affinché il codice possa funzionare è richiesta l'attivazione di questa libreria: Microsoft Visual Basic For Applications Extensibility 5.3.

    Codice: 
    Sub DeleteModule()
            Dim VBProj As VBIDE.VBProject
            Dim VBComp As VBIDE.VBComponent
            Dim i As Integer
            Set VBProj = ActiveWorkbook.VBProject
            For i = 2 To 3
            Set VBComp = VBProj.VBComponents("Modulo" & i)
            VBProj.VBComponents.Remove VBComp
            Next i
        End Sub
    Codice: 
    Sub DeleteUserform()
            Dim VBProj As VBIDE.VBProject
            Dim VBComp As VBIDE.VBComponent
        
            Set VBProj = ActiveWorkbook.VBProject
            Set VBComp = VBProj.VBComponents("Userform1")
            VBProj.VBComponents.Remove VBComp
        End Sub
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"
    Cit. Berna11: "Se ti piace la risposta di qualcuno, oltre a ringraziarlo, puoi cliccare su "Mi Piace" in basso a sinistra del loro messaggio."

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    44
    Messaggi
    1835
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    621
    Mi Piace dati
    582

    Re: Cancellare il codice dei UserForm

    Citazione Originariamente Scritto da Pacifico437 Visualizza Messaggio
    [...]

    > ThisWorkbook.Close False

    che cancella i fogli di lavoro e gradirei gentilmente un codice che mi cancellasse i codici nelle varie UserForm e dei moduli.

    Ringrazio.
    Domenico
    Scusate se intervengo, solo per chiarire che il comando
    Codice: 
    ThisWorkbook.Close False
    chiude il file senza salvarlo, ma fisicamente non cancella alcun foglio di lavoro.

    Oltre la procedura al post #4 che cancella l'intero Modulo si può cancellare la singola routine:
    Codice: 
    Sub DeleteModule()
    Dim VBComp As VBComponent
    Set VBComp = ThisWorkbook.VBProject.VBComponents("Modulo2")
    ThisWorkbook.VBProject.VBComponents.Remove VBComp
    End Sub
    P.S. Per funzionare la routine, bisogna caricare la libreria "Microsoft Visual Basic For Applications Extensibility 5.3" da Strumenti/Riferimenti del Visual Basic Editor

    Maggiori informazioni sul sito dell'amico "pellegrino" Ennius

  9. #9
    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    2518
    Versione Office
    2007 - 2013
    Mi Piace ricevuti
    351
    Mi Piace dati
    51

    Re: Cancellare il codice dei UserForm

    Enzo andiamo a braccetto?

    Ma se si volesse con un ciclo For Each cancellare tutti gli oggetti (moduli e userform) di un VB Project come si dovrebbe scrivere?

    Ci sto provando ma sinora non riesco.
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"
    Cit. Berna11: "Se ti piace la risposta di qualcuno, oltre a ringraziarlo, puoi cliccare su "Mi Piace" in basso a sinistra del loro messaggio."

  10. #10

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    44
    Messaggi
    1835
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    621
    Mi Piace dati
    582

    Re: Cancellare il codice dei UserForm

    Prova con questa:
    Codice: 
    Sub DeleteAllModule()
    Dim iMod As Integer
    Dim VBComp As VBComponent
    
    
    iMod = ThisWorkbook.VBProject.VBComponents.Count
    
    
    For i = 1 To iMod
        Set VBComp = ThisWorkbook.VBProject.VBComponents(i)
        Debug.Print VBComp.Name
        If InStr(1, VBComp.Name, "Modulo") Or InStr(1, VBComp.Name, "UserForm") Then
            ThisWorkbook.VBProject.VBComponents.Remove VBComp
        End If
    Next
    End Sub
    P.S. Bisogna prevenire anche la cancellazione del modulo in cui è scritta questa macro altrimenti cancellerà anche se stesso

  11. #11
    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    2518
    Versione Office
    2007 - 2013
    Mi Piace ricevuti
    351
    Mi Piace dati
    51

    Re: Cancellare il codice dei UserForm

    Grazie Enzo

    Penso che a questa, col tempo, ci sarei arrivato anch'io.

    Quindi con un ciclo For Each non è possibile farlo?
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"
    Cit. Berna11: "Se ti piace la risposta di qualcuno, oltre a ringraziarlo, puoi cliccare su "Mi Piace" in basso a sinistra del loro messaggio."

  12. #12
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    673
    Versione Office
    2010
    Mi Piace ricevuti
    89
    Mi Piace dati
    1

    Re: Cancellare il codice dei UserForm

    Citazione Originariamente Scritto da Pacifico437 Visualizza Messaggio
    > ThisWorkbook.Close False ....che cancella i fogli di lavoro
    Non è vero.
    Citazione Originariamente Scritto da Pacifico437 Visualizza Messaggio
    Mi è sfuggito nel precedente post, che ho provato di salvare in XLSX come suggerito da
    Patel ed ho avuto problema nel riaprire.
    quale problema ? come hai fattto a salvare ? sei troppo vago e dici cose inesatte

  13. #13

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    44
    Messaggi
    1835
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    621
    Mi Piace dati
    582

    Re: Cancellare il codice dei UserForm

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Grazie Enzo

    Penso che a questa, col tempo, ci sarei arrivato anch'io.

    Quindi con un ciclo For Each non è possibile farlo?
    Codice: 
    Sub DeleteAllModule_2()
    Dim VbaObj As Object
    
    
    For Each VbaObj In ThisWorkbook.VBProject.VBComponents
        If VbaObj.Type = 1 Or VbaObj.Type = 3 Then
        ' Type 3 = Userform ; Type 1 = Modulo ; Type 100 =Oggetti del progetto
            Debug.Print VbaObj.Name
            ThisWorkbook.VBProject.VBComponents.Remove VbaObj
        End If
    Next VbaObj
    End Sub

  14. #14
    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    63
    Messaggi
    2518
    Versione Office
    2007 - 2013
    Mi Piace ricevuti
    351
    Mi Piace dati
    51

    Re: Cancellare il codice dei UserForm

    Grazie Enzo ne sai una più del diavolo

    Mi spieghi perchè hai messo quel Debug.Print?

    Questa routine cancella anche il modulo ove è la macro?
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"
    Cit. Berna11: "Se ti piace la risposta di qualcuno, oltre a ringraziarlo, puoi cliccare su "Mi Piace" in basso a sinistra del loro messaggio."

  15. #15

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    44
    Messaggi
    1835
    Versione Office
    Excel 2013
    Mi Piace ricevuti
    621
    Mi Piace dati
    582

    Re: Cancellare il codice dei UserForm

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Grazie Enzo ne sai una più del diavolo

    Mi spieghi perchè hai messo quel Debug.Print?[...]
    lo uso spesso in fase di beta-test, naturalmente si può omettere

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    [...]

    Questa routine cancella anche il modulo ove è la macro?
    come ho scritto nel post #10, bisogna prevenire anche la cancellazione del modulo in cui è scritta questa macro altrimenti cancellerà anche se stesso

Discussioni Simili

  1. [Risolto] Importazione di file CSV - cancellare la connessione
    Di Ciccio nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 13/10/16, 15:23
  2. Macro per cancellare check box su più righr
    Di max72 nel forum Domande su Excel VBA e MACRO
    Risposte: 30
    Ultimo Messaggio: 13/09/16, 10:08
  3. Cancellare i fogli in eccesso
    Di Keishusan nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 08/09/16, 23:54
  4. Cancellare
    Di Irclen nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 17/07/16, 02:44
  5. test Code Tags and BB Code : testare codice Tag e codice BB
    Di Doc.AElstein nel forum Test dei vostri post
    Risposte: 8
    Ultimo Messaggio: 11/07/15, 16:15

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
  •