Bonjour,
Suite à mon post "Macro de recherche de valeurs dans un fichier en arborescence " d'avant hier sur lequel JP14 et BQTR m'avaient bien aidé, je reviens vers vous (la communauté dans son ensemble) parce que j'ai un nouveau problème dans mon projet : voilà, j'ai donc ma macro de recherche dans un fichier en arborescence qui fonctionne et maintenant, voilà ce qu'il faut que je fasse :
J'ai un fichier nommé "Proposition BPR 1", dedans 3 onglets :
- Transactions par rôle ;
- Transactions BPR;
- Spécifique.
Seuls le 2ème et le 3ème me sont utiles :
il faut que je créé une macro de recherche qui compare la colonne A de ma feuille "spécifique" à ma colonne E de ma feuille Transaction BPR; dès qu'elle a trouvé la même valeur, insère dans la feuille "Transaction BPR", juste en dessous de la ligne où elle a trouvé cette valeur:
- en colonne A, la valeur se trouvant en colonne B de la feuille "spécifique";
- en colonne B, C, D et E les valeurs des colonnes B, C, D et E de la ligne juste au dessus;
Et également que cette ligne insérée à chaque fois qu'une même valeur est trouvée soit automatiquement colorée afin de pouvoir mieux se repérer...
J'ai commencé à faire quelquechose, il y a pas mal d'erreurs, je pense que ça va en faire rire plusieurs d'entre vous mais bon comme je le disais dans mon post précédent, je débute (et j'aimerai bien comprendre mes erreurs...) :
Sub RecherchSpec()
Dim i As Long
Dim j As Long
Dim Wb As Workbook
Dim Ws As Sheets
Dim Role As Range
Dim TransSpec As Range
Sheets("Specifiques").Activate
Set Wb = Workbooks("Proposition BPR 1.xls")
Set Ws = Wb.Sheets("Specifique")
For i = 1 To 260
Set Role = Ws.Range("A, i")
Set TransSpec = Ws.Range("B, i")
Sheets("Transactions BPR").Activate
For j = 1 To 3000
If Wb.Sheets("transactions BPR").Range(E, j).FormulaR1C1 = Role.FormulaR1C1 Then
Rows(j + 1).Select
Selection.Insert Shift:=xlDown
Selection.Interior.ColorIndex = 44
Wb.Sheets("Transactions BPR").Range(A, j + 1).FormulaR1C1 = Ws.Range(B, i).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(E, j + 1).FormulaR1C1 = Ws.Range(A, i).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(B, j + 1).FormulaR1C1 = Ws.Range(B, j).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(C, j + 1).FormulaR1C1 = Ws.Range(C, j).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(D, j + 1).FormulaR1C1 = Ws.Range(D, j).FormulaR1C1
End If
Next j
Next i
End Sub
Voilà, j'espère que sur le descriptif, ça vous paraît assez clair, sinon, n'hésitez pas, au pire, je mettrai mon fichier en pièce jointe...
Merci d'avance.
Suite à mon post "Macro de recherche de valeurs dans un fichier en arborescence " d'avant hier sur lequel JP14 et BQTR m'avaient bien aidé, je reviens vers vous (la communauté dans son ensemble) parce que j'ai un nouveau problème dans mon projet : voilà, j'ai donc ma macro de recherche dans un fichier en arborescence qui fonctionne et maintenant, voilà ce qu'il faut que je fasse :
J'ai un fichier nommé "Proposition BPR 1", dedans 3 onglets :
- Transactions par rôle ;
- Transactions BPR;
- Spécifique.
Seuls le 2ème et le 3ème me sont utiles :
il faut que je créé une macro de recherche qui compare la colonne A de ma feuille "spécifique" à ma colonne E de ma feuille Transaction BPR; dès qu'elle a trouvé la même valeur, insère dans la feuille "Transaction BPR", juste en dessous de la ligne où elle a trouvé cette valeur:
- en colonne A, la valeur se trouvant en colonne B de la feuille "spécifique";
- en colonne B, C, D et E les valeurs des colonnes B, C, D et E de la ligne juste au dessus;
Et également que cette ligne insérée à chaque fois qu'une même valeur est trouvée soit automatiquement colorée afin de pouvoir mieux se repérer...
J'ai commencé à faire quelquechose, il y a pas mal d'erreurs, je pense que ça va en faire rire plusieurs d'entre vous mais bon comme je le disais dans mon post précédent, je débute (et j'aimerai bien comprendre mes erreurs...) :
Sub RecherchSpec()
Dim i As Long
Dim j As Long
Dim Wb As Workbook
Dim Ws As Sheets
Dim Role As Range
Dim TransSpec As Range
Sheets("Specifiques").Activate
Set Wb = Workbooks("Proposition BPR 1.xls")
Set Ws = Wb.Sheets("Specifique")
For i = 1 To 260
Set Role = Ws.Range("A, i")
Set TransSpec = Ws.Range("B, i")
Sheets("Transactions BPR").Activate
For j = 1 To 3000
If Wb.Sheets("transactions BPR").Range(E, j).FormulaR1C1 = Role.FormulaR1C1 Then
Rows(j + 1).Select
Selection.Insert Shift:=xlDown
Selection.Interior.ColorIndex = 44
Wb.Sheets("Transactions BPR").Range(A, j + 1).FormulaR1C1 = Ws.Range(B, i).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(E, j + 1).FormulaR1C1 = Ws.Range(A, i).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(B, j + 1).FormulaR1C1 = Ws.Range(B, j).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(C, j + 1).FormulaR1C1 = Ws.Range(C, j).FormulaR1C1
Wb.Sheets("Transactions BPR").Range(D, j + 1).FormulaR1C1 = Ws.Range(D, j).FormulaR1C1
End If
Next j
Next i
End Sub
Voilà, j'espère que sur le descriptif, ça vous paraît assez clair, sinon, n'hésitez pas, au pire, je mettrai mon fichier en pièce jointe...
Merci d'avance.