Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boucle Vlookup et Coloriage

  • Initiateur de la discussion Initiateur de la discussion Zwiespalt
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Zwiespalt

XLDnaute Nouveau
Bonjour,

Je possède deux fichiers "extraction.xls" (qui est extrait d'un logiciel professionnel) contenant une base de données sur la plage B6:H831 et "gestionstock.xls" contenant un tableau d'articles faisant référence à la base précédente (rempli à la main).

L'objectif est de récupérer les "Qté stk val." (colonne E de "extraction.xls") et de les stocker dans la colonne C de "gestionstock.xls" en parcourant la liste d'articles souhaités (colonne B de "gestionstock.xls") puis de comparer ces quantités avec la quantité souhaitée (colonne E de "gestionstock.xls") via un seuil et si le seuil est dépassé, colorier la case H correspondante.

Pour la recherche et mis à jour, j'ai utilisé ce code pour une case absolue :
Code:
Option Explicit
Sub test()
With Workbooks("gestionstock.xls").Sheets("Feuil1")
          
    .Range("C6").Value = WorksheetFunction.VLookup(.Range("B6"), _
        Workbooks("extraction.xls").Sheets("extraction").Range("B6:H831"), 4, False)
     
End With
End Sub

Il fonctionne, mais j'ai essayé de réaliser une boucle sur la colonne :
Code:
Option Explicit
Sub test()
Dim n As Integer

With Workbooks("gestionstock.xls").Sheets("Feuil1")
        For n = 6 To 100
    Cells(n, 5).Value = WorksheetFunction.VLookup(Cells(n, 2), _
        Workbooks("extraction.xls").Sheets("extraction").Range("B6:H831"), 4, False)
     Next n
     
End With
End sub

Mais ça ne fonctionne pas : Impossible de lire la propriété Vlookup de la classe WorksheetFunction.

Auriez-vous une solution pour boucler le Vlookup sur cette colonne (B de "gestionstock.xls") et stocker dans la C ?

Si vous avez des pistes pour réaliser la colorisation, je suis aussi preneur !

D'avance merci,
 

Pièces jointes

Re : Boucle Vlookup et Coloriage

Bonjour Zwiestpalt, bonjour le forum,

Peut-être comme ça :
Code:
Option Explicit

Sub test()
Dim cg As Workbook 'déclare la variable cg (Classeur Gestionstock)
Dim ce As Workbook 'déclare la variable ce (Classeur Extraction)
Dim og As Object 'déclare la variable og (Onget Gestionstock)
Dim oe As Object 'déclare la variable oe (Onglet Extraction)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim r As Range 'déclare la variable r (Recherche)

Set cg = Workbooks("gestionstock.xls") 'définit le classeur cg
Set ce = Workbooks("extraction.xls") 'définit le classeur cg
Set og = cg.Sheets(1) 'définit l'onglet og
Set oe = ce.Sheets(1) 'définit l'onglet eg
dl = og.Cells(Application.Rows.Count, 2).End(xlUp).Row 'de'finit la dernière ligne éditée de la colonne B de l'onglet og
Set pl = og.Range("B6:B" & dl) 'définit la plage pl
For Each cel In pl 'boucle sur toutes les cellules cel de la plage pl
    Set r = oe.Columns(2).Find(cel.Value, , xlValues, xlWhole) 'définit la recherche r
    If Not r Is Nothing Then 'condition1 : si il existe au moins une occurrence trouvée
        cel.Offset(0, 1).Value = r.Offset(0, 3).Value 'récupère la valeur correspondante dans la colonne C
        'condition 2 : si la quantité en stock - la quantité souhaité est inférieure au seuil
        If cel.Offset(0, 1).Value - cel.Offset(0, 3) < cel.Offset(0, 5).Value Then
            cel.Offset(0, 6).Interior.ColorIndex = 3 'colore en rouge la cellule de la colonne H
        Else 'sinon
            cel.Offset(0, 6).Interior.ColorIndex = xlNone 'enlève la couleur de la cellule en colonne H
        End If 'fin de la condition 2
    End If 'fin de la condition 1
Next cel 'prochaine cellule de la boucle
End Sub

J'ai pas testé ta boucle mais je pense qu'il manquait juste les points devant Cell (.Cell)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
316
Réponses
5
Affichages
707
Réponses
2
Affichages
427
Réponses
3
Affichages
265
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…