Macro Inserisci Riga



  • Macro Inserisci Riga
    di Jessi90 (utente non iscritto) data: 30/12/2017 19:44:08

    Ciao a tutti,sono alle prime armi con il linguaggio VBA e,dopo aver provato da sola e con l'aiuto di mio zio che è un informatico,a risolvere un problema su excel non so più dove sbattere la testa e ho deciso di iscrivermi su questo forum di discussioni sperando di trovare qualche anima pia che possa darmi una mano !Cerco di descrivere il problema nel modo più chiaro possibile.Qualche settimana fa al lavoro mi hanno chiesto di creare un foglio excel si' fatto: volevano poter inserire una elenco di prodotti chimici usando solo le ultime lettere del nome (es.XXXXX SDA) inserendo solo questa sigla finale (visto che ogni prodotto è identificato da una sigla finale diversa)in modo da velocizzare la cosa.Con l'aiuto di mio zio ho risposto parzialmente alla richiesta in questo modo:ho impostato un foglio excel con delle combobox(che sarebbero una specie di menu a tendina che magari voi conoscete meglio di me) che pescano le sigle da un altro foglio e poi,una volta scelta la sigla me la scrivono nella cella sotto(glielo ho settato io impostandogli la cella sottostante come "linkedcell" nelle proprietà della combo)e con il cerca vert mi recupera il nome completo.Il problema è nato quando mi hanno detto che in questo foglio loro a volte hanno bisogno di inserire una nuova riga (non necessariam infondo alle altre ma anche fra due righe nel mezzo) che abbia già impostate le formule e anche la tendina.Ho provato quindi a registrare una macro(con riferimenti relativi in modo che andasse bene ovunque dovessero andare a inserire) senza dover mettere mano al codice visto che non lo conosco bene e però sono riuscita solo a far inserire una nuova riga con le formule ma la tendina(o combo che sia) mi rimane agganciata alla prima da cui è stata copiata!é come se non registrasse quando entro nelle proprietà della combo e li cambio la "linkedcell"!Qualcuno più esperto di me sa darmi qualche dritta??!grazie mille in anticipo e visto il periodo Buon Anno a tutti!!



  • di mabolsie (utente non iscritto) data: 31/12/2017 11:52:53

    Se hai uno zio informatico penso che il problema sia risolto, meglio di lui.....

    Ciao Max



  • di jessi90 (utente non iscritto) data: 31/12/2017 12:15:23

    ehh purtroppo anche lui non conosce molto il visual basic quindi finchè ha potuto mi ha aiutato e ora mi ha detto di arrangiarmi :)!!



  • di patel data: 31/12/2017 12:45:01

    Impossibile aiutarti se non alleghi un file di esempio e spieghi il problema facendo riferimento a questo ed al codice che hai scritto/modificato





  • di mabolsie (utente non iscritto) data: 31/12/2017 14:09:16

    Concordo con patel.

    Ciao Max


  • prova
    di Jessi90 data: 04/01/2018 22:15:45

    scusate faccio una prova perche non riesco a inserire la risp


  • Codice VBA
    di Jessi90 data: 05/01/2018 10:53:26

    Avete ragione,trascrivo di seguito il codice della macro(che non ho scritto io direttam ma utilizzando "registra macro con riferim relativi") che mi inserisce una nuova riga copiandola da quella sopra e riportando correttamente anche le formule.il problema rimane sulla tendina (o combobox) che rimane "attaccata" alla prima tendina da cui l'ho copiata mentre io vorrei aggiornasse la linked cell in modo da dargli la cella sotto la tendina della nuova riga e non quella della vecchia.Comunque bando alle ciance ecco il codice che mi ha scritto la macro:
     
    Sub InserisciRiga_tendina ()
    
    ActiveCell.Offset(-1,0).Range("A1:J1").Select
    Selection.Copy
    ActiveCell.Offset(1,0).Range("A1").select
    Selection.Insert  Shift:=x1Down
    ActiveCell.Offset(0,2).Range("A1").Select
    Active Sheet.Shapes("Combobox3").Select
    Application.CutCopyMode = False
    Selection.Copy
    ActiveCell.Select
    ActiveSheet.Paste
    ActiveSheet.Shapes("Combobox2").Select
    Selection.Copy
    ActiveCell.Offset(0,6).Range("A1").Select
    ActiveSheet.Paste
    ActiveSheet.Shapes("Combobox4").Select
    ActiveSheet.Shapes("Combobox5").Select
    End Sub



  • di mabolsie data: 05/01/2018 14:08:41

    Ciao Jessi ca non ci potresti allegare il file o una copia senza riferimenti sensibili cosi vediamo la struttura del foglio.
    Le combobox le hai in un form o direttamente sul foglio ?

    Max



  • di Jessi90 data: 05/01/2018 14:48:17

    Ciao Max,purtroppo non ho excel sul mio computer di casa quindi ora non posso allegare il foglio però cerco di farlo in questi giorni almeno capite com'è fatto.Per quanto riguarda le combobox sono nel foglio stesso,ogni riga ha la sua combo o tendina dalla quale l'utente sceglie il prodotto da una lista che è in un altro foglio excel.Io quando ho registrato la macro sono anche andata nelle "proprietà" della combo e gli ho cambiato la linkedcell con quella della nuova riga ma se vado a eseguire la macro mi inserisce tendine che hanno come linkedcell sempre la prima!è come se quella parte la macro non me la avesse registrata!



  • di alfrimpa data: 05/01/2018 15:15:27

    Ciao Jessi

    È inutile avere tante combo una per riga.

    Ne basta una che si sposta al variare della posizione del cursore.

    Alfredo





  • di mabolsie data: 05/01/2018 18:25:47

    Aspettiamo il file.

    Ciao Max



  • di Jessi90 data: 08/01/2018 12:23:21

    Buongiorno a tutti!ho allegato un foglio excel strutturato come il mio.la macro dovrebbe inserirmi la riga con tendina nel foglio "Lavoro".fatemi sapere se adesso qualcuno riesce a darmi una mano!ciao e grazie!



  • di alfrimpa data: 08/01/2018 16:19:14

    Ciao Jessy

    Ti ho allegato il tuo file con una combo inserita ed il codice che vedi sotto.

    Provalo un po' e dimmi se era quello che volevi.

    Alfredo
     
    Private Sub ComboBox1_Change()
    ActiveCell.Value = ComboBox1.Value
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Integer
    Dim ur As Integer
    ComboBox1.Top = Target.Top
    ComboBox1.Left = Target.Left
    ComboBox1.Width = Target.Width
    ComboBox1.Height = Target.Height
    Select Case Target.Column
        Case Is = 3
        ComboBox1.Visible = True
        ComboBox1.Clear
        ur = Sheets("Prodotti").Cells(Rows.Count, "a").End(xlUp).Row
        For i = 3 To ur
            ComboBox1.AddItem Sheets("prodotti").Range("a" & i).Value
        Next i
        Case Is = 9
        ComboBox1.Visible = True
        ComboBox1.Clear
        ur = Sheets("procedura").Cells(Rows.Count, "a").End(xlUp).Row
        For i = 3 To ur
            ComboBox1.AddItem Sheets("procedura").Range("a" & i).Value
        Next i
        Case Else
        ComboBox1.Visible = False
        End Select
    End Sub
    






  • di Jessi90 data: 09/01/2018 12:36:11

    Ciao alfrimpa grazie mille per l'aiuto!cosi' a prima vista mi sembra che possa andar bene!ma come hai fatto?sarebbe una specie di combo nascosta vero?perchè su ogni riga inizialmente non la vedo ma se ci vado a cliccare sopra mi appare!la riguardo insieme al mio zio e poi ti dico meglio se è tutto ok!grazie ancora!


  • va già molto meglio :)!
    di Jessi90 data: 09/01/2018 22:11:41

    ciao Alfredo,ho guardato il foglio che mi hai allegato e già va molto meglio del mio :)!visto che sei stato cosi gentile ce la faresti a far si che nella riga che inserisco oltre alla tendina mi copiasse anche le formule dalla riga sopra(il cerca verticale sia del prodotto che delle operaz intendo)?grazie in anticipo!



  • di alfrimpa data: 10/01/2018 11:55:25

    Ciao Jessy

    Ti ho allegato nuovo file (Jessy90_1.xlsm) dove ho modificato il codice rispetto al precedente (il nuovo lo vedi sotto).

    Sul foglio "lavoro" ho eliminato tutte le formule perché il tutto è gestito con il VBA.

    Sui fogli "prodotti" e "procedura" puoi aggiungere anche altre voci (quante ne vuoi) e verranno visualizzate nella combo.

    Prova un po' il file e fammi sapere.

    Alfredo  
     
    Private Sub ComboBox1_Change()
    On Error Resume Next
    Dim ur As Long
    Dim tbl As Range
    Select Case ActiveCell.Column
        Case 3
            ur = Sheets("prodotti").Cells(Rows.Count, 1).End(xlUp).Row
            Set tbl = Sheets("prodotti").Range("a3:b" & ur)
            ActiveCell.Value = ComboBox1.Value
            ActiveCell.Offset(0, 1).Value = WorksheetFunction.VLookup(ComboBox1.Value, tbl, 2, False)
        Case 9
            ur = Sheets("procedura").Cells(Rows.Count, 1).End(xlUp).Row
            Set tbl = Sheets("procedura").Range("a3:a" & ur)
            ActiveCell.Value = ComboBox1.Value
            ActiveCell.Offset(0, 1).Value = WorksheetFunction.VLookup(ComboBox1.Value, tbl, 1, False)
    End Select
    End Sub
    
    -------------------------------------------------------------------------------------------------------------------
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim i As Integer
    Dim ur As Integer
    If Not Intersect(Target, Range("C17:C1000, I17:I1000")) Is Nothing Then
        ComboBox1.Top = ActiveCell.Top
        ComboBox1.Left = ActiveCell.Left
        ComboBox1.Width = ActiveCell.Width
        ComboBox1.Height = ActiveCell.Height
        Select Case Target.Column
            Case Is = 3
                ComboBox1.Visible = True
                ComboBox1.Clear
                ur = Sheets("Prodotti").Cells(Rows.Count, "a").End(xlUp).Row
                For i = 3 To ur
                    ComboBox1.AddItem Sheets("prodotti").Range("a" & i).Value
                Next i
            Case Is = 9
                ComboBox1.Visible = True
                ComboBox1.Clear
                ur = Sheets("procedura").Cells(Rows.Count, "a").End(xlUp).Row
                For i = 3 To ur
                    ComboBox1.AddItem Sheets("procedura").Range("a" & i).Value
                Next i
            Case Else
                ComboBox1.Visible = False
            End Select
            Else
            ComboBox1.Visible = False
    End If
    End Sub
    






  • di Jessi90 data: 10/01/2018 17:22:46

    Ciao Alfredo,grazie mille per la modifica,ora va bene!ti volevo chiedere una cosa però...stavo guardando il codice perchè se poi mi chiedono di modificare qualcosa un minimo devo aver capito :)! potresti mettermi qualche commento che mi fa capire cosa fa il codice?ad esempio in che parte gli dici di fare quello che faceva il cerca.vert?merci
    Jessica



  • di alfrimpa data: 11/01/2018 11:11:37

    Ciao Jessica e scusa il ritardo di questa risposta.

    Devo innanzitutto dire che le richieste di spiegazioni sono le domande che più mi mettono in difficoltà perchè, non conoscendo il tuo livello di conoscenza del VBA, non so che taglio dare alla risposta.

    Comunque iniziamo con la macro Sub ComboBox1_Change()

    Per prima cosa ti dico che tale macro viene eseguita quando si effettua una selezione nella combobox.

    Per il suo funzionamento abbiamo bisogno di due variabili la prima (ur) di tipo Long occorre per memorizzare l’ultima cella piena di un intervallo (che ci servirà per il cerca.vert e la seconda (tbl) di tipo Range per memorizzare la matrice per il cerca.vert.

    Questo lo facciamo con le istruzioni

    Dim ur As Long
    Dim tbl As Range

    Poi dobbiamo determinare qual è la colonna della cella attiva perché in dipendenza di questa dobbiamo impostare la variabile tbl per la ricerca del cerca.vert

    Per far questo usiamo l’enunciato Select Case

    Nel caso la colonna sia la 3 (C) determiniamo con questa istruzione (ur = Sheets("prodotti").Cells(Rows.Count, 1).End(xlUp).Row) qual è il numero di riga dell’ultima cella piena della colonna A del foglio “prodotti”.

    Con questa istruzione (Set tbl = Sheets("prodotti").Range("a3:b" & ur)) impostiamo nella variabile tbl il range del foglio “prodotti” che va da A3 sino a B ultima cella piena.

    Con questa istruzione (ActiveCell.Value = ComboBox1.Value) inseriamo nella cella attiva il valore scelto nella combobox.

    Con questa invece (ActiveCell.Offset(0, 1).Value = WorksheetFunction.VLookup(ComboBox1.Value, tbl, 2, False) inseriamo nella prima cella a destra della cella attiva il valore risultante dal cerca.vert (lato VBA)

    In VBA è possibile usare le funzioni che normalmente si usano sul foglio; nello specifico il CERCA.VERT ha lo stesso numero di argomenti.

    Con l’istruzione WorksheetFunction.VLookup(ComboBox1.Value, tbl, 2, False) andiamo sempicemente a dire di restituire il risultato di un cerca.vert utilizzando come parametro la voce scelta nella combobox sulla matrice tbl in seconda Colonna.

    Stesso discorso se la colonna della cella attiva è la 9; in tal caso la variabile ur e la matrice tbl cambiano ma il ragionamento è lo stesso.

    In verità ci sarebbero da dire tante altre cose ma forse è meglio che chiedi tu sulle cose che non riesci a capire.

    Non so se hai bisogno di chiarimenti per l’altra macro.

    Fammi sapere.

    Alfredo






  • di Jessi90 data: 11/01/2018 14:50:11

    Ciao Alfredo,grazie per la spiegazione,molto chiara!senti ma sono due macro?allora perchè se vado sul foglio lavoro,poi su "visualizza macro" non ce le trovo?Quando puoi mi spiegheresti anche la seconda?grazie mille del tuo aiuto!



  • di alfrimpa data: 12/01/2018 15:09:42

    Ciao Jessica, cercherò di spiegare nella maniera più chiara possibile.

    Innanzitutto una premessa.

    In VBA, in linea di massima, è possibile scrivere tre tipi di procedure

    • Procedure Sub (che compiono azioni)
    • Procedure Function (che restituiscono risultati)
    • Procedure Evento (che compiono azioni al verificarsi di un evento su un oggetto di Excel)

    Le sub sono le classiche macro eseguibili attraverso la Finestra macro o associandole ad un pulsante o a una forma (queste vanno inserite in un modulo standard nell’editor di VBA

    Le function sono un insieme di istruzioni che, invece di compiere azioni, restituiscono risultati in base agli argomenti che le vengono passati. Le function (una volta inserite in un modulo standard) operano come una qualsiasi funzione nativa di Excel (sono denominate anche UDF User Defined Function ossia funzioni definite dall’utente).

    Le procedure evento sono un insieme di istruzioni che vengono eseguite quando si verifica un determinato evento su un oggetto di Excel e vanno inserite nel modulo del foglio interessato, non in uno standard; è per questo che non le vedi nella Finestra macro).

    Gli oggetti sono tanti ad es. una cella, un intervallo, un foglio la cartella di lavoro etc come pure sono tanti gli eventi a questi associati come Change, SelectionChange, Activate, BeforeSave, BeforPrint etc.

    Le normali macro e function possono essere denominate come vogliamo mentre le procedure evento hanno una nomenclatura ben precisa: il loro nome è costituito da due elementi intervallati da un underscore. Quello a sinistra è il nome dell’oggetto e quello a destra è l’evento.

    Per approfondire questi argomenti ti segnalo questo link dove c’è un corso VBA molto ben fatto

    h t t p://forum.wintricks.it/showthread.php?t=155252

    Ora passiamo alla Sub Worksheet_SelectionChange(ByVal Target As Range)

    Il codice in essa contenuto viene eseguito ogni volta che cambia la posizione del cursore sul foglio.

    Se il cursore viene posizionato su una delle celle C17:C1000 e I17:I1000

    1) Viene visualizzata la combo
    2) La combo viene posizionata sulla cella attiva e ne assume le sue dimensioni
    3) In relazione alla colonna della cella attiva la combo viene popolata con i dati del foglio Elenchi

    Se invece il cursore viene posizionato al di fuori dell’intervallo predetto la combo diventa invisibile.

    Spero di essere stato chiaro e se hai domande chiedi pure ma ti invito caldamente a guardare il corso che ti ho segnalato.

    Alfredo






  • di Jessi90 data: 14/01/2018 19:28:15

    ciao a tutti!grazie mille Alfredo delle tue dritte!ho dato un occhiata anche al corso che mi hai segnalato e mi sembra fatto bene...spero con quello di migliorare un pò le mie conoscenze!Ora però il foglio di lavoro è apposto ma nell'utilizzarlo mi è venuto fuori un altro problema Oltre ai 3 fogli che ci sono nel foglio che ho allegato nel mio ce n'è un quarto (foglio "Stampa") il quale,copiando dal foglio di lavoro (ho impostato le celle in modo che copino dalle corrispondenti del foglio"lavoro")mi restituisce la stampa finale che è poi quella che gli utenti vanno a stampare(ed è quindi il foglio che deve venire bene!).Il problema nasce quando dal foglio di lavoro aggiungo o elimino una riga e in quel momento il foglio stampa mi perde i riferimenti e nelle celle mi appare la scritta #RIF. Come posso fare per evitarlo?a loro capita spesso di dover modificare dei fogli che hanno già pronti solo aggiungendoci o modificando qualcosa quindi il problema si presenterebbe spesso!grazie dell'aiuto!



  • di alfrimpa data: 14/01/2018 19:39:43

    Ciao Jessica

    Ed io come potevo saperlo?

    Allega il file con il quarto foglio e dimmi come deve essere compilato.

    Anche quest'ultimo andrà compilato con il VBA in modo che se elimini righe non hai il problema che hai citato.

    Alfredo





  • di Jessi90 data: 15/01/2018 09:57:27

    Hai ragione ma non lo avevo messo perchè pensavo che non fosse rilevante metterlo invece era meglio se lo lasciavo!vabè comunque riallego il foglio con anche il foglio di stampa.Se non avessi urgenza di consegnare il lavoro avrei provato a fare da sola ma mi stanno pressando!



  • di alfrimpa data: 15/01/2018 09:59:29

    Jessica non vedo il file con il quarto foglio.

    Alfredo





  • di Jessi90 data: 15/01/2018 11:25:33

    per ora non riesco ad allegarlo...mi dice che è andato a buon fine ma poi l'allegato non c è.....riprovo più tardi!



  • di Jessi90 data: 16/01/2018 11:24:56

    E' da ieri che provo a allegare il file ma senza successo....sapete come mai?è come se il sito non fosse attivo



  • di Jessi90 data: 16/01/2018 11:26:08

    Anzi a essere precisi è stato tolto anche un allegato perchè erano 3 e ora sono solo 2!!



  • di alfrimpa data: 16/01/2018 11:31:56

    Ciao Jessica

    Sul funzionamento del sito non so risponderti (anche se mi sembra strano)

    Anche oggi non riesci? Prova a zippare il file.

    In ogni caso prova a descrivere come deve essere costruito il quarto foglio

    Alfredo

    P.S. Ora provo ad allegare un altro file e vediamo che succede.
    Ho allegato il file e l'ha preso tranquillamente.





  • di Jessi90 data: 17/01/2018 10:08:31

    Buongiorno,ho provato a zippare il file e ora sembra che me lo abbia allegato...riesci a vederlo?



  • di alfrimpa data: 17/01/2018 11:45:17

    Si ora lo ha preso.

    Ci risentiamo.

    Alfredo





  • di Jessi90 data: 17/01/2018 12:34:45

    ok graciass



  • di alfrimpa data: 18/01/2018 10:36:29

    Ciao Jessica eccomi qua.

    Ti ho allegato un nuovo file (Jessy90_2.xlsm) dove ho inserito la macro che vedi (che credo non abbia bisogno di spiegazioni ma se vuoi chiedi pure).

    Nel file non ci sono formule ed il tutto è gestito con il VBA.

    Quando in colonna I scegli una voce dalla combo tutti i dati precedenti (che ovviamente devono essere già inseriti) verranno trasferiti sul foglio Stampa.

    Prova un po' il file e fammi sapere.

    Alfredo
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    Dim ur As Long
    ur = Sheets("Stampa").Cells(Rows.Count, 1).End(xlUp).Row
    If Not Intersect(Target, Range("J16:j1000")) Is Nothing Then
        Sheets("Stampa").Cells(ur + 1, "A").Value = Target.Offset(0, -9).Value
        Sheets("Stampa").Cells(ur + 1, "b").Value = Target.Offset(0, -8).Value
        Sheets("Stampa").Cells(ur + 1, "c").Value = Target.Offset(0, -6).Value
        Sheets("Stampa").Cells(ur + 1, "h").Value = Target.Value
    End If
    End Sub






  • di Jessi90 data: 18/01/2018 11:18:18

    Ciao Alfredo,intanto ti ringrazio del tuo aiuto...ormai ti sto tartassando!senti ho provato il foglio però la parte centrale fra le due tendine(per capirsi le colonne grigie da °c a PH se le compilo nel foglio lavoro non me le riporta sul foglio stampa! poi un altra cosa che non va è che nella colonna KG non c è più la formula che mi calcolava la percentuale prendendo dalla voce "peso" e moltiplicandomela per la % accanto.In ultimo se io cancello una riga sul foglio di lavoro sul foglio stampa rimane e non viene cancellata!se puoi potresti dirmi cosa fa la marco?perchè non capisco da dove si capisce che copia dal folio di lavoro!scusa il disturbo



  • di alfrimpa data: 18/01/2018 13:58:38

    Jessica ti ho riallegato il file (Jessy90_3.xlsm) nel quale ti ho fatto le modifiche che hai richiesto (io mi ero basato sull'esempio che avevi allegato.

    Cit. "se io cancello una riga sul foglio di lavoro sul foglio stampa rimane e non viene cancellata!"

    Questo non accade perché non c'è nessuna istruzione che lo faccia.

    Il problema, però, è individuare univocamente il record sul foglio "lavoro" per cercarlo sul foglio Stampa e cancellarlo.

    Si potrebbe inserire in teoria sul foglio "lavoro" un id numerico (sempre diverso) che identifica il record univocamente e riportare anche questo sul foglio Stampa (magari nascondendo la colonna (però in questo caso andrebbero apportate diverse modifiche al codice.

    Tu hai altre idee?

    Alfredo






  • di Jessi90 data: 18/01/2018 15:00:41

    Alfredo ho guardato l'ultimo foglio e ho visto che però il problema c è anche se vado a inserire una riga con un prodotto in mezzo a altre due perchè non mi mantiene l'ordine(se inserisco una riga ad es nel mezzo a altre due quindi in seconda posiz,nel foglio stampa me la aggiunge come ultima,in pratica non mi mantiene l'ordine che c è sul foglio di lavoro che invece deve rimanere invariato).Per il fatto dell'eliminazione della riga capisco che la faccenda è più complessa...per me l'interessante è che loro possano sia eliminare che aggiungere righe sul foglio lavoro e che il foglio stampa a quel pungo mantenga l'ordine e non perda i riferimenti!



  • di Jessi90 data: 18/01/2018 15:03:56

    Alfredo ho guardato l'ultimo foglio e ho visto che però il problema c è anche se vado a inserire una riga con un prodotto in mezzo a altre due perchè non mi mantiene l'ordine(se inserisco una riga ad es nel mezzo a altre due quindi in seconda posiz,nel foglio stampa me la aggiunge come ultima,in pratica non mi mantiene l'ordine che c è sul foglio di lavoro che invece deve rimanere invariato).Per il fatto dell'eliminazione della riga capisco che la faccenda è più complessa...per me l'interessante è che loro possano sia eliminare che aggiungere righe sul foglio lavoro e che il foglio stampa a quel pungo mantenga l'ordine e non perda i riferimenti!ah una domanda sulla macro: la parte: "=target.Offset(0,-9).Value andrebbe a copiare dal foglio di lavoro??



  • di alfrimpa data: 18/01/2018 15:40:06

    Ciao Jessica

    In Excel/VBA prima di creare un programma/applicazione (chiamalo come vuoi) per quanto semplice possa essere occorrerebbe sapere in partenza quali saranno le condizioni di utilizzo e le modalità operative altrimenti si rischia di fare del lavoro per niente.

    Sempre in Excel/VBA le modalità per raggiungere un determinato obiettivo possono essere molteplici e la scelta di una piuttosto che un'altra dipende appunto dalle modalità operative ossia come si deve usare "materialmente" Il foglio di lavoro.

    Detto questo avevo immaginato che il modo più "carino" fosse quello che via via che si compila il foglio "lavoro" automaticamente il foglio "Stampa" si compilasse anch'esso.

    Ma se tu mi dici che sul foglio "lavoro" possono essere inframmezzate/cancellate righe questo metodo non va bene.

    In alternativa potrei suggerire:

    1) Compilare il foglio "lavoro" con tutti i dati
    2) Quando si è sicuri che la compilazione è corretta e non si devono apportare ulteriori modifiche si può compilare con una macro (magari associata ad un pulsante) il foglio "Stampa"; in tal modo questo sarebbe identico al foglio "lavoro".

    Purtroppo, data la distanza, su un forum non è semplice capirsi ed inoltre su questo non è neanche presente lo strumento dei messaggi privati (che invece c'è su altri forum) attraverso il quale si puo' venire in contatto diretto facilitando così la comunicazione.

    A tal riguardo ti inviterei ad iscriverti a Forumexcel.it (sul quale sono presente anch'io) e tramite mp si può dialogare in maniera più diretta.

    In ogni caso fammi sapere se l'ipotesi che facevo prima (pulsante macro che compila il foglio "stampa" per te va bene.

    Alfredo





  • di Jessi90 data: 18/01/2018 21:43:36

    ciao Alfredo,si anche io inizialmente pensavo che bastasse copiare le celle del foglio lavoro nel foglio stampa (infatti inizialmente non l'avevo nemmeno messo il foglio stampa perche pensavo fosse una bischerata una volta fatta la prima parte!)ma poi è venuto fuori il problema.Comunque va bene anche l'idea della macro associata al pulsante che mi compila il foglio stampa dopo che il foglio lavoro è già a posto.Fammi sapere e scusa per la confusione!



  • di alfrimpa data: 19/01/2018 10:59:05

    Ciao Jessica

    Ti allego nuovo file (Jessy90_4.xlsm) dove ho inserito la macro che vedi sotto associata ad un pulsante inserito sul foglio Stampa.

    Provalo un po' e fammi sapere.

    Alfredo
     
    Sub creastampa()
    Dim ur As Long
    Dim lr As Long
    ur = Sheets("lavoro").Cells(Rows.Count, 1).End(xlUp).Row
    lr = Sheets("Stampa").Cells(Rows.Count, 1).End(xlUp).Row
    Sheets("lavoro").Range("a17:a" & ur).Copy Destination:=Sheets("stampa").Cells(lr + 1, 1)
    lr = Sheets("Stampa").Cells(Rows.Count, 4).End(xlUp).Row
    Sheets("lavoro").Range("d17:j" & ur).Copy Destination:=Sheets("stampa").Cells(lr + 1, 4)
    lr = Sheets("Stampa").Cells(Rows.Count, 2).End(xlUp).Row
    Sheets("lavoro").Range("b17:b" & ur).Copy
    Sheets("Stampa").Range("b10").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    ActiveCell.Select
    End Sub






  • di Jessi90 data: 19/01/2018 12:10:48

    Ciao Alfredo,ho visto il foglio!va benissimo!grazie mille...spero che questa volta non ci siano altre sorprese e vada tutto bene!sei stato davvero gentile!grazie
    ora mi studierò il corso che mi hai consigliato e a quel punto spero anche di capire meglio il codice VBA!



  • di alfrimpa data: 19/01/2018 12:41:01

    Bene Jessica: tutto bene quel che finisce bene

    Allora alla prossima e mi raccomando studia

    Alfredo





  • di Jessi90 data: 23/01/2018 16:45:07

    Ciao Alfredo!s è cantato vittoria troppo presto!ti volevo chiedere un ultima cosa(scusami se ti rompo ma vista l'urgenza faccio prima a chiedere a te): l'ultimo foglio che mi hai mandato(quello con il bottone "crea stampa" per intendersi) va benissimo l'unica cosa è che io nel foglio stampa non avevo riportato la parte più in alto (che contiene il nostro logo,e altre informazioni che comunque dovrebbero essere sempre copiate dal foglio lavoro dove l'operatore le inserisce manualmente) e ora,siccome ho dovuto riportarcela,ho dovuto inserire altre righe bianche sopra alla tabellina del foglio stampa (per farci entrare questa parte) e a quel punto la macro da errore!come posso fare?grazie infinite!



  • di alfrimpa data: 23/01/2018 21:52:09

    Ciao Jessica

    È normale che se si cambia la struttura del foglio (se si inseriscono nuove righe/colonne) le macro non funzionino perchè, a differenza di quanto accade sul foglio, le macro sono statiche e non si adeguano ai cambiamenti.

    Allega il file che ti dà errore (però la struttura dei fogli deve essere quella defintiva) e nominalo in modo che possa individuarlo facilmente e vediamo.

    Alfredo





  • di Jessi90 data: 24/01/2018 10:02:28

    OK ti allego il foglio excel con la struttura finale (il foglio stampa non ha la macro con il bottone che mi avevi inserito te(che mi copia dal foglio lavoro)...se per favore me lo puoi inserire te mi fai un piacere!)spero di riuscire a allegarlo!



  • di alfrimpa data: 24/01/2018 10:33:21

    Scusa Jessica non vedo il nuovo file che hai allegato; come si chiama?

    Alfredo





  • di Jessi90 data: 24/01/2018 11:55:04

    si chiama Foglio Forum2!riesci a vederlo?io si!



  • di alfrimpa data: 24/01/2018 12:19:32

    Si ora l'ho visto.

    Alfredo





  • di Jessi90 data: 25/01/2018 11:27:39

    Ciao Alfredo!allora ci hai dato mica un occhiata?scusa se ti faccio pressing ma ne sono la prima vittima



  • di alfrimpa data: 25/01/2018 11:31:49

    Si Jessica ho avuto problemi con la linea telefonica/internet (maledetta Telecom).

    Ti ho allegato altro file (Jessy90_6.xlsm).

    Provalo un po' e fammi sapere.

    Alfredo





  • di Jessi90 data: 25/01/2018 14:49:58

    Ciao Alfredo,l'ho provato ora e va benissimo!anche meglio di prima perchè ho visto che ora se faccio delle modifiche sul foglio lavoro e poi vado sul pulsante "stampa" mi crea già il foglio stampa aggiornato senza bisogno che cancelli quello che c era prima(prima senno mi riscriveva sotto raddoppiandomi i prodotti!).L'unica cosa è che nel foglio "stampa mi ripete due volte l'operazione!!potresti togliercela?ho provato a nascondere la colonna ma viene male lo stesso!fammi sapere!



  • di alfrimpa data: 25/01/2018 15:34:03

    Cit. "L'unica cosa è che nel foglio "stampa mi ripete due volte l'operazione!!potresti togliercela?ho provato a nascondere la colonna ma viene male lo stesso!fammi sapere! "

    Non capisco puoi spiegare meglio?

    Io il file l'ho provato e non mi sembra ci siano malfunzionamenti.

    Alfredo





  • di Jessi90 data: 25/01/2018 15:52:13

    Allora nell'ultimo foglio che mi hai mandato (Jessy90_6) nel foglio "Stampa" sotto la colonna OPERAZ E CONTROLLI mi ripete due volte l'operazione!è come se mi copiasse sia la tendina che la colonna delle operazioni dal foglio Lavoro ma basta che mi dia una volta sola l'operazione!



  • di alfrimpa data: 25/01/2018 15:59:30

    Ancora non capisco.

    Allega il file con il problema ed evidenziamelo.

    Alfredo





  • di Jessi90 data: 25/01/2018 16:04:15

    Ti ho allegato il foglio con le colonne ripetute evidenziate nel foglio Stampa!



  • di Jessi90 data: 25/01/2018 16:04:49

    il foglio è Jessy90_6 ERR



  • di alfrimpa data: 25/01/2018 16:15:01

    Prova con Jessy90_7.xlsm allegato

    Alfredo





  • di alfrimpa data: 25/01/2018 21:28:58

    Jessica ma non andavi di fretta?

    Alfredo





  • di Jessi90 data: 26/01/2018 14:46:44

    Ciao Alfredo,scusa se ti rispondo solo ora ma non avevo più avuto tempo...comunque ora va bene!ho provato il foglio e mi sembre tutto ok.Stamani l'ho mandato agli utenti e spero che vada bene....ti faccio sapere :)!e grazie mille ancora per il tuo aiuto!



  • di alfrimpa data: 26/01/2018 14:59:06

    Ok Jessica allora fai sapere in caso di problemi.

    Tieni presente che ExcelVBA ha un nuovo sito raggiungibile qui

    h t t p://www.excelvba.it/forumexcel/

    oppure puoi anche iscriverti qui

    h t t p://www.forumexcel.it/forum/

    dove sono anche presente.

    Alfredo