Recherche avec multi conditions - VBA
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à toutes et tous,
Petit nouveau sur le site, je me lance dans la programmation VBA.
Je dois mettre en place une base tarifaire. Celle-ci sera liée aux tarifs envoyés par les fournisseurs (environ une centaine)
Je bloque sur la recherche conditionnelle.
J'ai deux cas de figure:
1) Je dois rapatrier le tarif le plus élevé d'un article d'un fournisseur sur la base tarifaire
2) Je dois rapatrier en fonction du conditionnement (palette de 100, palette de 50, piece unitaire, ...) les prix.
Je pensais pour le 1er point (mais cela ne marche pas) à la formule suivante:
Sub EssaiFournisseur() Dim Ligne1 As Long, ligne2 As Long, Ligne3 As Long, ligne4 As Long, ligne2 = Sheets("Donnees").Columns(16).Find("*", , , , xlByColumns, xlPrevious).Row Ligne1 = Sheets("Nicoll").Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row Ligne3 = Sheets("Nicoll").Columns(21).Find("*", , , , xlByColumns, xlPrevious).Row Ligne4 = Sheets("Nicoll").Columns(10).Find("*", , , , xlByColumns, xlPrevious).RowFor n = 1 To ligne2 For m = 1 To Ligne1 For p = 1 To Ligne3 For q = 1 To Ligne4 If p>q And Sheets("Donnees").Range("P" & n) = Sheets("Nicoll").Range("C" & m) ThenSheets("Donnees").Range("AE" & n) = Sheets("Nicoll").Range("U" & m) End If Next Next End Sub
Merci de votre aide
J'ai joint un fichier dont les chiffres ont été changés
- Recherche avec multi conditions - VBA
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Youtube multi downloader - Télécharger - Conversion & Codecs
- Recherche photo - Guide
- Recherche de pairs utorrent ✓ - Forum Téléchargement
- Sfr multi - Accueil - Opérateurs & Forfaits
3 réponses
bonjour,
Peux-tu prendre soin de partager un code correct? Les lignes 11 et 19 sont bizarres.
Tiens aussi compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
Tu montres un code sans expliquer en quoi son comportement ne te convient pas.
Bonjour,
Merci pour votre mail. Comme je débute en VBA et sur ce site, je ne maitrise pas encore tout loin de là.
Je m'en excuse. Le code ne me convient pas car il ne fonctionne pas. Je l'ai un peu modifié comme vous pouvez le voir néanmoins quand je l'exécute il m'indique erreur de compilation erreur de syntaxe.
Merci pour votre aide
Sub EssaiNicollprixv2() Dim Ligne1 As Long, ligne2 As Long, Ligne3 As Long, ligne4 As Long ligne2 = Sheets("Donnees").Columns(16).Find("*", , , , xlByColumns, xlPrevious).Row Ligne1 = Sheets("Nicoll").Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row Ligne3 = Sheets("Nicoll").Columns(21).Find("*", , , , xlByColumns, xlPrevious).Row ligne4 = Sheets("Nicoll").Columns(10).Find("*", , , , xlByColumns, xlPrevious).Row For n = 1 To ligne2 For m = 1 To Ligne1 For p = 1 To Ligne3 For q = 1 To ligne4 If p > q And Sheets("Donnees").Range("P" & n) = Sheets("Nicoll").Range("C" & m) Then Sheets("Donnees").Range("AE" & n) = Sheets("Nicoll").Range("U" & m) Elself p < q And Sheets("Donnees").Range("P" & n) = Sheets("Nicoll").Range("C" & m) Then Sheets("Donnees").Range("AE" & n) = Sheets("Nicoll").Range("R" & m) End If Next Next Next Next End Sub
Bonjour,
La ligne 13 poserait problème. Sans doute y a-t-il d'autres lignes qui poseraient soucis.
J'ai du mal à exprimer la conditionnalité multiple (exemple si p < q et que la réf qui est contenue dans la feuille Donnees est égal à la référence présente dans la feuille Nicoll alors l'ordinateur doit aller chercher et rapporter le prix contenu dans U de Nicoll et la mettre à AE de Donnees au niveau correspondante à la réf article.
Sinon, l'ordinateur doit aller chercher le contenu de R dans Nicoll pour la mettre en AE de Donnees
Encore une fois merci de votre aide.