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

Le
newoceane2000
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.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #5228591
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.


newoceane2000
Le #5228051
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
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 -



Publicité
Poster une réponse
Anonyme