confronto file excel



  • confronto file excel
    di Andrea (utente non iscritto) data: 09/07/2013 11:17:56

    Buongiorno a tutti, io avrei la necessità di creare una cosa del genere:
    una user form con 2 file dialog in cui posso scegliere i due file excel oggetto del confronto(file1 e file 2)
    Ora devo ottenere un terzo file che dovrò essere il risultato di questi confronti:
    una volta scelti i file devo confrontare per tutti i record di file1 due colonne di file1 con 2 colonne di file2 se trovo corrispondenza scrivo tutta la riga di file 2 altrimenti scrivo le colonne di file1 + delle colonne che presentino una combobox con valori caricati staticamente.
    Qualcuno può darmi uno spunto?
    Grazie mille



  • di Andrea (utente non iscritto) data: 09/07/2013 14:07:03

    ho scritto questo codice....però il ciclo che dovrebbe con controllare la corrispondenza e scrivere il wooksheet(2) non và.....qualcuno può aiutarmi a capire il perchè?
     
       Set cn = CreateObject("adodb.connection")
                    Set cn1 = CreateObject("adodb.connection")
                    'OLEDBConnection cn
                    Set rs = CreateObject("adodb.recordset")
                    Set rs1 = CreateObject("adodb.recordset")
                                    
                    'foglio rubrica aggiornato
                    Collegamento = "provider=microsoft.ACE.oledb.12.0;data source=" & filescelto.Value & ";extended properties = ""excel 8.0; IMEX=1; hdr=yes"""
                    'foglio bcp vecchio
                    Collegamento1 = "provider=microsoft.ACE.oledb.12.0;data source=" & filescelto1.Value & ";extended properties = ""excel 8.0; IMEX=1; hdr=yes"""
                    
                    cn.Open Collegamento
                    cn1.Open Collegamento1
                    
                    'Apro Foglio Rubrica Aggiornato
                    rs.Open "select * from [owssvr$]", cn
                    
    
    'eseguo le operazioni per ogni record presente nel recordset ricevuto
    
    numeroriga = 1
    
    While (Not rs.EOF)
           
                    'Debug.Print rs(0)
    
    '--------------->>>>   operazioni su polizzeA  <<<<<<<------------------------------
    
    Worksheets(1).Cells(numeroriga, 1).Value = rs.Fields.Item(0)
    Worksheets(1).Cells(numeroriga, 2).Value = rs.Fields.Item(1)
    Worksheets(1).Cells(numeroriga, 3).Value = rs.Fields.Item(2)
    Worksheets(1).Cells(numeroriga, 4).Value = rs.Fields.Item(3)
    Worksheets(1).Cells(numeroriga, 5).Value = rs.Fields.Item(4)
    Worksheets(1).Cells(numeroriga, 6).Value = rs.Fields.Item(5)
    Worksheets(1).Cells(numeroriga, 7).Value = rs.Fields.Item(6)
    Worksheets(1).Cells(numeroriga, 8).Value = rs.Fields.Item(7)
    
    
    '----------------- >>>>>>>>> fine operazioni su polizzeA <<<<<<<<<<<<-----------
    
    
    numeroriga = numeroriga + 1
    rs.MoveNext
    Wend
    numerorigafinale = numeroriga 'tot record della rubrica
    
    
    '----------   secondo recordset per foglio Funzioni
    
    rs1.Open "select * from [Funzioni$]", cn1
    'cont3 = contatore3.Value
    numeroriga = 1
    numerorigaB = 1
    
    While (Not rs1.EOF)
       
    '--------------->>>>   operazioni  <<<<<<<------------------------------
    
    'Worksheets(4).Cells(numerorigaB, 1).Value = cont3
    'Worksheets(4).Cells(numerorigaB, 2).Value = 1
    
    citta = rs1.Fields.Item(0).Value
    cognome = rs1.Fields.Item(3).Value
    nominativo = rs1.Fields.Item(4).Value
    'MsgBox cognome & Nome & citta
    
    For numeroriga = 1 To numerorigafinale 'ciclo tutto il file dei contatti
    
    'numeropolizza_A = Right(Worksheets(1).Cells(numeroriga, 3).Value, 8)
    cognome_A = Worksheets(1).Cells(numeroriga, 1).Value
    nome_A = Worksheets(1).Cells(numeroriga, 2).Value
    citta_A = Worksheets(1).Cells(numeroriga, 3).Value
    
    If (cognome = cognome_A) And (nominativo = nome_A) And (citta = citta_A) Then
    'MsgBox cognome & cognome_A
    'MsgBox Nome & nome_A
    'MsgBox citta & citta_A
    
    Worksheets(2).Cells(numerorigaB, 1).Value = rs1.Fields.Item(0)
    Worksheets(2).Cells(numerorigaB, 2).Value = rs1.Fields.Item(1)
    Worksheets(2).Cells(numerorigaB, 3).Value = rs1.Fields.Item(2)
    Worksheets(2).Cells(numerorigaB, 4).Value = rs1.Fields.Item(3)
    Worksheets(2).Cells(numerorigaB, 5).Value = rs1.Fields.Item(4)
    Worksheets(2).Cells(numerorigaB, 6).Value = rs1.Fields.Item(5)
    Worksheets(2).Cells(numerorigaB, 7).Value = rs1.Fields.Item(6)
    
    ElseIf (citta = citta_A) Then
    
    'MsgBox "non trovati"
    'MsgBox cognome & cognome_A
    'MsgBox Nome & nome_A
    'MsgBox citta & citta_A
    Worksheets(2).Cells(numerorigaB, 1).Value = Worksheets(1).Cells(numeroriga, 3).Value
    Worksheets(2).Cells(numerorigaB, 2).Value = ""
    Worksheets(2).Cells(numerorigaB, 3).Value = ""
    Worksheets(2).Cells(numerorigaB, 4).Value = Worksheets(1).Cells(numeroriga, 1).Value
    Worksheets(2).Cells(numerorigaB, 5).Value = Worksheets(1).Cells(numeroriga, 2).Value
    Worksheets(2).Cells(numerorigaB, 6).Value = ""
    Worksheets(2).Cells(numerorigaB, 7).Value = ""
    
    End If
    
    
    Next
    
    'Worksheets(4).Cells(numerorigaB, 4).Value = rs1.Fields.Item(2)
    'Worksheets(4).Cells(numerorigaB, 5).Value = 1
    'Worksheets(4).Cells(numerorigaB, 6).Value = "01/01/2013 00:00"
    'Worksheets(4).Cells(numerorigaB, 7).Value = "31/12/2013 00:00"
    'Worksheets(4).Cells(numerorigaB, 8).Value = numeropolizza
    
    cont3 = cont3 + 1
    
    numerorigaB = numerorigaB + 1
    rs1.MoveNext
    Wend
    rs.Close
    rs1.Close