Risultati da 1 a 4 di 4

Discussione: Macro per archiviare in base alla scelta dal menu convalida



  1. #1
    L'avatar di Lety88
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Brindisi
    Età
    29
    Messaggi
    131
    Versione Office
    Office 2013
    Likes ricevuti
    0
    Likes dati
    7

    Macro per archiviare in base alla scelta dal menu convalida

    Buonasera,

    vi chiedo con cortesia un piccolo aiuto su una macro che mi permetta di archiviare in questo modo. nel file allegato ci sono tre fogli.

    Nel primo foglio Cliente, dopo aver riempito tutti campi nella colonna M seleziono tramite menu convalida un codice imballo e dopo nella colonna scarto, alla prima riga inserisco un valore, però solo per la prima riga, nelle successive righe la cella scarto resta vuota.

    Quando clicco sul pulsante desidero che archivi nel foglio imballaggio, in base a come è strutturata la tabella,

    - i dati da inserire dalla colonna A alla F foglio imballo li deve prendere dal foglio clienti dalle colonne G a L,

    - il dato da inserire nella colonna G foglio Imballo lo deve prendere dalla colonna M,

    - i dati da inserire nelle colonne H ad M li deve prendere dal foglio Clienti dalla colonna N alla P a partire sempre dalla tera riga;

    - mentre il valori da inserire nella colonna N foglio Imballaggio lo va prendere dalla Colonna F del foglio Cliente e per completare

    - i dati da inserire dalla colonna O alla V li va prendere dal foglio Clienti dalla colonna U ad AB sempre a partire dal 3 rigo.

    Mentre la cella N4 che contiene un unico dato, quando clicco sul pulsante mi prende i dati sempre dal foglio clienti, nei range indicati sopra cioè

    G2 a L2, N2 alla P2,U2 ad AB2 solo dalla seconda riga. I dati da inserire in G e N foglio Imballaggio, li va prendere dal foglio Cliente cella N1 e N2.

    vi ringrazio.
    File Allegati File Allegati

  2. #2

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

    Re: Macro per archiviare in base alla scelta dal menu convalida

    Ciao Letizia

    Perdonami ma la tua spiegazione, per quanto dettagliata, non riesco a capirla soprattutto in riferimento al file.

    Tu dici: "Quando clicco sul pulsante desidero che archivi nel foglio imballaggio". Ma quando lo clicchi il pulsante? Dopo aver inserito un record o più record?

    Tu dici: " i dati da inserire dalla colonna A alla F foglio imballo li deve prendere dal foglio clienti dalle colonne G a L" ma di quale cliente?

    Forse sono io a non aver capito ma non sarebbe il caso di utilizzare una userform per l'inserimento dei dati e poi, con il VBA, "smistare" tali dati nei posti giusti sui fogli?

    Prova a descrivere l'intero processo o quel che devi fare.

    Alfredo

  3. #3
    L'avatar di Lety88
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Brindisi
    Età
    29
    Messaggi
    131
    Versione Office
    Office 2013
    Likes ricevuti
    0
    Likes dati
    7

    Re: Macro per archiviare in base alla scelta dal menu convalida

    Perdonami tu non sono bravissima a spiegare.

    il pulsante lo clicco dopo aver inserito più record possono essere 10,20, 30 record. il valore che viene scritto una volta sola è lo scarto nella cella N4.

    In realtà nel foglio clienti nella colonna F a partire dalla seconda riga, quindi F2 sono presenti i codici imballo affianco per ogni riga è presente un valore di default con il valore 1 in realtà all'interno ci saranno dei dati che saranno uguali su tutte le righe dei codici imballo.

    Quando clicco sul pulsante nel foglio cliente, da questo foglio mi deve prendere gli intervalli segnati sopra però dalla seconda riga, siccome i dati sono uguali per tutti i codici imballo non c'è bisogno di confrontare i due codici imballo, per ogni record codice imballo inserito nella colonna M foglio cliente può prendere i dati dalla stessa seconda riga nel foglio Clienti.

    Il cliente non è direttamente associato al codice imballo.

    Essendo dei dati fissi quelli presenti nel foglio Clienti, non li vado ad inserire ogni volta. I dati che cambiano sono il codart e quantità presenti nel foglio Cliente.

    Chiedimi pure se non sono stata chiara. Ti ringrazio per l'attenzione.

    Letizia

  4. #4
    L'avatar di Lety88
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Brindisi
    Età
    29
    Messaggi
    131
    Versione Office
    Office 2013
    Likes ricevuti
    0
    Likes dati
    7

    Re: Macro per archiviare in base alla scelta dal menu convalida

    Salve, tempo fa il Sig. Rubik72 mi aiuto in un cosa simile con la formula che posto sotto, con il file in allegato. Mi servirebbe capire come modificare i riferimenti per adattarla al nuovo foglio. Essendoci dei dati fissi anche in questo caso, cambiano solo il codart e la descrizione tra SCARTO e i codici imballo, li ho differenziati cambiando sfondo cella tutto il resto dei dati sono uguali infatto ho inserito il valore 1 che sta a significare che sono uguali.

    Vi ringrazio per la cortese attenzione.


    Codice: 
    Sub Archivia_Colonne()
    Dim wks1 As Worksheet, wks2 As Worksheet
    Dim uRiga1 As Long, uRiga2 As Long
    Dim Indirizzo
    Dim iRow As Integer, iCol As Integer
    
    
    Set wks1 = Worksheets("Principale")
    Set wks2 = Worksheets("Archivio")
        
    uRiga1 = 2
    Do Until Foglio1.Cells(uRiga1, 5) = ""
        uRiga1 = uRiga1 + 1
    Loop
    
    
    uRiga2 = wks2.Range("K" & Rows.Count).End(xlUp).Row
            
    Indirizzo = Array("A", "B", "C", "D", "K", "R", "AE", "AA", "AB", "AC", "AD", "AF", "AG", "AH")
    
    
    For iRow = 2 To uRiga1 - 1
        For iCol = 1 To 14
            wks2.Range(Indirizzo(iCol - 1) & uRiga2 + iRow - 1) = wks1.Cells(iRow, iCol)
        Next iCol
    Next iRow
        
    For iRow = uRiga2 + 1 To uRiga2 + uRiga1 - 2
        If iRow < 3 Then GoTo 10
        For iCol = 5 To 10
            wks2.Cells(iRow, iCol) = wks2.Cells(iRow - 1, iCol)
        Next iCol
    10:
    Next iRow
    
    
    For iRow = uRiga2 + 1 To uRiga2 + uRiga1 - 2
        If iRow < 3 Then GoTo 20
        For iCol = 12 To 17
            wks2.Cells(iRow, iCol) = wks2.Cells(iRow - 1, iCol)
        Next iCol
    20:
    Next iRow
    
    
    For iRow = uRiga2 + 1 To uRiga2 + uRiga1 - 2
        If iRow < 3 Then GoTo 30
        For iCol = 19 To 26
            wks2.Cells(iRow, iCol) = wks2.Cells(iRow - 1, iCol)
        Next iCol
    30:
    Next iRow
        
    Set wks1 = Nothing
    Set wks2 = Nothing
    Erase Indirizzo
    
    
    MsgBox "Archiviazione effettuata con successo!", vbInformation + vbOKOnly, "Archivio"
    
    
    End Sub
    File Allegati File Allegati

Discussioni Simili

  1. [Risolto] Pulsante macro "cancella" che imposti il menù a tendina (convalida) a un valore default
    Di vittorio99 nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 31/01/17, 17:04
  2. Report in funzione alla scelta di un nome
    Di sitolofi nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 01/01/17, 15:36
  3. Messaggi di errore per errata scelta nei menu a tendina collegati
    Di ProgrammD69 nel forum Domande su Excel in generale
    Risposte: 23
    Ultimo Messaggio: 04/09/16, 13:13
  4. Colorare Celle in base alla risposta della Macro
    Di step_90 nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 15/04/16, 15:29
  5. Macro per archiviare dati - EP56 - scelta foglio da menù a tendina
    Di Celeno nel forum Domande su Excel VBA e MACRO
    Risposte: 20
    Ultimo Messaggio: 28/10/15, 21:57

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
  •