cathodique
XLDnaute Barbatruc
Bonsoir,
J’ai 2 tableaux TbA représentant un historique avec en colonne 2 des numéros de dossier (NoDossier), je voudrais récupérer les données de la colonne 5 (Cat.) dans le second tableau TbB (auquel on ajoute une colonne par code) ayant les mêmes NoDossier en colonne 1.
Je rencontre une difficulté récupérer les données (Cat.) séparées par un slash (/) mais sans doublons.
Je vous donne un exemple concret du fichier joint (nb: j'ai ajouté une feuille résultat juste pour vérifier l'exactitude du rendu du code).
Dans le tableau TbA, le Nodossier 2021134 se retrouve :
en ligne 2 a pour Cat.=Cd
en ligne 65 a pour Cat.=Fa
en ligne 68 a pour Cat.=Fa
Je voudrais reporter dans la 13ème colonne du tableau TbB -à Cd/Fa, pas 2 fois Fa
Pour 2023133 --à Cat= Cd/Fa
Pour 2023135 --à Cat= Cd/Ad
Mon code fait le boulot, mais je ne bloque pour faire ce que j’ai essayé d’expliquer ci-dessus.
Je n’arrive pas à bien utiliser la Fonction InStr.
J’espère avoir été clair, avec tous mes remerciements.
Bonne soirée
J’ai 2 tableaux TbA représentant un historique avec en colonne 2 des numéros de dossier (NoDossier), je voudrais récupérer les données de la colonne 5 (Cat.) dans le second tableau TbB (auquel on ajoute une colonne par code) ayant les mêmes NoDossier en colonne 1.
Je rencontre une difficulté récupérer les données (Cat.) séparées par un slash (/) mais sans doublons.
Je vous donne un exemple concret du fichier joint (nb: j'ai ajouté une feuille résultat juste pour vérifier l'exactitude du rendu du code).
Dans le tableau TbA, le Nodossier 2021134 se retrouve :
en ligne 2 a pour Cat.=Cd
en ligne 65 a pour Cat.=Fa
en ligne 68 a pour Cat.=Fa
Je voudrais reporter dans la 13ème colonne du tableau TbB -à Cd/Fa, pas 2 fois Fa
Pour 2023133 --à Cat= Cd/Fa
Pour 2023135 --à Cat= Cd/Ad
VB:
Option Explicit
Option Compare Text
'------------------------------------------------------
Sub Completer_Categorie_TbB() 'à exploiter
Dim b, c, i As Long, clé, p As Long, x As Byte
i = 0
b = [TbB].Value 'Fiche
c = [TbA].Value 'Affectation
ReDim Preserve b(1 To UBound(b), 1 To UBound(b, 2) + 1)
For Each clé In Range("TbA[NoDossier]")
i = i + 1
p = Application.Match(clé, Application.Index(c, , 2), 0) ' Recherche dans colonne NoDossier du tableau c()
If b(p, 13) = "" Then
b(p, 13) = c(i, 5)
Else
x = InStr(c(i, 5), b(p, 13))
Debug.Print "x= " & x, b(p, 13)
If x = 0 Then
b(p, 13) = b(p, 13) & "/" & c(i, 5)
Else
End If
End If
Next
With Feuil3
.Activate
.[A1].CurrentRegion.ClearContents
.[A1].Resize(UBound(b), UBound(b, 2)) = b
End With
End Sub
Mon code fait le boulot, mais je ne bloque pour faire ce que j’ai essayé d’expliquer ci-dessus.
Je n’arrive pas à bien utiliser la Fonction InStr.
J’espère avoir été clair, avec tous mes remerciements.
Bonne soirée