Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 30 di 45

Discussione: Creare macro associata a casella di controllo



  1. #1
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Creare macro associata a casella di controllo

    Salve,
    ho bisogno di creare una macro che faccia in modo che ogni volta che si mette la spunta in una casella di controllo , tutta la riga in cui è presente quella casella di controllo venga copiata in un altro foglio; in più devo fare questa operazione per più righe. Devo infatti ottenere una cartella di lavoro formata da "n" fogli contenenti ciascuno la scheda cliente, con relativa anagrafica e informazioni inerenti le varie commesse, e da un foglio di "sintesi fatturazione". Devo far sì che spuntando diverse voci, le righe relative a quella casella di controllo vadano tutte nel foglio di sintesi fatturazione.
    Sono riuscita a farlo, ma solo per una riga. Come posso fare per attivare la macro per tutte le righe successive?Allego il file .xlsm.
    Grazie dell'aiuto
    File Allegati File Allegati

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Ciao Pamela

    Volevo chiederti se la struttura del tuo file è vincolante o la si può in qualche modo variare?

    Hai pensato ad una userform dove inserire i dati e poi con un pulsante immetterli sia sul foglio del cliente che su quello di riepilogo?

    Alfredo

    ----------Post unito in automatico----------

    A mio modo di vedere inserirei sul primo foglio anche gli altri dati anagrafici che pescherei con dei CERCA.VERT per gli altri fogli (clienti e riepilogo) e e lascerei l'immissione sull'userform degli altri dati.

    Non sobse mi sono spiegato.

    Alfredo

    ----------Post unito in automatico----------

    Se sei d'accordo proverei ad imbastire qualcosa?

    Alfredo

  3. #3

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Ciao Pamela e spero che tu non abbia abbandonato la discussione.

    Ieri riflettevo sul tuo file e sono dell'idea che il tutto si possa ridurre a soli tre fogli nella cartella di lavoro ossia:

    1) Foglio delle anagrafiche
    2) Foglio per l'inserimento di tutti gli ordini di tutti i clienti
    3) Foglio per situazione del singolo cliente (evitando la creazione di tanti fogli per quanti sono i clienti)

    Avrei pensato, come dicevo ieri, ad una userform per l'inserimento degli ordini e poi con una macro estrarre i dati dal foglio ordini complessivo e riportarli sulla scheda singola (situazione singolo cliente).

    In questa maniera eviteresti (oltre ad una moltitudine di fogli) anche il fatto di inserire tante checkbox per quanti sono gli ordini per tutti i clienti che mi sembra un'ipotesi un po' "impervia".

    Alfredo

  4. I seguenti utenti hanno dato un "Like"


  5. #4
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Ciao Alfredo, accetto volentieri il tuo consiglio anche se non ho ben capito come vorresti strutturare il file, e non saprei nemmeno da che parte farmi perchè non sono molto pratica di excel. Il mio obiettivo è quello di ottenere un file contenente le anagrafiche dei clienti e e loro commesse, che possono cambiare di mese in mese (non è detto che tutti i clienti abbiano ogni mese necessariamente una commessa aperta). Se ciò si può fare riducendo il numero di fogli attivi e semplificando le cose ben venga... ma avrei bisogno di aiuto!

  6. #5

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Ciao Pamela

    Ci sto lavorando su

    Spero in giornata di farti vedere qualcosa.

    Il "problema" è che la prossima settimana sono in ferie (e non ho il pc) per cui (se non hai fretta) dovresti avere un po' di pazienza.

    Alfredo

  7. #6
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Davvero gentilissimo, non c'è problema per il tempo... è uno dei classici lavori da ufficio che si lascia sempre da parte, ma che prima o poi tocca fare.
    Ne approfitto per farti un'altra domanda:esiste per caso una funzione che abbia il significato di per esempio "SE A1= vero; copia D3:D9 in F3:F9 ma in un altro foglio".. che è poi quello che voglio ottenere, cioè fare in modo che quando seleziono le commesse in atto per ciascun cliente, queste vadano automaticamente anche nella scheda di sintesi senza che debba fare io copia-incolla.

    grazie ancora

    Pamela

  8. #7

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Ciao Pamela

    Ti allego un "prototipo" di file dove ho cercato di realizzare quello che intendevo

    Se vai sul foglio "001" in C3 ti ho messo una convalida dati; nel momento in cui scegli "A.C.C. Italia" o "Aliva" (al momento ci sono solo questi due) i dati anagrafici si adegueranno automaticamente e nella tabella commesse verranno estratti (dal foglio "Sintesi fatturazione") solo le commesse relative al cliente selezionato.

    Ho anche iniziato a costruire una Userform (che puoi visualizzare con CTRL+M) in cui ho inserito vari controlli; nella combobox Azienda seleziona un elemento e guarda che succede

    Gli altri controlli sono al momento inattivi; questa maschera servirà per l'inserimento dei dati in "Sintesi fatturazione".

    Fammi sapere cosa ne pensi e se vi sono delle modifiche da apportare oppure se sto prendendo un grosso abbaglio.

    Quanto alla tua ultima domanda non si può fare con una funzione ma occorre una macro (a meno che tu non intenda per funzione anche una macro) ma andando avanti con il lavoro può darsi che non ce ne sia bisogno.

    Ora purtroppo devo uscire quindi finisce il divertimento

    Un caro saluto.

    Alfredo
    File Allegati File Allegati

  9. #8
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Grazie mille Alfredo, sopratutto per la velocità! L'idea mi sembra buona, interessante sopratutto la Userform per l'inserimento dei dati da fatturare. Però il mio obiettivo era leggermente diverso da quello che hai creato tu. Nel file che hai creato tu, i dati relative alle commesse vanno inseriti nel foglio "Sintesi fatturazione" e poi richiamati nel foglio "001" relativamente ad ogni azienda (correggimi se sbaglio).
    A me invece servirebbe ottenere il contrario, ossia delle schede cliente per ogni cliente dell'elenco, nella quale sia visibile la parte anagrafica ma sopratutto la parte relativa alle commesse, che va aggiornata di mese in mese e che deve mantenere anche la visualizzazione dello storico. Nella scheda "sintesi fatturazione" invece vorrei riuscire a vedere solo determinate commesse, cioè quelle che vanno in fattura a fine mese, e che io scelgo dalle schede clienti, e che quindi di volta in volta vanno poi cancellate perchè ci andranno inserite poi quelle del mese successivo. per questo io avevo pensato ad una check box, attraverso la quale io, selezionando la riga relativa alla commessa interessata, questa mi vada direttamente nella scheda di sintesi. Non so se sono riuscita a essere chiara...
    Ho provato ad andare avanti con il mio file, ti mando quello che sono riuscita ad ottenere così se puoi magari mi dici se sono sulla strada giusta ed eventuali (sicuramente necessari!) consigli.

    Grazie mille dell'aiuto, sei stato davvero gentilissimo.

    Aspetto tue notizie.

    Pamela

  10. #9

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Ciao Pamela allora ricominciamo daccapo

    Quindi se ho ben capito tu vorresti riportare in Sintesi fatturazione le sole commesse che hanno la checkbox flaggata?

    Se è così sconsiglierei l'uso delle checkbox; piuttosto utilizzerei una normale cella dentro la quale andresti ad inserire una "x" e quando avrai fatto questo verrá lanciata la macro per la copia in Sintesi fatturazione.

    È anche possibile che una volta che hai messo le "x" con un'unica macro passare in rassegna i fogli dei clienti e se c'è la "x" copi il relativo record.

    Non so se sono riuscito a spiegarmi.

    Nel tuo caso non ha molto senso inserire n checkbox (e non sai quante) per ogni foglio cliente.

    Alfredo

    ----------Post unito in automatico----------

    Pamela una domanda ma quanti sono i clienti?

    Se sono poche decine ok ma se sono centinaia avere un file con centinaia non è il massimo.

    Alfredo

  11. #10
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Si esatto, voglio riportare in sintesi fatturazione solo le commesse con la checkbox flaggata.
    La tua alternativa di mettere solo la "x" non è male, come dici tu mi risparmierei di inserire n checkbox e sopratutto di associargli una macro a ciascuna... inizierebbe a diventare molto complicato! In questo caso, come posso fare a realizzare una macro che, una volta inserite tutte le x, mi riporta nella scheda di sintesi tutte le relative voci?

    Il numero dei clienti per ora è quello che vedi nel foglio elenco clienti.. Sono quelli fino ad ora, e solitamente restano più o meno gli stessi (lavoro per un laboratorio di ricerca e analisi sui materiali da costruzione, e i nostri clienti sono produttori che hanno bisogno di caratterizzare i loro materiali prima di poterli mettere sul mercato). avevo già in mente di fare un file diverso per ogni anno: quest'anno inizio con questo, poi il prossimo anno ne faccio un altro sulla base del vecchio.. altrimenti diventerebbe ingestibile.

    Mi sono accorta di non averti allegato il file su cui stavo lavorando ora. Te lo metto qui. Al momento sono riuscita a ottenere un po quello che volevo, cioè quando metto la spunta alla checkbox la riga relativa mi compare nella scheda sintesi. Mi rimane però il problema di quando tolgo la spunta (mi inserisce nuovamente nella scheda sintesi la riga invece di toglierla), senza contare il fatto che come dicevamo prima, inserire n checkbox e n macro per tutti i clienti diventa un lavoro enorme..
    File Allegati File Allegati

  12. #11

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Ciao Pamela

    Ti allego file dove ho cercato di fare quello che hai chiesto.

    Al suo interno vi è la seguente macro

    Codice: 
    Option Compare Text
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ur As Long
    Dim i As Integer
    ur = Worksheets("Sintesi Fatturazione").Cells(Rows.Count, 3).End(xlUp).Row
    If Not Intersect(Target, Sh.Range("b9:b100")) Is Nothing Then
        If Left(Sh.Name, 1) = "0" Then
            If Target.Rows.Count > 1 Then Exit Sub
            If Target.Value = "x" Then
                Range("c3:e3").Copy Destination:=Worksheets("Sintesi Fatturazione").Range("c" & ur + 1)
                Target.Select
                For i = 3 To 13
                    Worksheets("Sintesi Fatturazione").Cells(ur + 1, i + 3) = Cells(Target.Row, i)
                Next i
            End If
        End If
    End If
    End Sub
    Provalo un po' mettendo una "x" da b9 in poi sui fogli 001 o 002

    Fammi sapere

    Alfredo
    File Allegati File Allegati

  13. #12
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Grazie mille Alfredo, sei stato davvero gentilissimo. A breve esco dall'ufficio e non ho modo di guardare ma domani ti faccio sapere.
    Grazie mille in ogni caso per la tua disponibilità.

    Pamela

  14. #13

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

    Re: Creare macro associata a casella di controllo

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

    Il "problema" è che la prossima settimana sono in ferie (e non ho il pc) per cui (se non hai fretta) dovresti avere un po' di pazienza.

    Alfredo

    Si, è un grosso problema staccare ad Excel per una settimana per noi dipendenti da "griglie bidimensionali"

  15. #14

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Enzo hai proprio ragione sono già in crisi di astinenza.

    A proposito cosa ne pensi della macro che ho scritto per Pamela anche se per uno come te non è niente di che.

    Un caro saluto.

    Alfredo

    P.S. Non dimenticarti di farmi sapere le tue impressioni sul libro oramai siamo in estate piena!

  16. #15

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

    Re: Creare macro associata a casella di controllo

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    [...]
    A proposito cosa ne pensi della macro che ho scritto per Pamela anche se per uno come te non è niente di che.[...]
    la macro va bene anche se ogni cambiamento genera un nuovo evento Change. Dovresti disattivare gli eventi in fase di incolla/scrittura


    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    [...]
    P.S. Non dimenticarti di farmi sapere le tue impressioni sul libro oramai siamo in estate piena!
    E chi se lo scorda, è già sul mio Kindle

  17. #16

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Enzo la faccenda dell'abilitazione/disabilitazione degli eventi è una cosa che ancora non mi è entrata in testa (e probabilmente non ci entrerà mai).

    Io non l'ho messa perchè il target non viene mai interessato dalle operazioni di copia/incolla. Sbaglio?

    Cioè tu le metteresti prima di Range("c3:e3")..... e dopo Next i?

    Alfredo

    P.S. Quando hai tempo e voglia fammi uno squillo che mi fa piacere fare quattro chiacchiere.

  18. #17

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

    Re: Creare macro associata a casella di controllo

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Enzo la faccenda dell'abilitazione/disabilitazione degli eventi è una cosa che ancora non mi è entrata in testa (e probabilmente non ci entrerà mai).

    Io non l'ho messa perchè il target non viene mai interessato dalle operazioni di copia/incolla. Sbaglio?

    Cioè tu le metteresti prima di Range("c3:e3")..... e dopo Next i?
    [...]
    io farei queste modifiche per "accellerare" la routine:
    Codice: 
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ur As Long
    Dim i As Integer
    ur = Worksheets("Sintesi Fatturazione").Cells(Rows.Count, 3).End(xlUp).Row
    If Not Intersect(Target, Sh.Range("b9:b100")) Is Nothing Then
        If Left(Sh.Name, 1) = "0" Then
            If Target.Rows.Count > 1 Then Exit Sub
            If Target.Value = "x" Then
                Application.EnableEvents = False
                Range("c3:e3").Copy Destination:=Worksheets("Sintesi Fatturazione").Range("c" & ur + 1)
                Target.Select 
                For i = 3 To 13
                    Worksheets("Sintesi Fatturazione").Cells(ur + 1, i + 3) = Cells(Target.Row, i)
                Next i
                Application.EnableEvents = True
            End If
        End If
    End If
    End Sub

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    [...]P.S. Quando hai tempo e voglia fammi uno squillo che mi fa piacere fare quattro chiacchiere.

  19. #18

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Accidenti Enzo ti ho letto nel pensiero hai visto il mio post precedente?

    Che stia incominciando a capirci qualcosa? Ai posteri l'ardua sentenza.......

    A presto

    Alfredo

  20. #19
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Quindi in questo modo anche se aggiungo altri fogli, la macro viene in automatico in tutti senza che la debba aggiungere giusto??
    E' fantastico... mi vedevo già disperata a dover fare macro per ogni riga!

    Grazie davvero a tutti per l'aiuto, questo forum è fantastico!!! Credo proprio che ci tornerò presto..

    Pamela
    Ultima modifica fatta da:pamelapa; 15/07/16 alle 09:55 Motivo: volevo aggiungere una domanda

  21. #20

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Pamela e del file non dici niente?

    Funziona come ti aspettavi

    Alfredo

  22. #21
    L'avatar di Cucù^_^
    Clicca e Apri
    Data Registrazione
    Jun 2016
    Località
    TrentoGallipoliTaranto
    Età
    46
    Messaggi
    316
    Versione Office
    2010
    Likes ricevuti
    57
    Likes dati
    18

    Re: Creare macro associata a casella di controllo

    Ciao Alfredo

    Non riesco proprio a capire perchè utilizzi un ciclo per copiare un range quando due righe sopra utilizzi il comando "Copy"...
    E poi io farei anche un pensiero nella gestione di eventuali errori. (Application.EnableEvents = False)

    Cucù

  23. #22
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Alfredo si va benissimo.. Grazie mille ancora per l'aiuto, sei stato davvero gentilissimo!

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Pamela e del file non dici niente?

    Funziona come ti aspettavi

    Alfredo

  24. #23

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    @ Pamela

    Modifica il codice della macro aggiungendo le istruzioni in rosso

    Codice: 
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ur As Long
    Dim i As Integer
    ur = Worksheets("Sintesi Fatturazione").Cells(Rows.Count, 3).End(xlUp).Row
    If Not Intersect(Target, Sh.Range("b9:b100")) Is Nothing Then
    If Left(Sh.Name, 1) = "0" Then
    If Target.Rows.Count > 1 Then Exit Sub
    If Target.Value = "x" Then
    Application.EnableEvents = False
    Range("c3:e3").Copy Destination:=Worksheets("Sintesi Fatturazione").Range("c" & ur + 1)
    Target.Select 
    For i = 3 To 13
    Worksheets("Sintesi Fatturazione").Cells(ur + 1, i + 3) = Cells(Target.Row, i)
    Next i
    Application.EnableEvents = True
    End If
    End If
    End If
    End Sub
    @ Cucù

    In verità non saprei risponderti mi è venuta così forse perché le zone da copiare erano diverse; quanto all'Application.EnableEvents avrai visto che su suggerimento di Rubik ho modificato la macro.

    Alfredo

    ----------Post unito in automatico----------

    Ciao Pamela

    Non avendo nulla da fare mi sono divertito a creare sul tuo file un "meccanismo per la creazione delle schede clienti (ammesso che tu non le abbia già).

    Sul foglio Elenco Produttori ho messo un pulsante "Crea Nuovo Foglio Cliente"; se ci clicchi su ti apparirà una maschera dalla quale potrai scegliere il cliente e verrà creato un nuovo foglio denominato con il codice presente in colonna C e compilato dei dati anagrafici del cliente prescelto.

    Questo il codice

    Codice: 
    Private Sub CommandButton1_Click()
    Dim numfgl As Integer
    Dim ur As Integer
    Dim TabProduttori As Range
    Dim nomefgl As String
    ur = Worksheets("Elenco Produttori").Cells(Rows.Count, 1).End(xlUp).Row
    Set TabProduttori = Worksheets("Elenco Produttori").Range("a2:h" & ur)
    numfgl = ThisWorkbook.Sheets.Count
    Sheets("Modello").Visible = True
    Sheets("Modello").Copy After:=Sheets(numfgl)
    Sheets("Modello").Visible = False
    ActiveSheet.Name = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 3, False)
    ActiveSheet.Range("c3").Value = Me.ListBox1.Value
    ActiveSheet.Range("d3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 4, False)
    ActiveSheet.Range("e3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 5, False)
    ActiveSheet.Range("f3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 6, False)
    ActiveSheet.Range("g3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 7, False)
    ActiveSheet.Range("h3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 8, False)
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim ur As Integer
    ur = Worksheets("Elenco Produttori").Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To ur
    Me.ListBox1.AddItem Worksheets("Elenco Produttori").Range("a" & i)
    Next i
    End Sub
    Al pulsante sul foglio è invece associato questo

    Codice: 
    Private Sub CommandButton1_Click()
    UserForm1.Show
    End Sub
    Spero sia tutto chiaro.

    Alfredo
    File Allegati File Allegati

  25. I seguenti 2 utenti hanno dato un "Like" a alfrimpa per questo post:


  26. #24
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Alfredo sei stato chiarissimo, ed è perfetto... ora ho un database fatto davvero come si deve!

    Grazie mille dell'aiuto, sei stato gentilissimo.
    A presto,

    Pamela

  27. #25

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Citazione Originariamente Scritto da pamelapa Visualizza Messaggio
    Alfredo sei stato chiarissimo, ed è perfetto... ora ho un database fatto davvero come si deve!
    Ciao Pamela

    Ti ringrazio delle belle parole e del "mi piace" ma prima di definire il database "fatto come si deve" occorre fare tante prove "sul campo" per scoprire eventuali difetti/errori/malfunzionamenti che sono sempre dietro l'angolo.

    Fammi sapere se ti può interessare il discorso delle userform per l'inserimento dei dati ad esempio sul foglio "Elenco Produttori" o su una delle qualsiasi schede clienti.

    Avresti un'applicazione che funziona con un'interfaccia utente senza dover andare a toccare "materialmente i fogli (almeno per quel che riguarda l'inserimento dati.

    Comunque quando vuoi (e ferie permettendo) sono a disposizione.

    A presto ed alla tua prossima domanda.

    Alfredo

    P.S. Grazie anche a mb63 per il "mi piace"

  28. #26
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    @ Pamela

    Modifica il codice della macro aggiungendo le istruzioni in rosso

    Codice: 
    Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ur As Long
    Dim i As Integer
    ur = Worksheets("Sintesi Fatturazione").Cells(Rows.Count, 3).End(xlUp).Row
    If Not Intersect(Target, Sh.Range("b9:b100")) Is Nothing Then
    If Left(Sh.Name, 1) = "0" Then
    If Target.Rows.Count > 1 Then Exit Sub
    If Target.Value = "x" Then
    Application.EnableEvents = False
    Range("c3:e3").Copy Destination:=Worksheets("Sintesi Fatturazione").Range("c" & ur + 1)
    Target.Select 
    For i = 3 To 13
    Worksheets("Sintesi Fatturazione").Cells(ur + 1, i + 3) = Cells(Target.Row, i)
    Next i
    Application.EnableEvents = True
    End If
    End If
    End If
    End Sub
    @ Cucù

    In verità non saprei risponderti mi è venuta così forse perché le zone da copiare erano diverse; quanto all'Application.EnableEvents avrai visto che su suggerimento di Rubik ho modificato la macro.

    Alfredo

    ----------Post unito in automatico----------

    Ciao Pamela

    Non avendo nulla da fare mi sono divertito a creare sul tuo file un "meccanismo per la creazione delle schede clienti (ammesso che tu non le abbia già).

    Sul foglio Elenco Produttori ho messo un pulsante "Crea Nuovo Foglio Cliente"; se ci clicchi su ti apparirà una maschera dalla quale potrai scegliere il cliente e verrà creato un nuovo foglio denominato con il codice presente in colonna C e compilato dei dati anagrafici del cliente prescelto.

    Questo il codice

    Codice: 
    Private Sub CommandButton1_Click()
    Dim numfgl As Integer
    Dim ur As Integer
    Dim TabProduttori As Range
    Dim nomefgl As String
    ur = Worksheets("Elenco Produttori").Cells(Rows.Count, 1).End(xlUp).Row
    Set TabProduttori = Worksheets("Elenco Produttori").Range("a2:h" & ur)
    numfgl = ThisWorkbook.Sheets.Count
    Sheets("Modello").Visible = True
    Sheets("Modello").Copy After:=Sheets(numfgl)
    Sheets("Modello").Visible = False
    ActiveSheet.Name = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 3, False)
    ActiveSheet.Range("c3").Value = Me.ListBox1.Value
    ActiveSheet.Range("d3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 4, False)
    ActiveSheet.Range("e3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 5, False)
    ActiveSheet.Range("f3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 6, False)
    ActiveSheet.Range("g3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 7, False)
    ActiveSheet.Range("h3").Value = Application.WorksheetFunction.VLookup(Me.ListBox1.Value, TabProduttori, 8, False)
    End Sub
    
    Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim ur As Integer
    ur = Worksheets("Elenco Produttori").Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To ur
    Me.ListBox1.AddItem Worksheets("Elenco Produttori").Range("a" & i)
    Next i
    End Sub
    Al pulsante sul foglio è invece associato questo

    Codice: 
    Private Sub CommandButton1_Click()
    UserForm1.Show
    End Sub
    Spero sia tutto chiaro.

    Alfredo
    Alfredo scusa ti chiedo un'ultima cosa.. sempre in riferimento al mio file, esiste la possibilità di "tenere unite due celle vicine"? Mi spiego meglio... Nel foglio "Elenco produttori", nel caso in cui io aggiunga altri clienti li aggiungo ovviamente dal basso, nella prima riga vuota che trovo e vi associo un codice nuovo. Se poi io volessi ordinare l'elenco in ordine alfabetico, c'è modo che il codice associato a ciascun cliente resti associato sempre a quel cliente, cioè che anche la cella con il codice si sposti insieme al nome?

  29. #27

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Ciao Pamela

    Puoi aggiungere tranquillamente altri produttori il tutto (credo ) continuerà a funzionare regolarmente.

    Una precisazione: per come è scritto il codice funzionerà sino al cliente codificato con "099"; se prevedi di averne di più occorrerà modificarlo.

    Eventualmente questa istruzione

    Codice: 
    If Left(Sh.Name, 1) = "0" Then
    dovrà essere sostituita con questa

    Codice: 
    If Len(Sh.Name) = 3 Then
    Con questa modifica il codice funziona dal cliente "001" al cliente "999" (è comunque sempre da provare).

    Per quanto riguarda l'ordinamento basta che selezioni l'intero database da A1 ad Hn via nel menù Dati e poi Ordina.

    Alfredo

  30. #28
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    Ok perfetto, gentilissimo. Si ho provato e funziona bene. Dove devo andare per modificare il codice "099"? Perchè penso proprio che ne avrò di più..

    Grazie ancora.
    Pamela

  31. #29

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6814
    Versione Office
    2013
    Likes ricevuti
    721
    Likes dati
    165

    Re: Creare macro associata a casella di controllo

    Allora Pamela forse è il caso di dire qualcosa di più anche per farti capire meglio.

    1) Apri il tuo file
    2) Premi ALT+F11
    3) Entrerai nell'Editor di VBA
    4) In alto a sinistra trovi la Finestra di progetto che ti mostra un "albero genealogico" della cartella di lavoro
    5) Fai doppio clic sulla voce "Questa_cartella_di_lavoro" (o ThisWorkbook)
    6) Nella finestra a destra troverai il mio codice

    A questo punto credo che non ti sarà difficile individuare l'istruzione da modificare.

    Alfredo

    P.S. Perdona la domanda indiscreta ma un po' hai capito il codice e quello che fa? Che conoscenze hai di VBA? Dal tuo primo file mi sembra di capire che hai provato solo con delle macro registrate quando il "mondo" del VBA è immenso.

    ----------Post unito in automatico----------

    Pamela una cosa che non c'entra nulla con il tuo problema.

    Su questo forum è gradita una "presentazione"; poiché mi pare che tu non l'abbia fatto puoi andare nell'apposita sezione dire due parole di te.

    Alfredo

  32. #30
    L'avatar di pamelapa
    Clicca e Apri
    Data Registrazione
    Jul 2016
    Località
    Cesena (FC)
    Età
    27
    Messaggi
    44
    Versione Office
    Excel 2016
    Likes ricevuti
    0
    Likes dati
    2

    Re: Creare macro associata a casella di controllo

    La mia conoscenza dei VBA è davvero basica, per non dire praticamente nulla.. Sto imparando in questi mesi a conoscere meglio Excel e sfruttare un po di più le sue potenzialità, perchè può essere davvero uno strumento molto potente. Dal lavoro ho avuto l'esigenza di fare questo database e ho provato a creare ciò che mi serviva basandomi per lo più sui video tutorial del fondatore di questo forum, da cui ho imparato molto (sono ingegnere edile, ma non avevo mai usato excel praticamente e fino a qualche mese fa conoscevo solo la formula somma!!), ma ho tantissimo da imparare ancora. Anche i tuoi consigli sono stati utilissimi, almeno ora sono riuscita a capire cosa c'è dietro a tutte le funzioni e come leggere un po i codici, ma come dici tu il mondo delle VBA è immenso!!
    Ti ringrazio ancora per la tua disponibilità, sei stato molto gentile veramente e chiaro nelle spiegazioni.
    A presto

    Pamela

Discussioni Simili

  1. Macro Timestamp associata a bottone confirm
    Di darky19_85 nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 12/08/16, 13:00
  2. Esecuzione macro con casella di controllo flaggata
    Di G.Bove nel forum Domande su Excel VBA e MACRO
    Risposte: 16
    Ultimo Messaggio: 14/05/16, 16:03
  3. casella di controllo
    Di CRISTIAN nel forum Domande su Excel in generale
    Risposte: 2
    Ultimo Messaggio: 05/05/16, 18:29
  4. Controllo moduli - casella di controllo
    Di CRISTIAN nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 03/05/16, 22:55
  5. Casella di controllo
    Di michele.ta nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 29/03/16, 16:32

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
  •