RechercheV avec Quelques Conditions

Bonjour à tous,

Je me permets de vous déranger encore une fois, alors en fait je suis bloqué et je ne sais plus quoi faire, mes connaissances sont assez limitées et j'ai vraiment besoin de votre aide.

J'ai 2 feuilles dans mon fichier Excel, dans ma première feuille :

- j'ai mes données de mes commandes avec une date de livraison que j'ai proposé

et dans ma deuxième feuille :

- j'ai mes données de mes commandes avec une date de livraison définie par le fournisseur (car il a refusé ma date proposé).

J'ai une colonne qui s'appelle "concaténation" cette colonne me permet de faire une clé entre les 2 feuilles.

Mon but est de remplacer la date de livraison que j'ai proposée par la date de livraison que le fournisseur m'a proposé dans ma seconde feuille.

Feuil1

ArticlePosteDate Livraison
Concaténation (Article + Poste)
854126
20
25/11/2022
854126 20
875632
130
16/12/2022
875632 130
456981
90
05/01/2023
456981 90
125698
20
28/11/2022
125698 20
785369
40
22/11/2022
785369 40

Les cellules vides que vous voyez dans la colonne "Date Livraison Confirmation du Fournisseur" veut dire que le fournisseur a accepté ma date de livraison que j'ai proposé et qu'il n'y a rien à modifier.

Feuil2

ArticlePoste
Date Livraison Confirmation du Fournisseur
Concaténation (Article + Poste)
456981
90

456981 90
785369
40
08/12/2022
785369 40
875632
130
11/01/2023
875632 130
125698
20

125698 20
854126
20
15/02/2023
854126 20

Je travaille avec plus de 500 articles et je dois créer une macro VBA qui me permettra d'importer les dates de livraisons confirmées par le fournisseur dans ma Feuille1 et le remplacée par la date que j'ai proposée.

Mon seul lien entre les feuilles c'est ma colonne "concaténation".

J'avais trouvé un code qui me permettait par une RechercheV (VlookUp) de copier les dates mais il prenait en compte aussi les cellules vides de la seconde feuille et ça ne fonctionnait pas puis j'ai finalement décider de tous recommencer mais je suis perdu.

Pouvez-vous m'aider sur ce problème s'il vous plaît ?

Je vous remercie d'avance pour vos futurs proposition et réponse.

13exemple.xlsx (11.74 Ko)

Bonsoir.

Voici ma proposition :

Bonsoir à tous !

Une proposition via Power Query (nativement intégré à votre Excel) sur la base du fichier produit pas Ddken (merci !) :

Note : L'identifiant unique (Article + Poste) pourrait être mis en place dans Power Query uniquement.

Bonsoir,

Merci pour votre proposition, mais le fichier se met à jour tous les semaines est il va être utiliser par mes collègues aussi, c'est pour cela que mon chef ma demander une macro même si les tableaux filtres ça fonctionne mais vu que on extrait la base de donne sur notre logiciel il faut toujours faire la manipulation c'est pour cela qu'il na pas voulu.

Sinon j'vais un début de code qui pourrait marcher mais non :

Sub test()

'Déclaration et affectation de la variable

Dim PlageFeuil2 As Range
Dim PlageFeuil1 As Range

Dim Save As Range
Dim N As Long

Application.ScreenUpdating = False
Application.EnableEvents = False

Set PlageFeuil1 = Sheets("Feuil1").Range("T2:T").Value 'colonne concatenation (cle unique) de la feuil1

Set PlageFeuil2 = Sheets("Feuil2").Range("A2:AK25632").Value 'tous le tableau de la feuil2

Save = 0

If Sheets("Feuil2").Range("W2:W").Value <> "" Then 'colonne de la date de livraison du fournisseur 

For N = 2 To 256987 'Boucle sur toutes les lignes 

    Save = Application.VLookup(PlageFeuil1(T, 2), PlageFeuil2, 11, False) 'Boucle sur les lignes feuille Data

Next N ' boucle

Sheets("Format").Range("F2:F").Value = Save 'Ecriture résultat dans la colonne date livraison de feuil1

End If

Application.EnableEvents = True
Application.ScreenUpdating = True

End Sub

Bonsoir à tous de nouveau !

La mise à jour du tableau retourné par Power Query nécessite ......une simple actualisation, c'est-à-dire..un clic ! Facile non ?

Cela étant si VBA est un point de passage obligé, je passe la main aux spécialistes de la chose.

Bonsoir Meeti,

Il est vraiment dommage, que d'une part, votre organisation se dote d'Office 365, et que d'autre part, refuse tout ce que cela puisse offrir, en terme de puissance de calcul, d'analyse, de nouveauté...

Ce que JFL vous a proposé, c'est justement l'avenir...

Les macros, il faut les garder dans leur contexte, mais dès lors qu'on veut faire de la "base de données", il faut penser "autrement"

@ vous de voir, mais perso, j'opte "Power Query" sans aucune hésitation

Bonne soirée, et bon W-E

bonjour,

et une solution avec de formules comme celle de Ddken ?

Je voudrais vraiment remercier JFL pour cette proposition d’abord qui est assez intéressant

C'est vrai que Power Query est un outil assez puissant pour traiter les bases de données mais le souci c'est que là où je travaille mes collègues sont bientôt à l'âge de la retraite et ils ne sont pas spécialisée dans l’informatique surtout avec Excel.

Si je dois mettre en place un Power Query je dois former mes collègues sur cette nouvelle action et qui dit former veut dire prendre du temps et ça va être compliquer avec l’équipe là où je travaille. C'est pour cela que mon chef voulait seulement que des boutons (macro) mais personnellement je choisirai aussi Power Query.

Je sais plus quoi faire je suis dans un hamburger

BsAlv

Oui les filtres c'est envisageable mais le soucis c'est la multitude d'action à faire et ça tous les semaines pour moi y a pas de soucis mais je dois faire quelque chose d'"ergonomique" et collective pour l'equipe

Re-,

J'ai beaucoup développé dans mon boulot. Maintenant que je suis retraité, j'ai aussi beaucoup de demandes de "oups, ça beug"...

Et je me suis rendu compte qu'un fichier qui fonctionne au "Top" avec des macros, ne fonctionne que le temps où le gars qui l'a mis en place, est toujours "en place"..

Une macro ne dure que si son "géniteur" est là... (y'a ou y'aura toujours des "t'inquiètes, je vais améliorer-adapter-modifier")

S'il est vrai, comme le souligne à juste titre BsAlv, que les formules sont indémodables, il faut penser au suivi, et à la "maintenance" du produit...

Bref, si tes chefs veulent "macros", OK, mais propose-leur aussi une alternative plus "aware", like JCVD...

bonjour, le clef article&poste est unique, il ne sera jamais un deuxième ?

Bonsoir à tous de nouveau !

Version amendée :

1/ Power Query : sans ajout colonne "Concaténation"
2/ Autre approche par formule (toujours sans colonne "Concaténation")

BsAlv

Oui elle est unique y'en aura pas 2

JFL

La formule que tu utilise pour retourner la date "=LET" comment ça fonctionne ?

je n'ai pas encore assez d'experience avec les formules LET

10exemple-15.xlsb (23.62 Ko)

...

Bonsoir à tous de nouveau !

La formule que tu utilise pour retourner la date "=LET" comment ça fonctionne ?

Voir la documentation Microsoft ici !

=LET(
t_DF;RECHERCHEX([@Article]&[@Poste];FournisseurF[Article]&FournisseurF[Poste];FournisseurF[Date Livraison Confirmation du Fournisseur]);
SI(t_DF=0;[@[Date personnelle]];t_DF)
)

La formule stocke dans la variable t_DF la date éventuellement proposée par le fournisseur via une RECHERCHEX.
Ensuite un simple SI permet d'effectuer un choix entre la date initiale et la date fournisseur.

Merci JFL je vais essayer ça sur le fichier original ça à l'air pas mal du tous peut être que ça peut marcher

Rechercher des sujets similaires à "recherchev conditions"