Macro biricchina



  • Macro biricchina
    di ERMES.MAZ data: 10/12/2014 17:32:01

    Più che macro biricchina sono io tardo

    Ho creato una macro che mi va a cancellare alcuni dati prima di inviarmi la stampa e poi va a ripristinarli.

    Il problema è che ogni volta che mi fa l'operazione torno sul foglio 4 quello che ho usato per registrare la macro... Io invece vorrei che alla fine mi restasse nel foglio dove lancio la stampa...

    Mi potete aiutare???

    Grazie a tutti
     
    Sub STAMP_1()
    Range("R10:S11").Select
        ActiveCell.FormulaR1C1 = "NOTE"
        Range("R11:S11").Select
        Selection.ClearContents
        Range("R13:S13").Select
        Selection.ClearContents
        Range("R17:S34").Select
        Selection.ClearContents
        Range("Q36").Select
        Selection.ClearContents
        Range("R36").Select
        Selection.ClearContents
        Range("S36").Select
        Selection.ClearContents
        Range("R40:S46").Select
        Selection.ClearContents
        Range("S48").Select
        Selection.ClearContents
        Range("R48").Select
        Selection.ClearContents
        Range("Q48").Select
        Selection.ClearContents
        Range("F5:R6").Select
        ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
            IgnorePrintAreas:=False
        Sheets("3").Select
        Range("R10:S48").Select
        Selection.Copy
        Sheets(" 4").Select
        Range("R10:S10").Select
        ActiveSheet.Paste
        Range("R13:S48").Select
        Sheets("3").Select
        Range("Q36").Select
        Application.CutCopyMode = False
        Selection.Copy
        Sheets(" 4").Select
        Range("Q36").Select
        ActiveSheet.Paste
        Range("Q48").Select
        ActiveSheet.Paste
        Range("F5:R6").Select
        Application.CutCopyMode = False
    End Sub



  • di lepat (utente non iscritto) data: 10/12/2014 17:55:59

    è il difetto del registratore, prova così
     
    Sub STAMP_1()
    Range("R10:S11").FormulaR1C1 = "NOTE"
        Range("R11:S11").ClearContents
        Range("R13:S13").ClearContents
        Range("R17:S34").ClearContents
        Range("Q36").ClearContents
        Range("R36").ClearContents
        Range("S36").ClearContents
        Range("R40:S46").ClearContents
        Range("S48").ClearContents
        Range("R48").ClearContents
        Range("Q48").ClearContents
        ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
            IgnorePrintAreas:=False
        Range("R10:S48").Copy    Sheets(" 4"). Range("R10")
        Range("Q36").Copy   Sheets(" 4").Range("Q36")
        Application.CutCopyMode = False
    End Sub



  • di lepat (utente non iscritto) data: 10/12/2014 17:59:01

    si può ridurre ancora
     
    Sub STAMP_1()
    Range("R10:S11").FormulaR1C1 = "NOTE"
        Range("R11:S11").ClearContents
        Range("R13:S13").ClearContents
        Range("R17:S34").ClearContents
        Range("Q36:S36").ClearContents
        Range("R40:S46").ClearContents
        Range("Q48:S48").ClearContents
        ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
            IgnorePrintAreas:=False
        Range("R10:S48").Copy    Sheets(" 4"). Range("R10")
        Range("Q36").Copy   Sheets(" 4").Range("Q36")
    End Sub



  • di ERMES.MAZ data: 10/12/2014 18:27:40

    Ciao Lepat

    Ho privato entrambe le combinazioni...

    Mi cancella le celle.... Stampa.... Ma poi non mi va a ripristinare ciò che ha cancellato

    In compenso resta nella pagina attiva



  • di lepat (utente non iscritto) data: 10/12/2014 18:40:11

    descrivimi bene cosa deve fare la macro, senza vedere il file è difficile capire



  • di ERMES.MAZ data: 10/12/2014 18:59:47

    Praticamente mi deve stampare la pagina che ho attiva ma prima stamparla deve cancellare le celle da R10 a S48 poi cancellare Q36 e Q48. Nelle celle R10:S10 deve scrivere NOTE.
    Una volta stampato il file, deve ripristinare tutte le celle come con i dati iniziali.
    Può copiarli dal foglio che lo precede in quanto è uguale.

    Spero di esser stato chiaro



  • di ERMES.MAZ data: 10/12/2014 19:02:29

    La macro che ho fatto io fa tutto ma se sono nel foglio 5 o 6 o 7, avviando la macro stampa giusto, ripristina giusto ma va sul foglio 4.

    La tua modificata cancella tutto, stampa, resta nel foglio selezionato ma non ripristina i dati



  • di Mister_x (utente non iscritto) data: 11/12/2014 00:31:09

    ciao

    perche' non usi il trucco di cambiare il colore al font???
    senza fare giri di copiaincolla

    ciao
     
    Sub STAMP_1()
    Dim nota1, nota2 As Variant
    nota1 = Range("R10")
    nota2 = Range("S10")
        Range("R11:S48").Font.ColorIndex = 2
        Range("Q36:Q48").Font.ColorIndex = 2
        Range("R10:S10").FormulaR1C1 = "NOTE"
       
        ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
            IgnorePrintAreas:=False
        
       Range("R10") = nota1
       Range("S10") = nota2
    Range("R11:S48").Font.ColorIndex = xlAutomatic
    Range("Q36:Q48").Font.ColorIndex = xlAutomatic
    End Sub
    
    






  • di ERMES.MAZ data: 11/12/2014 00:51:28

    Ci avevo pensato ma nelle delle in questione vi è una formazzazione automatica e non mi cambia il colore



  • di ERMES.MAZ data: 11/12/2014 11:51:11

    La macro da me postata va benissimo... Potrei anche tenerla cosi...

    Vorrei solo ovviare al problema che mi torna sempre al foglio 4 quando lancio la stampa.

    Se sono al foglio 5, 6, 7, ecc... Vorrei che restasse su quei fogli



  • di lepat (utente non iscritto) data: 11/12/2014 12:47:01

    se ti basta questo inizia la sub con

    set sh = activesheet

    e termina con

    sh.select



  • di ERMES.MAZ data: 11/12/2014 13:21:51

    Grazie mille Lepat...



    Ora è perfrtta!!!



  • di ERMES.MAZ data: 11/12/2014 13:22:22

    Ho dimenticato la spunta



  • di Mister_x (utente non iscritto) data: 12/12/2014 09:39:18

    ciao ermes.naz

    un'altra alternativa alla tua Sub() per non stampare i dati di quelle celle

    ciao
     
    Sub STAMP_1()
    Dim nota1, nota2 As Variant
    nota1 = Range("R10")
    nota2 = Range("S10")
        Range("R11:S48").NumberFormat = """"""
        Range("Q36:Q48").NumberFormat = """"""
        Range("R10:S10").FormulaR1C1 = "NOTE"
       
        ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
          IgnorePrintAreas:=False
        
       Range("R10") = nota1
       Range("S10") = nota2
    Range("R11:S48").NumberFormat = "General"
    Range("Q36:Q48").NumberFormat = "General"
    End Sub






  • di lepat (utente non iscritto) data: 12/12/2014 13:07:01

    Ottima soluzione !!!



  • di Mister_x (utente non iscritto) data: 12/12/2014 15:46:49

    ciao lepad

    era la prima cosa che mi era venuta in mente questa mattina
    guardando bene la soluzione si puo' ancora migliorare sfruttando la formattazione delle celle
    si intende che io ho messo "General" ma si puo' rimettere la formattazione originale

    allego la sub()

    ciao
     
    Sub STAMP_1()
    Range("R11:S48").NumberFormat = """"""
    Range("Q36:Q48").NumberFormat = """"""
    Range("R10:S10").NumberFormat = """NOTE"""
       
        ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _
          IgnorePrintAreas:=False
          
    Range("R11:S48").NumberFormat = "General"
    Range("Q36:Q48").NumberFormat = "General"
    Range("R10:S10").NumberFormat = "General"
    End Sub