Bonjour
Oui c est ca je voudrais quand je choisi le fournisseur AAA c est de savoir ce qu il vend dans l onglet grille de prix comme une éponge vert ou une éponge bleu. Car j ai 180 fournisseur...
Un premier point important est de défusionner votre cellule D15. VBA n'aime pas les fusions de cellules
Ensuite dans votre fichier mettez ces codes :
1. Faites un click droite sur l"onglet "Bon de commande et choisissez l'option "Visualiser le code"
2. Collez le code ci-dessous dans la fenêtre
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("D15")) Is Nothing Then
Call importation
End If
End Sub
3. Dans le menu cliquez sur "Insertion"
4. Choisir "module"
5. dans la fenêtre, collez le code ci-dessous
Sub Importation()
Dim c As Range, plage As Range
Dim lig As Integer, ligmax As Integer
Dim prem As String
Dim i As Byte
ligmax = 78 'ligne mac dans bon de commande
For i = 36 To ligmax Step 3
Sheets("Bon de commande").Range("C" & i).ClearContents
Next i
With Sheets("Grille de prix").Range("B3:B" & Sheets("Grille de prix").Range("B" & Rows.Count).End(xlUp).Row)
Set c = .Find(Sheets("Bon de commande").Range("D15"), LookIn:=xlValues)
If Not c Is Nothing Then
prem = c.Address
lig = 36
If lig > ligmax Then Exit Sub
Do
Sheets("Bon de commande").Cells(lig, "C") = c.Offset(0, 1).Value
lig = lig + 3
Set c = .FindNext(c)
Loop While Not c Is Nothing And prem <> c.Address
End If
End With
End Sub
6. Enregistrez votre fichier avec l'extension XLSM (pour accepter les macros)
Pour le test, sélectionnez un fournisseur en D15
NB : Attention que si vous avez plus de 15 articles, on sort du code. la valeur ligmax = 78 correspond à votre ligne maximum dans votre bon de commande.
@Nordij_Nation : Mon commentaire est de juste vous donner une info que, je pense, vous ne savez peut-être pas. Dans le déclaration de vos variables, seule F2 est considérée comme "Worksheet". Toutes les autres sont déclarée type "Variant".
En toute simplicité.
Cordialement
EDIT : Findrh : désolé je n'avais pas vu votre post !! sans quoi je n'aurais plus posté