Fonction pour afficher la partie texte qui n'existe pas dans deux cellules
Bonsoir tout le monde, je plante sur un code vba pour affichage de la partie du texte qui n'est pas présente dans deux cellules, par exemple dans la cellule R5 et S5, je dois avoir comme résultat
EXPORT REFERENCES FORWARDER REFERENCE: ME18050123 EXPORTER'S REFERENCE NUMBER: 8BR01593699100000000000000 000176470 ITN (INTERNAL TRANSACTION NUMBER) AS PROVIDED BY THE US AES: 18BR0002535156 SHIPPER'S REFERENCE NUMBER: 18/268-SC
J'ai essayé la fonction suivante mais elle ne m'affiche que le premier mot de la différence qui est export
Function CompareStrings(ByVal keyRng As Range, ByVal ansRng As Range) As String
Dim arr() As String
Dim i As Long
Dim found As Boolean
arr() = Split(ansRng.Value, " ")
For i = 0 To UBound(arr)
If InStr(keyRng.Value, Trim(arr(i))) = 0 Then
found = True
CompareStrings = arr(i)
Exit Function
End If
Next i
If Not found Then
arr() = Split(keyRng.Value, " ")
For i = 0 To UBound(arr)
If InStr(ansRng.Value, Trim(arr(i))) = 0 Then
CompareStrings = arr(i)
Exit Function
End If
Next i
End If
End Function
S'il vous plait, aidez moi
Bonjour maha,
Ce n'est pas la seule différence :
un espace présent dans le n° RUC, la mention "CLEAN AND " absente et ce que vous citez,
01 X 20 DRY FCL CONTAINING: 80 DRUMS ON 20 PALLETS WITH 13.600,00 KG OF DIPENTENE SOLVENTE 820-T. N.C.M: 3805.90.90 / HS CODE: 3805.90 IMO CLASS 3 UN 2319 PKG III FLASH POINT 47 C 13.60 M. TONS 1 FCL DIPENTENE 93 PCT MIN (SOLVENT 820-T) CFR KARACHI, PAKISTAN PACKED IN 170 KGS NET EACH DRUM ON 20 FUMIGATED PALLET, AS PER INDENT NO.786/KBA/7420 DATED 14-06-2018 OF M/S. KHWAJA BASIR AHMED, KARACHI (H.S.CODE:2902.1920 FOR APPLICANT COUNTRY) (H.S.CODE:3805.9090 FOR BENEFICIARY COUNTRY) IMPORTERS NATIONAL TAX NO.0897153-6 LC/01/001/97805 DT 180626 NCM: 3805.90.90 / HS CODE: 3805.90 THE GOODS ARE OF BRAZIL ORIGIN. PORT OF DISCHARGE: KARACHI SEA PORT P.O. # P-126/18SC INVOICE: 18/268-SC DU-E: 18BR000253515-6 RUC: 8BR01593699100000000000000 000176470 14-DAYS FREE DETENTION TIME AT DISCHARGE PORT CLEAN AND SHIPPED ON BOARD FREIGHT PREPAID / FREIGHT AS PER AGREEMENT WOODEN PACKING: TREATED AND CERTIFIED *SHIPPER CONTINUATION: SALTO/SP - BRAZIL CONTACT: MR. MARIO SPERONI NETO PH: 55 (11) 4028-9900 *NOTIFY CONTINUATION: STREET, JODIA BAZAR KARACHI, PAKISTAN PHONE: 021-32441931 38059090 EXPORT REFERENCES FORWARDER REFERENCE: ME18050123 EXPORTER'S REFERENCE NUMBER: 8BR01593699100000000000000 000176470 ITN (INTERNAL TRANSACTION NUMBER) AS PROVIDED BY THE US AES: 18BR0002535156 SHIPPER'S REFERENCE NUMBER: 18/268-SC
01 X 20 DRY FCL CONTAINING: 80 DRUMS ON 20 PALLETS WITH 13.600,00 KG OF DIPENTENE SOLVENTE 820-T. N.C.M: 3805.90.90 / HS CODE: 3805.90 IMO CLASS 3 UN 2319 PKG III FLASH POINT 47 C 13.60 M. TONS 1 FCL DIPENTENE 93 PCT MIN (SOLVENT 820-T) CFR KARACHI, PAKISTAN PACKED IN 170 KGS NET EACH DRUM ON 20 FUMIGATED PALLET, AS PER INDENT NO.786/KBA/7420 DATED 14-06-2018 OF M/S. KHWAJA BASIR AHMED, KARACHI (H.S.CODE:2902.1920 FOR APPLICANT COUNTRY) (H.S.CODE:3805.9090 FOR BENEFICIARY COUNTRY) IMPORTERS NATIONAL TAX NO.0897153-6 LC/01/001/97805 DT 180626 NCM: 3805.90.90 / HS CODE: 3805.90 THE GOODS ARE OF BRAZIL ORIGIN. PORT OF DISCHARGE: KARACHI SEA PORT P.O. # P-126/18SC INVOICE: 18/268-SC DU-E: 18BR000253515-6 RUC: 8BR01593699100000000000000 000176470 14-DAYS FREE DETENTION TIME AT DISCHARGE PORT CLEAN AND SHIPPED ON BOARD FREIGHT PREPAID / FREIGHT AS PER AGREEMENT WOODEN PACKING: TREATED AND CERTIFIED *SHIPPER CONTINUATION: SALTO/SP - BRAZIL CONTACT: MR. MARIO SPERONI NETO PH: 55 (11) 4028-9900 *NOTIFY CONTINUATION: STREET, JODIA BAZAR KARACHI, PAKISTAN PHONE: 021-32441931 38059090 EXPORT REFERENCES FORWARDER REFERENCE: ME18050123 EXPORTER'S REFERENCE NUMBER: 8BR01593699100000000000000 000176470 ITN (INTERNAL TRANSACTION NUMBER) AS PROVIDED BY THE US AES: 18BR0002535156 SHIPPER'S REFERENCE NUMBER: 18/268-SC
Bonjour maha,
je te retourne ton fichier Excel modifié :
fais Ctrl e ; sans l'espace en trop dans le RUC (puis sans le "CLEAN AND " en trop), tu aurais eu le résultat que tu as indiqué :
EXPORT REFERENCES FORWARDER REFERENCE: ME18050123 EXPORTER'S REFERENCE NUMBER: 8BR01593699100000000000000 000176470 ITN (INTERNAL TRANSACTION NUMBER) AS PROVIDED BY THE US AES: 18BR0002535156 SHIPPER'S REFERENCE NUMBER: 18/268-SC
regarde ci-dessous ma citation fluorée pour mieux voir les différences
@njhub : pour ta citation fluorée, tu as répété en bas le même texte qu'en haut !
01 X 20 DRY FCL CONTAINING: 80 DRUMS ON 20 PALLETS WITH 13.600,00 KG OF DIPENTENE SOLVENTE 820-T. N.C.M: 3805.90.90 / HS CODE: 3805.90 IMO CLASS 3 UN 2319 PKG III FLASH POINT 47 C 13.60 M. TONS 1 FCL DIPENTENE 93 PCT MIN (SOLVENT 820-T) CFR KARACHI, PAKISTAN PACKED IN 170 KGS NET EACH DRUM ON 20 FUMIGATED PALLET, AS PER INDENT NO.786/KBA/7420 DATED 14-06-2018 OF M/S. KHWAJA BASIR AHMED, KARACHI (H.S.CODE:2902.1920 FOR APPLICANT COUNTRY) (H.S.CODE:3805.9090 FOR BENEFICIARY COUNTRY) IMPORTERS NATIONAL TAX NO.0897153-6 LC/01/001/97805 DT 180626 NCM: 3805.90.90 / HS CODE: 3805.90 THE GOODS ARE OF BRAZIL ORIGIN. PORT OF DISCHARGE: KARACHI SEA PORT P.O. # P-126/18SC INVOICE: 18/268-SC DU-E: 18BR000253515-6 RUC: 8BR01593699100000000000000000176470 14-DAYS FREE DETENTION TIME AT DISCHARGE PORT CLEAN AND SHIPPED ON BOARD FREIGHT PREPAID / FREIGHT AS PER AGREEMENT WOODEN PACKING: TREATED AND CERTIFIED *SHIPPER CONTINUATION: SALTO/SP - BRAZIL CONTACT: MR. MARIO SPERONI NETO PH: 55 (11) 4028-9900 *NOTIFY CONTINUATION: STREET, JODIA BAZAR KARACHI, PAKISTAN PHONE: 021-32441931 38059090
01 X 20 DRY FCL CONTAINING: 80 DRUMS ON 20 PALLETS WITH 13.600,00 KG OF DIPENTENE SOLVENTE 820-T. N.C.M: 3805.90.90 / HS CODE: 3805.90 IMO CLASS 3 UN 2319 PKG III FLASH POINT 47 C 13.60 M. TONS 1 FCL DIPENTENE 93 PCT MIN (SOLVENT 820-T) CFR KARACHI, PAKISTAN PACKED IN 170 KGS NET EACH DRUM ON 20 FUMIGATED PALLET, AS PER INDENT NO.786/KBA/7420 DATED 14-06-2018 OF M/S. KHWAJA BASIR AHMED, KARACHI (H.S.CODE:2902.1920 FOR APPLICANT COUNTRY) (H.S.CODE:3805.9090 FOR BENEFICIARY COUNTRY) IMPORTERS NATIONAL TAX NO.0897153-6 LC/01/001/97805 DT 180626 NCM: 3805.90.90 / HS CODE: 3805.90 THE GOODS ARE OF BRAZIL ORIGIN. PORT OF DISCHARGE: KARACHI SEA PORT P.O. # P-126/18SC INVOICE: 18/268-SC DU-E: 18BR000253515-6 RUC: 8BR01593699100000000000000 000176470 14-DAYS FREE DETENTION TIME AT DISCHARGE PORT SHIPPED ON BOARD FREIGHT PREPAID / FREIGHT AS PER AGREEMENT WOODEN PACKING: TREATED AND CERTIFIED *SHIPPER CONTINUATION: SALTO/SP - BRAZIL CONTACT: MR. MARIO SPERONI NETO PH: 55 (11) 4028-9900 *NOTIFY CONTINUATION: STREET, JODIA BAZAR KARACHI, PAKISTAN PHONE: 021-32441931 38059090 EXPORT REFERENCES FORWARDER REFERENCE: ME18050123 EXPORTER'S REFERENCE NUMBER: 8BR01593699100000000000000 000176470 ITN (INTERNAL TRANSACTION NUMBER) AS PROVIDED BY THE US AES: 18BR0002535156 SHIPPER'S REFERENCE NUMBER: 18/268-SC
dhany
Salut Maha,
premier jet imparfait et à la mécanique semi-aléatoire mais qui a le mérite d'exister. C'est déjà ça de pris!
La mise en forme des caractères d'une cellule étant manifestement impossible lorsqu'ils proviennent d'une formule, je reporte les deux textes de deux cellules à droite pour traitement.
Un double-clic démarre la macro.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tData1, tData2, iStart%, iFlag%, iIdx%
Cancel = True
'
Columns("R:U").Font.Color = RGB(0, 0, 0)
Columns("R:U").ColumnWidth = 45
For iRow = 5 To Range("R" & Rows.Count).End(xlUp).Row
sData1 = Replace(Replace(Replace(Range("R" & iRow).Value, " ", " "), Chr(10), " "), Chr(160), " ")
sData2 = Replace(Replace(Replace(Range("S" & iRow).Value, " ", " "), Chr(10), " "), Chr(160), " ")
tData1 = Split(sData1, Chr(32))
tData2 = Split(sData2, Chr(32))
Range("T" & iRow).Value = sData1
Range("U" & iRow).Value = sData2
'
For k = 1 To 2
iStart = 1: iFlag = 0: iIdx = 0
If k = 1 Then
For x = 0 To UBound(tData1)
If x > 0 Then iStart = iStart + Len(tData1(x - 1)) + 1
iOK = 0
For Z = iFlag To UBound(tData2)
If tData1(x) = tData2(Z) Then
If iIdx = 0 Then iFlag = Z
iOK = 1: Exit For
End If
Next
If iOK = 0 Then
If iIdx = 0 Then iFlag = x: iIdx = 1
Range("T" & iRow).Characters(iStart, Len(tData1(x))).Font.Color = RGB(255, 0, 0)
End If
Next
Else
For x = 0 To UBound(tData2)
If x > 0 Then iStart = iStart + Len(tData2(x - 1)) + 1
iOK = 0
For Z = iFlag To UBound(tData1)
If tData2(x) = tData1(Z) Then
If iIdx = 0 Then iFlag = Z
iOK = 1: Exit For
End If
Next
If iOK = 0 Then
If iIdx = 0 Then iFlag = x: iIdx = 1
Range("U" & iRow).Characters(iStart, Len(tData2(x))).Font.Color = RGB(255, 0, 0)
End If
Next
End If
Next
Next
'
End SubA+