Pagina 1 di 1

Confronto file

Inviato: giovedì 11 febbraio 2021, 16:15
da mapa3n
Ho due file contenenti nella prima colonna un numero identificativo, nel primo file ci sono 350 record mentre nel secondo ce ne sono 222: vorrei sapere se nel primo file sono compresi tutti i 222 record del secondo file (e, in caso affermativo, quali sono), come posso fare?

Ps L’ordine non è uguale…

Re: Confronto file

Inviato: giovedì 11 febbraio 2021, 18:11
da patel
fai un ciclo sui valori del primo file, per ogni valore fai un find nel range dei valori del secondo, se il find riesce fai un contrassegno nella cella accanto al valore cercato.
Se puoi copia la colonna del secondo accanto a quella del primo, è più agevole lavorare con un solo file ed un solo foglio.

Re: Confronto file

Inviato: giovedì 11 febbraio 2021, 20:59
da mapa3n
...potresti gentilmente fare un esempio?

Re: Confronto file

Inviato: giovedì 11 febbraio 2021, 22:59
da patel
Ammettiamo di avere i dati nel foglio1 in col A quelli del file1 e in col B quelli del file2, prova questa macro modificando i valori Lr1 e Lr2

Codice: Seleziona tutto

Sub confronta
  Sh = ThisComponent.Sheets(0)
  LR1 = 11 ' ultima riga colonna A
  LR2 = 5  ' ultima riga colonna B
  oRange = Sh.getCellRangeByName("B1:B" & LR2)
   for r=0 to LR1 - 1
      ean = Sh.GetCellByPosition(0, r).String
      oFoundCell = SimpleSheetSearch(ean, oRange)
      if not IsNull(oFoundCell) then  
        Sh.GetCellByPosition(0, r).CellBackColor = rgb (0,255,0)
      end if
   next
End Sub

Function SimpleSheetSearch(sString, oRange) As Variant
  Dim oDescriptor
  Dim oFound
  REM Create a descriptor from a searchable document.
  oDescriptor = oRange.createSearchDescriptor()
  With oDescriptor
    .SearchString = sString
    .SearchWords = False
    .SearchCaseSensitive = False
  End With
  oFound = oRange.findFirst(oDescriptor)
  SimpleSheetSearch = oFound
End Function