Adattare codice da excel per access

di Anonimizzato23124 il
6 risposte
Salve ho trovato questo codice che fa al caso mio, o almeno per quanto voglio realizzare, c'è un solo problema che è costruito per excel, sto tentendo di adattarlo per una tabella access ma ho grossi problemi anche perchè conosco molto poco il Vba. Mi aiutereste. Ringrazio da subito chi mi darà una mano. Ecco il codice

Sub DividiNomi()
Dim Nnomi As Long, NStep As Long
Dim i As Long, A As Long, Nriga As Long
Dim nome As String
Nnomi = Cells(Rows.Count, "O").End(xlUp).Row
NStep = Application.Ceiling(Cells(Rows.Count, "B").End(xlUp).Row / (Nnomi - 1), 1)
Nriga = 2
For i = 2 To Nnomi
nome = Cells(i, "O").Value
For A = 1 To NStep
If Nriga > Cells(Rows.Count, "B").End(xlUp).Row Then Exit For ''controllo fine record
Cells(Nriga, "A") = nome
Nriga = Nriga + 1
Next A
Next
End Sub

6 Risposte

  • Guarda che non funziona così... non si adatta excel ad access, sono mondi diversi.
  • Sono 2 prodotti differenti che si basano su una logica differente.
    Invece di copiare codice non fai prima a spiegare cosa ti serve ed eventualmente mostrare quali prove hai fatto e dove incontri difficoltà...?
  • Bene chiarito che sono due mondi diversi.
    Allora spiego in poche parole cosa avrei intenzione di fare:
    1)Tramite una maschera andare a recuperare il file csv da caricare su una tabella momentanea.
    I dati da prelevare sono nella colonna H (il numero protocollo) dalla colonna U (il nominativo, codice fiscale, la tendenza, deposito).
    2) Aprire sulla tabella momentanea (Tabella1) una maschera dove l'utente smistatore selezionando/spuntando i record con una casella di controllo tramite una query di accodamento legato all'evento click di un button inserisce i dati nella tabella di archivio(Tabella2), naturalmente dopo aver suddiviso i record in modo equo assegnandoli agli utenti censitori.

    Ma andiamo per passi già ho difficoltà a fare il punto 1) Questi i parti del file csv da recuperare


    COLONNA H


    (intestazione)/doc/@num_prot
    2018-AMETISC-3219820

    COLONNA U

    (intestazione)/doc/oggetto
    AN 435534444 - CMP - LATINA - CARAOZZINO GIOVANNI - CRRGNN53M01A???E - Tendenza 2034/2018 - Dt. Dep. 16/04/2018 - Imp. NO - Dt. Scad. Imp. 15/10/2018
  • C'è un problema di base..., oltre al fatto che access ragiona in campi e records e non colonne e righe... quindi non significa nulla Colonna XYZ... devi sapere il nome del campo anzi... del controllo associato a quel campo dal momento che lavori con Maschere.

    Ad ogni modo quello che chiedi è relativamente semplice, ma per relativamente intendo rispetto alle conoscenze soggettive.
    Se non conosci nulla del VBA di Access e del modello ad oggetti sia di Access che di DAO... penso tu possa avere molte difficoltà anche a comprendere suggerimenti...
    Quindi l'importazione si fa in vari modi puoi provare con TransfertSpreadsheet... spiegato nella guida.. ma, la tabella in cui importi deve avere un campo aggiuntivo di tipo SI/NO... quindi la devi creare con un'impostazione manuale poi modificare quindi usarla svuotandola...
    Poi potrai pensare alla maschera...
  • Ci provo. Vado a leggere quanto mi hai indicato.
    Ti ringrazio. Buona Giornata
Devi accedere o registrarti per scrivere nel forum
6 risposte