nouveau problème de macro de recherche...

gwad063

XLDnaute Nouveau
Bonjour à tous,

Je m'adresse à vous car j'ai un nouveau problème de macro à résoudre : j'ai essayer de créer une macro qui compare les valeurs de la colonne B de la feuille "Transactions par rôle" de mon fichier Excel "Proposition finale données de base version 1" aux valeurs de la colonne B de mon fichier Excel "Donnees_de_base"...
Lorsqu'elle la trouve, elle vient mettre le nom de cette valeur trouvée dans la colonne A de la feuille "Transactions Donnees de base" de mon fichier "Proposition finale données de base" et dans la colonne B de cette même feuille, la valeur correspondante (qui est en fait la valeur texte dans la colonne A de mon fichier "Donnees_de_base")...l'incrémentation venant se faire à partir de la 2ème ligne, la 1ère étant réservée à l'entête de mon tableau...
Voilà pour les infos, j'espère que vous avez réussi à suivre.
J'ai déjà réalisé une macro à partir d'un modèle qui m'avait été proposé pour résoudre un autre problème de recherche (merci bqtr...); mon problème, c'est qu'elle marche pas et je sais pas trop d'où provient mon/mes erreurs vu qu'elle "tourne" mais ne vient pas mettre les valeurs dans ma feuille "Transaction données de base" (elle s'arrête vers la 9ème ligne)...
Voilà à quoi ça ressemble :

Option Explicit

Private Sub CommandButton1_Click()

Dim cell As Range, k As Long, I As Long
Dim Wb2 As Workbook
Dim Ws As Worksheet

Application.ScreenUpdating = False
Application.DisplayStatusBar = True
Application.StatusBar = "Traitement en cours, veuillez patienter..."

Workbooks.Open Filename:=ThisWorkbook.Path & "\Donnees_de_base.xls"
Workbooks("Proposition finale données de base version 1.xls").Activate
Set Wb2 = Workbooks("Donnees_de_base.xls")
Set Ws = Wb2.Sheets("Master Datas")
Sheets("Transactions Données de Base").Range("A2:B" & Sheets("Transactions Données de Base").Range("A65536").End(xlUp).Row + 1) = ""
k = Sheets("Transactions Données de Base").Range("A65536").End(xlUp).Row + 1
For I = 2 To Range("B65536").End(xlUp).Row
For Each cell In Ws.Range("B2:B" & Ws.Range("B65536").End(xlUp).Row)
If Range("B" & I) = cell Then
With Sheets("Transactions Données de Base")
.Cells(k, 1) = Range("B" & I)
.Cells(k, 2) = Ws.Cells(cell.Offset(0, 0).Row, cell.Offset(0, -1).End(xlUp).Column).Value
End With
k = k + 1
Else
I = I + 1
End If
Next
Next
Sheets("Transactions Données de Base").Activate
Application.StatusBar = False
Application.ScreenUpdating = True
End Sub

Mon erreur vient (à priori) du fait que ma macro compare la valeur la ligne 2 de ma feuille 1 à la ligne 2 de ma feuille 2, ligne 3 avec la ligne 3, etc...elle ne balaie pas l'intégralité de la plage et j'aimerai bien comprendre pourquoi...Si quelqu'un peut me donner quelques explications...
En pièce jointe, les 2 fichiers...
Merci par avance...
 

Pièces jointes

  • Donnees_de_base.zip
    18 KB · Affichages: 18
  • Proposition finale données de base version 1.zip
    27.1 KB · Affichages: 11
  • Proposition finale données de base version 1.zip
    27.1 KB · Affichages: 10
  • Proposition finale données de base version 1.zip
    27.1 KB · Affichages: 11

gwad063

XLDnaute Nouveau
Re : nouveau problème de macro de recherche...

Bon, je sais que j’en demande beaucoup vu le nombre de post déjà présents sur le sujet ; je vais continuer à chercher de mon côté pourquoi ça ne marche pas comme je le souhaite…
Malgré tout, si une âme charitable passe par là et peut me donner quelques tuyaux, je suis toujours preneur :D;
Bonne aprem ; @ +
Alex.

P.S.: Quoiqu’il en soit, c’est aussi l’occasion pour moi de dire à quel point ce forum (et les gens qui le font vivre) m’a apporté depuis que je viens le consulter; donc merci encore.
 

jp14

XLDnaute Barbatruc
Re : nouveau problème de macro de recherche...

Bonsoir

Bonjour à tous,

une macro qui compare les valeurs de la colonne B de la feuille "Transactions par rôle" de mon fichier Excel "Proposition finale données de base version 1" aux valeurs de la colonne B de mon fichier Excel "Donnees_de_base"...


Sheets("Transactions Données de Base").Range("A2:B" & Sheets("Transactions Données de Base")
k = Sheets("Transactions Données de Base")
With Sheets("Transactions Données de Base")



Merci par avance...
Dans la macro on ne trouve pas cette feuille "Transactions par rôle"

JP
 

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 757
dernier inscrit
mikha