Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Macro à améliorer pour une base de donnée

2 réponses
Avatar
newoceane2000
Bonjour,

Je voudrais am=E9liorer une macro que JB m'avait faite (et qui est d=E9j=E0
super encore merci JB)...

Cette macro (cf. fichier ci-joint : http://cjoint.com/?dpq0LO43DW
) permet =E0 partir d'un tableau (cf cellule A50) de donner la liste des
pays dans lequel un produit choisi est vendu ainsi que la liste des
produits vendus par pays ?

Cependant cette macro ne marche que si on indique oui ou non dans le
tableau.

J'aimerai que l'on puisse tenir compte de certaine remarque par ex :

dans la case camion/allemagne s'il est not=E9 oui, mais marque X
uniquement (mais =E7a peut =EAtre autre chose apr=E8s le oui,), la macro
permettrait que lorsque l'on effectue la recherche par produit (ici
camion), d'afficher : Allemagne (mais marque X uniquement).

De m=EAme faisant la recherche par pays (ici allemagne), il
apparaitrait :
Camion (mais marque X uniquement)
Scooter
Moto

Serait-il =E9galement possible de mettre le tableau de donn=E9es sur une
autre feuille (d=E9but en A7) que les recherches et donc d'adapter la
macro en fonction.

Merci d'avance pour votre aide.

2 réponses

Avatar
JB
Bonjour,

http://cjoint.com/?dprPALbmPM

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$16" Then
[A18:A24].ClearContents
i = 18
ligne = Application.Match(Target, [produit], 0)
For col = 1 To Sheets("BD").Range("pays").Count
If Left(Application.Index(Sheets("BD").[ok], ligne, col), 3) =
"oui" Then
Cells(i, 1) = Sheets("BD").Range("pays")(col) & _
Mid(Application.Index(Sheets("BD").[ok], ligne, col), 4)
i = i + 1
End If
Next col
End If
'--
If Target.Address = "$E$16" Then
[E18:E25].ClearContents
i = 18
colonne = Application.Match(Target, Sheets("BD").[pays], 0)
For lig = 1 To Sheets("BD").Range("produit").Count
If Left(Application.Index(Sheets("BD").[ok], lig, colonne), 3) =
"oui" Then
Cells(i, "E") = Sheets("BD").Range("produit")(lig) & _
Mid(Application.Index(Sheets("BD").[ok], lig, colonne), 4)
i = i + 1
End If
Next lig
End If
End Sub

JB
On 15 mar, 16:55, wrote:
Bonjour,

Je voudrais améliorer une macro que JB m'avait faite (et qui est déj à
super encore merci JB)...

Cette macro (cf. fichier ci-joint :  http://cjoint.com/?dpq0LO43DW
) permet à partir d'un tableau (cf cellule A50) de donner la liste des
pays dans lequel un produit choisi est vendu ainsi que la liste des
produits vendus par pays ?

Cependant cette macro ne marche que si on indique oui ou non dans le
tableau.

J'aimerai que l'on puisse tenir compte de certaine remarque par ex :

dans la case camion/allemagne s'il est noté oui, mais marque X
uniquement (mais ça peut être autre chose après le oui,), la macro
permettrait que lorsque l'on effectue la recherche par produit (ici
camion), d'afficher : Allemagne (mais marque X uniquement).

De même faisant la recherche par pays (ici allemagne), il
apparaitrait :
Camion (mais marque X uniquement)
Scooter
Moto

Serait-il également possible de mettre le tableau de données sur une
autre feuille (début en A7) que les recherches et donc d'adapter la
macro en fonction.

Merci d'avance pour votre aide.


Avatar
newoceane2000
Bonjour JB !

Encore une fois tu m'es venu en aide et c'est exactement ce que je
voulais !!!

Merci beaucoup pour cette magnifique macro.

On 15 mar, 17:42, JB wrote:
Bonjour,

http://cjoint.com/?dprPALbmPM

Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address = "$A$16" Then
    [A18:A24].ClearContents
    i = 18
    ligne = Application.Match(Target, [produit], 0)
    For col = 1 To Sheets("BD").Range("pays").Count
      If Left(Application.Index(Sheets("BD").[ok], ligne, col), 3) =
"oui" Then
        Cells(i, 1) = Sheets("BD").Range("pays")(col) & _
           Mid(Application.Index(Sheets("BD").[ok], ligne, col ), 4)
        i = i + 1
      End If
    Next col
  End If
  '--
  If Target.Address = "$E$16" Then
    [E18:E25].ClearContents
    i = 18
    colonne = Application.Match(Target, Sheets("BD").[pays], 0)
    For lig = 1 To Sheets("BD").Range("produit").Count
      If Left(Application.Index(Sheets("BD").[ok], lig, colonne), 3) =
"oui" Then
        Cells(i, "E") = Sheets("BD").Range("produit")(lig) & _
           Mid(Application.Index(Sheets("BD").[ok], lig, colon ne), 4)
        i = i + 1
      End If
    Next lig
  End If
End Sub

JB
On 15 mar, 16:55, wrote:



Bonjour,

Je voudrais améliorer une macro que JB m'avait faite (et qui est déj à
super encore merci JB)...

Cette macro (cf. fichier ci-joint :  http://cjoint.com/?dpq0LO43DW
) permet à partir d'un tableau (cf cellule A50) de donner la liste des
pays dans lequel un produit choisi est vendu ainsi que la liste des
produits vendus par pays ?

Cependant cette macro ne marche que si on indique oui ou non dans le
tableau.

J'aimerai que l'on puisse tenir compte de certaine remarque par ex :

dans la case camion/allemagne s'il est noté oui, mais marque X
uniquement (mais ça peut être autre chose après le oui,), la macro
permettrait que lorsque l'on effectue la recherche par produit (ici
camion), d'afficher : Allemagne (mais marque X uniquement).

De même faisant la recherche par pays (ici allemagne), il
apparaitrait :
Camion (mais marque X uniquement)
Scooter
Moto

Serait-il également possible de mettre le tableau de données sur une
autre feuille (début en A7) que les recherches et donc d'adapter la
macro en fonction.

Merci d'avance pour votre aide.- Masquer le texte des messages précé dents -


- Afficher le texte des messages précédents -