Microsoft 365 Refléter des informations d'une data à partir d'un autre fichier Excel

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

riri90

XLDnaute Nouveau
Bonjour,

Je suis nouvelle sur ce forum où j'espère trouver une réponse à mon problème 🙏

J'ai un premier fichier qui est une Macro qui, une fois exécutée chaque matin, me donne des nouveaux numéros de dossiers qui viennent s'ajouter à ceux qui étaient là auparavant.
Je souhaiterais automatiser le process suivant en code VBA:
A partir d'un deuxième fichier que j'exporte chaque matin à partir d'une platform et que j'enregistre dans un dossier donné, je dois vérifier le statu des dossiers qui sont sur la Macro que j'ai exécutée (anciens et nouveaux), un par un: s'ils ont été traité ou pas encore et aussi faire un copier coller de certaines informations (date de traitement, personne qui a traité le dossier ...) pour chaque dossier.

PS: Les numéros de dossiers ne sont pas appelés de la même manière sur les deux fichiers, exemple :
- Sur le fichier Macro ==> KSM_1234
- Sur le fichier exporté ==> 1234

J'espère que ma requête est claire et que vous pourriez m'aider à y trouver une solution.

Je vous remercie d'avance pour votre aide.
 
Je vous remercie pour vos retours.

Ci-joint un exemple des deux fichiers :
FichierObtenuDeLaMacro ==> c'est ce fichier que je souhaiterais compléter à l'aide du deuxième ==> FichierExporte.

PS:
- Les noms de dossiers figurants sur les colonnes A des deux fichiers ne sont pas exactement les mêmes ;
- Pareil pour le nom de l'analyst ( j'ai besoin de refléter que le prénom) et les date (besoin que de la date pas l'heure) ;
- Tous les dossiers qui ont un Nbr (colonne E sur le FichierExprote) sont déjà traités, donc je souhaiterais avoir la colonne E du FichierObtenuDeLaMacro en "Terminé" sinon "En cours" ;
- Si pas le dossier ne contient pas Nbr (colonne E sur le FichierExprote), ne rien remplir sur FichierObtenuDeLaMacro ;
- Sur les cellules des colonnes B, C,D,E du FichierObtenuDeLaMacro, il y a une liste déroulante déjà mis en place.

J'espère que j'ai été assez claire cette fois-ci 🙂

merci d'avance pour vos retours
 

Pièces jointes

Bonjour,

Essaie :

VB:
Sub Remplir()
  Dim C As Range, Sh As Worksheet, Txt As String, Ligne As Variant
  Set Sh = Workbooks("FichierExporte.xlsx").Sheets("Sheet1")
  With Sheets("Legacy Pipe")
    For Each C In .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
      Txt = Application.Substitute(C.Value, "KSM_", "")
      Ligne = Application.Match(Txt * 1, Sh.[A:A], 0)
      If IsNumeric(Ligne) Then
        C.Offset(, 1) = Sh.Cells(Ligne, 4)
        C.Offset(, 2) = Sh.Cells(Ligne, 2)
        C.Offset(, 3) = Sh.Cells(Ligne, 3)
        C.Offset(, 5) = Sh.Cells(Ligne, 5)
      End If
    Next C
  End With
End Sub

Daniel
 
Bonjour,

Essaie :

VB:
Sub Remplir()
  Dim C As Range, Sh As Worksheet, Txt As String, Ligne As Variant
  Set Sh = Workbooks("FichierExporte.xlsx").Sheets("Sheet1")
  With Sheets("Legacy Pipe")
    For Each C In .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
      Txt = Application.Substitute(C.Value, "KSM_", "")
      Ligne = Application.Match(Txt * 1, Sh.[A:A], 0)
      If IsNumeric(Ligne) Then
        C.Offset(, 1) = Sh.Cells(Ligne, 4)
        C.Offset(, 2) = Sh.Cells(Ligne, 2)
        C.Offset(, 3) = Sh.Cells(Ligne, 3)
        C.Offset(, 5) = Sh.Cells(Ligne, 5)
      End If
    Next C
  End With
End Sub

Daniel
Merci Daniel pour ton retour. Cepandant, en insérant ce code dans celui de la macro, je rencontre quelques bugs. Cette ligne là est surlignée en jaune : Set Sh = Workbooks("FichierExporte.xlsx").Sheets("Sheet1")

Est ce que c'est dû aux lignes précédentes ?

Merci
 
Txt est la variable qui contient le ID CASE après la suppression de "KSM_". C'est une variable texte (String). Pour la transformer en numérique afin de la comparer à l'autre fichier, on la multiplie par 1 (Txt* 1).
"Application.Match" est en VBA, l'équivalent de EQUIV dans Excel. on obtient le n° de ligne correspondant à l'ID case.

Daniel
 
Txt est la variable qui contient le ID CASE après la suppression de "KSM_". C'est une variable texte (String). Pour la transformer en numérique afin de la comparer à l'autre fichier, on la multiplie par 1 (Txt* 1).
"Application.Match" est en VBA, l'équivalent de EQUIV dans Excel. on obtient le n° de ligne correspondant à l'ID case.

Daniel
Super merci !
et le Sh.[A:A] ??
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour