Risultati da 1 a 7 di 7

Discussione: Modificare composizione macro



  1. #1
    L'avatar di PALLAS0TTO
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    VCO
    Messaggi
    22
    Versione Office
    EXCEL 2007
    Likes ricevuti
    0
    Likes dati
    20

    Modificare composizione macro

    ciao a tutti,
    premessa: di VBA non conosco assolutamente nulla.
    però ho un problema :-)

    dopo numerosi tentativi, ho creato con excel una macro per la registrazione di una serie di dati e la successiva stampa.
    Mi sono però accorto di un problema: facendo prima la registrazione dei dati e dopo la stampa, mi sballa un valore di una unità in quanto la pagina da cui deriva la stampa ha una formula che va a contare quanti record ho gia' registrato aggiungendo poi un'unità per il preparare il record successivo.
    giusto per semplificare, se io faccio il certificato n° 10 (perchè in precedenza ne ho già registrati 9), bnel momento in cui la macro lo inserisce nell'elnco lo scrive correttamente come 10, ma a quel punto avendone già 10 nel foglio di inserimento , prima della stampa mi diventa il numero 11.
    Non posso allegare il file excel in quanto contiene una miriade di info protette dalla privacy.

    riporto il codice della macro:

    Codice: 
    Sub REGSTAMPA1305()
    '
    ' REGSTAMPA1305 Macro
    '
    
    
    '
    
    Range("C1").Select
    Selection.Copy
    Sheets("ELENCO").Select
    Selection.End(xlDown).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    ActiveCell.Offset(0, 1).Range("A1").Select
    Sheets("2016").Select
    Range("C2").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ELENCO").Select
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    ActiveCell.Offset(0, 1).Range("A1").Select
    Sheets("2016").Select
    Range("C3:C6").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ELENCO").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
    ActiveCell.Offset(0, 4).Range("A1").Select
    Sheets("2016").Select
    Range("C8:C12").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("ELENCO").Select
    Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=True
    Range("A1").Select
    Sheets("2016").Select
    Application.CutCopyMode = False
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    Range("C3").Select
    Selection.ClearContents
    End Sub
    quello che mi servirebbe è spostare la stampa prima della traslazione dei dati dal foglio di inserimento a quello di riepilogo
    Nella mia ignoranza ho provato a tagliare la seguente istruzione "ActiveWindow.SelectedSheets.PrintOut Copies:=1" e a incollarla all'inizio (prima di " Range("C1").Select), così facendo la stampa risulta corretta ma non provvede poi alla registrazione corretta dei dati dando un errore di degub.
    Quale potrebbe essere una soluzione? se non è troppo vorrei una spiegazione passo passo così da non fare poi un semplice copia e incolla della soluzione stessa ma anche capirla.
    Un'ultima cosa che non so se possa servire ma non si sa mai. l'inserimento dati e la registrazione della stessa avvengono su due fogli diversi, la stampa avviene dalla pagine di inserimento dati.

    Grazie!!!!
    Ultima modifica fatta da:ges; 07/07/16 alle 15:50 Motivo: Inserito codice nei TAG

  2. #2
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Modificare composizione macro

    Non puoi allegare un file con dati non veritieri?
    Inoltre dovresti spiegare a parole cosa intendi fare.
    Leggendo il codice si capisce un "qualcosina ma non tutto".

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di PALLAS0TTO
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    VCO
    Messaggi
    22
    Versione Office
    EXCEL 2007
    Likes ricevuti
    0
    Likes dati
    20

    Re: Modificare composizione macro

    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Non puoi allegare un file con dati non veritieri?
    Inoltre dovresti spiegare a parole cosa intendi fare.
    Leggendo il codice si capisce un "qualcosina ma non tutto".
    innanzitutto , grazie,
    ho fatto le modifiche al file e lo allego.
    In poche parole, inserisco di dati nei campi in giallo nel foglio "2016" e in automatico si autocompila tutto il resto con già l'area di stampa impostata.
    a questo punto, se clicco sul bottone (solo registrazione) la macro mi va a traslare i dati nel foglio "elenco" e questa non ha problemi.
    L'altro bottone invece "registra e stampa" è quello che mi crea un problema. Infatti la macro che ho creato (con fatica e numero di vaff enormi, sennò la rifarei da capo...), prima va a copiare i dati nel foglio "elenco" e solo dopo fa la stampa ma qui sorge il problema perchè la cella C2 conto il numero dei dati del foglio "elenco" e poi ci aggiunge un +1 per preparare all'immissione successiva, solo che provvedendo alla copia dei dati prima della stampa il "+1" me lo aggiunge già prima di stampare sballandomi quindi il valore sulla stampa
    Riassumendo la macro dovrebbe, prima stampare poi copiare. Credo si tratti solo di modificare la sequenza delle istruzioni.
    Se ci fosse una soluzione e se non chiedo troppo spiegami anche come fare a modificare la macro in un altro file (basta un copia e incolla???)
    grazie ancora
    File Allegati File Allegati

  5. #4
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Modificare composizione macro

    Io affiderei al VBA il conteggio delle righe e non alle formule
    Non capisco perchè la riga7 sia nascosta, casomai rivedo il codice.
    Comunque prova Sub registra_stampa1()

    Codice: 
    Option Explicit 'con questa riga il VBA ci obbliga a mettere tutte le varianti
    Sub registra_stampa1()
    Dim Ur, Rg  'varianti
    Application.ScreenUpdating = False 'evita il tremolio del monitor
    Ur = Sheets("ELENCO").Range("A" & Rows.Count).End(xlUp).Row + 1 'calcolo la prima riga in "ELENCO" vuota
    If Ur > 2 Then Rg = Ur Else Rg = 3  'faccio un calcolo se non c'è riga allora scrivo in riga3 oppure calcolo UR -2 (dato che hai due righe intestazioni)
    Sheets("2016").Range("C1:C6").Copy
    Sheets("ELENCO").Cells(Rg, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    Sheets("2016").Range("C8:C12").Copy
    Sheets("ELENCO").Cells(Rg, 7).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    ' Siccome non si stampa il foglio, mà solo un area definita, seleziono il nome dell'area e stampo
        Sheets("2016").Activate ' non uso Select
        Application.Goto Reference:="Print_Area"
        Selection.PrintOut Copies:=1
    ' se desideri cancellare i valori di "2016", togli la ' alla riga dopo
        'Sheets("2016").Range("C1,C2,C3,C4,C5,C6,C8,C9,C10,C11,C12") = ""
        'Sheets("2016").Range("C1,C3,C4,C5,C6,C8,C9,C10,C11,C12") = "" senza cancellare la formula in C2
    Application.ScreenUpdating = True 'rimetto il tremolio del monitor
    End Sub
    Sub registra_stampa2() 'questa se elimino la riga7
    Dim Ur, Rg  'varianti
    Application.ScreenUpdating = False 'evita il tremolio del monitor
    Ur = Sheets("ELENCO").Range("A" & Rows.Count).End(xlUp).Row + 1 'calcolo la prima riga in "ELENCO" vuota
    If Ur > 2 Then Rg = Ur Else Rg = 3  'faccio un calcolo se non c'è riga allora scrivo in riga3 oppure calcolo UR -2 (dato che hai due righe intestazioni)
    Sheets("2016").Range("C1:C11").Copy
    Sheets("ELENCO").Cells(Rg, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    ' Siccome non si stampa il foglio, mà solo un area definita, seleziono il nome dell'area e stampo
        Sheets("2016").Activate ' non uso Select
        Application.Goto Reference:="Print_Area"
        Selection.PrintOut Copies:=1
    ' se desideri cancellare i valori di "2016", togli la ' alla riga dopo
        'Sheets("2016").Range("C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C11") = ""
        'Sheets("2016").Range("C1,C3,C4,C5,C6,C7,C8,C9,C10,C11") = "" senza cancellare la formula in C2
    Application.ScreenUpdating = True 'rimetto il tremolio del monitor
    End Sub
    EDIT non considerare questa frse ---->NB con UR-2 posso sapere quale numero mettere in B
    Ultima modifica fatta da:Raffaele_53; 07/07/16 alle 17:07

  6. I seguenti utenti hanno dato un "Like"


  7. #5
    L'avatar di PALLAS0TTO
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    VCO
    Messaggi
    22
    Versione Office
    EXCEL 2007
    Likes ricevuti
    0
    Likes dati
    20

    Re: Modificare composizione macro

    Innanzitutto grazie, così funziona...
    ma...
    ho ancora qualche ma.. più una piccola cosa da migliorare...
    parto dalla piccola cosa da migliorare: nel foglio "2016" alla fine della macro il cursore dovrebbe tornare nella cella C3 e cancellare quanto scritto in modo tale da essere pronto per un nuovo inserimento.
    il ma invece riguarda questo: se inserisco la macro, così com'è nel file che ti ho allegato sopra funziona e nel foglio "elenco" mi mantiene la formattazione e nella colonna A e B mi fa anche l'incolla valori, ma se copio pari pari la macro in un altro foglio di lavoro questa operazione non me la fa. sicuramente sbaglio qualcosa io , ma non so cosa...

    P.s. la riga 7 si può tranquillamente eliminare, era un vecchio dato che poi non è piu' servito

    Grazie ancora

  8. #6
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Modificare composizione macro

    >>> la riga 7 si può tranquillamente eliminare
    se elimini la riga7 devi usare Sub registra_stampa2()

    Come scritto >>>se desideri cancellare i valori di "2016"
    Devi togliere la spunta davanti alla riga sotto, suggerisco la seconda
    'Sheets("2016").Range("C1,C3,C4,C5,C6,C7,C8,C9,C10,C11") = "" senza cancellare la formula in C2

    Di norma questo codice va in un MODULO, siccome nel codice c'è scritto da quale foglio prendere i dati e in quale foglio copiarli

    >>>se copio pari pari la macro in un altro foglio di lavoro questa operazione non me la fa
    Come sopra, il codice esegue l'operazione sui fogli
    Se vuoi far lavorare il codice in altri fogli devi cambiare il nome dei fogli. Casomai sposta un allegato dicendo dove deve lavorare

  9. I seguenti utenti hanno dato un "Like"


  10. #7
    L'avatar di PALLAS0TTO
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    VCO
    Messaggi
    22
    Versione Office
    EXCEL 2007
    Likes ricevuti
    0
    Likes dati
    20

    Re: Modificare composizione macro

    Raffaele_53, grazie ancora!!!
    Alla fine ho rifatto la macro (e dopo altri 253 errori ho capito che non era così difficile...)
    Con il visual basic mi mancano proprio e basi, anzi le fondamenta... insomma sicuramente la tua soluzione al problema era perfetta ma io non ci ho capito molto
    adesso finisco un corso di excel on line poi magari ne cerco uno di VBA.

Discussioni Simili

  1. [Risolto] Aiuto per modificare/migliorare una Macro su Excel
    Di indaco nel forum Domande su Excel VBA e MACRO
    Risposte: 52
    Ultimo Messaggio: 15/02/17, 09:35
  2. Modificare macro, Inserimento di dati piú dinamico
    Di svizzera nel forum Domande su Excel VBA e MACRO
    Risposte: 19
    Ultimo Messaggio: 31/01/17, 17:17
  3. [Risolto] Modificare variabile di ricerca in una macro
    Di giugar nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 14/10/16, 14:23
  4. Modificare macro Sorteggio
    Di roky48 nel forum Domande su Excel VBA e MACRO
    Risposte: 14
    Ultimo Messaggio: 02/05/16, 14:39
  5. macro per modificare contenuto altre macro.
    Di nessi nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 15/04/16, 16:53

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
  •