comparer des lignes sur macro excel - VB/VBA/VBS - Programmation
Marsh Posté le 03-02-2012 à 15:56:19
" If Mid(Sheets("BL Interne" ).Cells(j, 4), 2) = Sheets("Export ANO_ITEM_LIV" ).Cells(j, 2) Then "
Désolé je rectifie cette faute de frappe!!
Marsh Posté le 03-02-2012 à 16:14:01
Bonjour,
qu'est ce qui ne fonctionne pas
ca m'a l'air correct
Marsh Posté le 03-02-2012 à 16:17:31
Merci 86vomito33 d'avoir pris le temps de lire mon message!!
le probleme c'est que rien ne saffiche sur la troisieme feuille ("feuil1" ) alors que c'est censé m'afficher "yes" !!
Marsh Posté le 03-02-2012 à 16:21:48
et si tu remplaces ton <> (différent) par un =
Marsh Posté le 03-02-2012 à 16:26:19
oui en fait je mettais tromper c'est pour sa j'ai rectifier mais sa ne marche toujours pas au contraire quand je met "<>" sa m'affiche le message et quand je met "=" sa ne fait rien alors que sa devrait etre l'inverse. Déeolé de t'importuner!!!
Marsh Posté le 03-02-2012 à 16:31:27
ca doit etre lié au fait que tu compares du texte et un nombre
essai str(Sheets("Export ANO_ITEM_LIV" ).Cells(j, 2))
Marsh Posté le 03-02-2012 à 16:41:52
Sa ne marche pas cela m'affiche une erreur de "compilation" sur le "str"!! pour info c'est la feuille "BL Interne" qui contient les "R1300,...." et c'est Export ANO_ITEM_LIV qui contien parfois les mêmes chiffre mais sans les lettres.
Marsh Posté le 03-02-2012 à 16:47:01
cells(j,2).value
mets une version allegee de ton fichier excel sur cjoint et donne nous le lien
la je vois pas
Marsh Posté le 03-02-2012 à 16:55:13
comment fait on pour vous transferez un fichier?? desolé...
Marsh Posté le 03-02-2012 à 16:56:57
à l'inverse essai if val(Mid(Sheets("BL Interne" ).Cells(j, 4), 2))= Sheets("Export ANO_ITEM_LIV" ).Cells(j, 2) Then
Marsh Posté le 03-02-2012 à 17:02:29
La premiere feuille correspond au "BL Interne" et la deuxieme a "Export ANO_ITEM_LIV".
Marsh Posté le 03-02-2012 à 17:08:37
du coup ca marche
et n'oubli pas de remettre Application.DisplayAlerts = True avant end sub
Marsh Posté le 03-02-2012 à 17:17:28
en fait je viens d'essayer ce que tu m'as dit et s'a maffiche le message a la ligne 42 de la feuille export ano_item_liv! et dans cette ligne il n'y a pas de numéros!! je sais pas pourquoi cela fait sa !!!
Marsh Posté le 03-02-2012 à 17:23:41
abder92 a écrit : Bonjour a tous, |
Salut,
Es-tu obligé d'utiliser vba dans ton travail ? Ce qui t'est demandé semble faisable avec les fonctions standard, simplement en tirant une formule dans la troisième feuille
Ce serait une formule du style =SI(EXACT(a!A2;STXT(b!A2;2;NBCAR(b!A2)-1));"OK";"KO", où les 2 premieres feuilles ont pour nom a et b.
Encore plus sympa, tu peux te passer de la troisieme feuille et faire un coloriage sur les 2 premieres en utilisant la mise en forme conditionnelle.
Marsh Posté le 03-02-2012 à 17:27:30
Salut alcaa,
merci de ton aide et ou en effet je suis obligé d'utiliser vba !! j'avais penser a faire ta technique mais c'est vrai je n'ai jamais essayé!! je m'y met de suite merci pour ton aide !!
Marsh Posté le 03-02-2012 à 17:48:24
je suis obliger de le faire en vba. et je bloque toujours!! pouvez vous m'aider ?? desolé de vous importuner!!
Marsh Posté le 03-02-2012 à 17:59:22
je suis pas sur d'avoir compris ce que tu souhaite faire
peux tu mettre sur une feuille excel ce a quoi ressemblerait ta feuil1 si tout marchait parfaitement
parce que si c'est simplement des yes je vois pas comment tu l'exploiteras
Marsh Posté le 03-02-2012 à 18:05:27
en fait ce n'est pas s'implement des "yes" il faudrait aussi que si il n'y a pas concordance qu'au lieu d'afficher "yes" il m'affiche le contenu de la cellule "Nom" du BL Interne ou sa bloque.
voila un exemple http://cjoint.com/?BBdsfgxFNWg
Marsh Posté le 03-02-2012 à 18:34:22
abder92 a écrit : en fait ce n'est pas s'implement des "yes" il faudrait aussi que si il n'y a pas concordance qu'au lieu d'afficher "yes" il m'affiche le contenu de la cellule "Nom" du BL Interne ou sa bloque. voila un exemple http://cjoint.com/?BBdsfgxFNWg |
Après avoir vu le fichier, je comprends que tes Feuil1 et Feuil2 ne correspondent pas du tout ligne à ligne.
Il faut donc pour chaque ligne faire une recherche de "R" + 1xxxxx dans la colonne D de la feuille 1.
Ca peut se faire en utilisant
If iserror(result) Then |
(code approximatif)
Marsh Posté le 06-02-2012 à 09:41:13
Désolé j'ai pas pu repondre ce week end et je viens de me rendre compte qu'en effet je n'avais pas partager le bon fichier!! desolé 86vomito33 le voici!
http://cjoint.com/?BBgjOZV7WUM
merci pour ton aide alcaa je vais tester ta proposition!! merci encore
Marsh Posté le 06-02-2012 à 11:20:04
la fonction concatenate ne marche pas, sa me fait une erreur, je pense que c'est sur la bonne voie...quelqu'un aurait une idée??
Marsh Posté le 06-02-2012 à 19:46:39
je te renvois le fichier modifier
http://cjoint.com/?BBgtOVTI4VB
sur la feuille 2 colonne E tu peux voir la fonction recherche v. modifie la pour récupére la bonne colonne.
je pense qu'il faudrait faire un tri croissant de ta BdD par rapport au bug ID pour éviter les erreurs
Marsh Posté le 07-02-2012 à 12:35:38
merci 86vomito33 pour ta proposition mais finalement jai gardé la premiere idée que tu m'avais suggéré au début et sa marche parfaitement merci pour ton aide!!!!
Marsh Posté le 03-02-2012 à 15:51:52
Bonjour a tous,
voila je pense qu'il y a deja eu ce probleme auparavant mais je suis débutant en vba et je n'arrive a résoudre un probleme sur lequel je suis depuis un bon bout de temps maintenant!!
voila en fait j'ai deux feuilles excel.
La premiere contient des données importées depuis une base de données et lautres contient les mêmes données mais avec quelque difference.
En effet la dans la premiere feuille il ya des numero (1350,1351..) et dans la deuxieme feuilles on retrouve parfois les mm numéros sauf qu'il y a une lettre avant (R1350,R1351...).
Ce que j'essaye de faire c'est comparer ces lignes et si on retrouve les mm chiffre alors elle affiche un message (genre "ok" ) dans une troisieme feuille. Mon soucis est de comparer c'est lignes mais en faisant disparaitre cette lettre
voila j'espere que j'ai était claire je vous remercie d'avance pour votre aide!!!!!
voila un bout de code que j'ai fait pour le moment :
Private Sub CommandButton12_Click()
'Définition des variables
j As Long
'Permet de ne pas afficher le message de fermeture de fichier
Application.DisplayAlerts = False
j = 2
While Sheets("Export ANO_ITEM_LIV" ).Cells(j, 1) <> ""
If Mid(Sheets("BL Interne" ).Cells(j, 4), 2) <> Sheets("Export ANO_ITEM_LIV" ).Cells(j, 2) Then
Sheets("Feuil1" ).Cells(j, 1) = "yes"
End If
j = j + 1
Wend
End Sub