GESTIONE DATABASE

di il
1 risposte

GESTIONE DATABASE

Ciao a tutti,
Spero di essere il più chiaro possibile. Ho bisogno di un programma in vba che dati i 3 file contenuti nell'archivio:
- Anagrafica (database principale)
- Venduto
- Pianificazione (file nel quale creare il programma)
Esegua le seguenti operazioni:
- Confrontare i codici chiave del database contenuto in anagrafica con quello contenuto in pianificazione
- Se in anagrafica ci sono dei codici nuovi: deve aggiungere le righe mancanti in pianificazione, mantenendo i record che sono spariti
- Aggiungere il mese con il venduto in pianificazione, caricandolo dal file venduto

1 Risposte

  • Re: GESTIONE DATABASE

    Questa è la prima parte, funziona..



    Dim i&, j&, ULTIMA&, PRIMA&, COL%, flag As Boolean
    Sheets("ANAGRAFICA").Select
    Range("A1:F20000").Select
    Selection.Copy
    Sheets("ANAGR_BACKUP").Select
    Range("A1").Select
    ActiveSheet.Paste

    Workbooks.Open Filename:="C:\Users\mc2nzo\Desktop\help_vba\anagrafica.xlsx"
    Sheets("ANAGRAFICA").Select
    Range("A1:F20000").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("pianificazione.xlsm").Activate
    Sheets("ANAGRAFICA").Select

    COL = 1 'la colonna su cui eseguire il confronto
    PRIMA = 1 'questa e' la riga da cui iniziare a cercare
    i = PRIMA
    Do 'ora cerca l'ultima riga significativa (cioe' <> "")
    If Cells(i, COL) = "" Then ULTIMA = i - 1: Exit Do
    i = i + 1
    Loop
    Cells(i, COL).Select
    ActiveSheet.Paste

    COL = 1 'la colonna su cui eseguire il confronto
    PRIMA = 1 'questa e' la riga da cui iniziare a cercare
    i = PRIMA
    Do 'ora cerca l'ultima riga significativa (cioe' <> "")
    If Cells(i, COL) = "" Then ULTIMA = i - 1: Exit Do
    i = i + 1
    Loop
    i = PRIMA 'confrontiamo questa riga....
    Do
    flag = False
    j = ULTIMA 'con tutte le successive, partendo dal fondo
    Do
    If Cells(i, COL) = Cells(j, COL) Then
    'sono uguali, seleziona l'intera riga ed eliminala !
    Rows(j).Select
    Selection.Delete Shift:=xlUp
    ULTIMA = ULTIMA - 1 'abbiamo eliminato una riga
    flag = True ' annotiamoci che va eliminata anche la riga i
    End If
    j = j - 1
    Loop Until j <= i
    If flag Then 'abbiamo eliminato qualche riga ?

    Else
    i = i + 1
    End If
    Loop Until i >= ULTIMA
    End Sub





Devi accedere o registrarti per scrivere nel forum
1 risposte