Excel Forum Per condividere esperienze su Microsoft Excel

Copiare e incollare i codici ISBN

  • Messaggi
  • OFFLINE
    De Martin.PAOLO
    Post: 7
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 17/03/2021 17:52
    Ciao a tutti, vi chiedo se c'è la possibilità di fare questa procedura.
    Sul file che allego, ho realizzato (grazie al vostro insostituibile aiuto) un programmino che mi aiuta nella gestione del magazzino libri.
    Nel foglio "ordinativi" in colonna C ci sono i codici ISBN dei libri arrivati che devo assegnare ai clienti; in colonna B il n° dei vari clienti. Per ogni cliente c'è il relativo foglio con il proprio numero: 2, 3, 5, 7, 8, 9, ecc.
    A me possibilmente servirebbe una funzione che quando la attivo tramite un pulsante, mi copi il codice della cella e lo incolli nel foglio relativo al cliente nella prima cella libera di colonna K
    es. i primi 3 cod. di colonna C sono del cliente n 9, dovrebbero essere copiati e incollati nel foglio 9, nelle prime celle libere di col. K, cioè K17, K18, K19.


    excell 2003
  • OFFLINE
    rollis13
    Post: 1.100
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    00 17/03/2021 22:58
    Prova con questa mia macro:
    Option Explicit
    Sub Assegna()
        Dim riga   As Long                  'riga in elaborazione
        Dim ur     As Long                  'ultima riga colonna B foglio Ordinativi
        Dim pr     As Long                  'prima riga utile colonna K foglio cliente
        Dim sht1   As Worksheet             'foglio Ordinativi
        Dim cliente As String               'codice cliente
        Application.ScreenUpdating = False
        Set sht1 = Sheets("Ordinativi")
        ur = sht1.Range("B" & Rows.Count).End(xlUp).Row
        For riga = 2 To ur
            cliente = sht1.Range("B" & riga).Value
            With Sheets(cliente)
                pr = .Range("K" & Rows.Count).End(xlUp).Row + 1
                sht1.Range("C" & riga).Copy .Range("K" & pr)
            End With
        Next riga
        Application.CutCopyMode = False
        Application.ScreenUpdating = True
    End Sub
    [Modificato da rollis13 17/03/2021 23:05]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    De Martin.PAOLO
    Post: 7
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 18/03/2021 10:46
    Ciao Rollis, la macro funziona e potrebbe andar bene anche così. Il problema che riscontro e che quando i codici si incollano nella colonna K mi cambiano la formattazione condizionale presente in tutte le celle della colonna. Se è possibile, dovrebbe incollare i codici in modalità "incolla valori"
  • OFFLINE
    rollis13
    Post: 1.101
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    00 18/03/2021 11:39
    Ti basta dividere la riga di Copia/Incolla così:
    sht1.Range("C" & riga).Copy
    .Range("K" & pr).PasteSpecial Paste:=xlPasteValues
    Sì, ma, sono sicuro che riuscivi anche da solo; è una funzione comunissima di Excel e in rete si trovano miliardi di esempi.
    Meglio ancora se usavi il Registratore di Macro per ricavare il codice necessario per fare 'Incolla Valori' e poi lo applicavi alla mia macro.
    Il Registratore è facile da usare anche se a volte crea codice ridondante e non crea i cicli per le operazioni ripetute.
    [Modificato da rollis13 18/03/2021 11:40]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    De Martin.PAOLO
    Post: 8
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 18/03/2021 15:30
    Perfetto, ora è OK! Grazie 1000!
    In realtà ci capisco ben poco di funzioni excel; ma quando andrò in pensione e avrò più tempo mi metterò a studiare…
  • OFFLINE
    rollis13
    Post: 1.102
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    10 18/03/2021 19:00
    Troppo tardi, poi non avrai più nessuna motivazione per utilizzare Excel, la pensione te la calcola l'INPS 😄😎.
    Grazie del riscontro positivo👍.
    [Modificato da rollis13 18/03/2021 19:01]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    De Martin.PAOLO
    Post: 10
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 20/09/2021 19:17
    Si è proprio questa, grazie By Sal.
    Fino a ieri funzionava, oggi quando la eseguo mi dice: "indice non incluso nell'intervallo" eppure non mi sembra di aver cambiato niente... Vedo se riesco a capirci qualcosa.
    Ciao
  • OFFLINE
    rollis13
    Post: 1.147
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    00 20/09/2021 21:51
    Scusi, con chi stai parlando ? sì, perché io avevo dato per conclusa questa discussione😮.

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    De Martin.PAOLO
    Post: 12
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 20/09/2021 22:02
    Buona sera, avevo risposto quì: https://www.freeforumzone.com/discussione.aspx?idd=11774577&a=2#last
  • OFFLINE
    rollis13
    Post: 1.148
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    00 20/09/2021 22:17
    Minimo devi specificare in che punto (riga) della macro ti segnala quella diagnostica e possibilmente anche far sapere che valore hanno assunto le variabili in quel momento.
    Collaudando la macro con il file che avevi allegato al post #1 tutto funziona correttamente, pertanto, devono per forza esserci delle modifiche alla strutture del file per andare ora in errore. Eventualmente riallega un file aggiornato (possibilmente con poche righe di esempio e senza dati sensibili).
    [Modificato da rollis13 20/09/2021 22:19]

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    De Martin.PAOLO
    Post: 13
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 21/09/2021 16:29
    Ciao, risolto il problema. È successo che avevo eliminato dei fogli perche l’ordine era evaso, ma non avevo tolto il n° di riferimento di uno di questi nel foglio dove agiva la macro. Quindi la macro trovava il n° ma non il foglio corrispondente e generava l’avviso di errore.
  • OFFLINE
    rollis13
    Post: 1.149
    Registrato il: 16/08/2015
    Città: CORDENONS
    Età: 67
    Utente Veteran
    Excel 2016-32bit Win11
    00 21/09/2021 19:08
    Se proprio serve puoi aggiungere questa funzione per evitare che la macro si blocchi in caso di errore.
    La funzione messa così non ti da nessuna altra segnalazione in caso di altri gravi errori (non contemplati).
    '...
    For riga = 2 To ur
        On Error Resume Next                      '<= nuova
        cliente = sht1.Range("B" & riga).Value
        With Sheets(cliente)
    '...

    ______________________________________________________________
    C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
  • OFFLINE
    De Martin.PAOLO
    Post: 14
    Registrato il: 08/07/2017
    Città: SUSEGANA
    Età: 62
    Utente Junior
    2003
    00 21/09/2021 19:24
    OK, grazie mille [SM=g27811]
  • 15MediaObject5,00113 1