Recherche et affectation d'une valeur dans un tableau

Résolu/Fermé
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016 - 26 juil. 2016 à 16:48
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 27 juil. 2016 à 17:19
Bonjour les amis svp j'ai besoin de votre j'ai besoin d'une macro qui va me permettre de faire ca :

j'ai un tableau ou j'ai des familles A

je vous met svp ci joint une image qui décrit se que je veux faire


merci
A voir également:

3 réponses

Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
26 juil. 2016 à 17:31
Bonjour,

Pourquoi une macro?

Dans la cellule AO6 :

=SI(AJ6="VRAI";AJ5;SI(AK6="VRAI";AK5;SI(AL6="VRAI";AL5;"")))

Si besoin d'une macro, je peux la fabriquer mais dans ce cas, il va falloir être plus précis sur l'utilité.

Cordialement.
0
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016
27 juil. 2016 à 09:54
Bpnjour kuartz
j'ai essayer d'appliquer la formule que tu ma envoyer hier a mon fichier mais malheureusement elle fonctionne pas

normalement dans la colonne AE je dois coller cette formule et que elle me reccupére les Plat qui correspond a chaque famille dans la colonne X

c'est pour cela je me demander est ce que il faut pas le faire en macro ?

=SI(E6:E121="VRAI";E5;SI(F6:F121="VRAI"="VRAI";F5;SI(G6:G121="VRAI"="VRAI";G5;SI(H6:H121="VRAI"="VRAI";H5;SI(I6:I121="VRAI"="VRAI";I5;SI(J6:J121="VRAI"="VRAI";J5;"")))

je te met le lien stp du fichier merci

https://www.cjoint.com/c/FGBh2BYd1Qh
0
merci je vais l'essayer et je vous tiens au courant
merci beaucoup
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
Modifié par Kuartz le 27/07/2016 à 10:09
Bonjour,

Forcément là, il me manquait quand même pas mal d'infos, notamment le fait que les lignes ne sont pas forcément alignées (les familles je veux dire).

Je vais faire une macro, ce sera plus simple, je reviens vers toi fin de matinée. Par contre, la colonne CORRESPONDANCE n'existe pas sur le fichier?

Cordialement.
0
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016
27 juil. 2016 à 10:54
la colonne correspondance c'est la colonne AE ( calandre )

merci beaucoup
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61 > Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016
27 juil. 2016 à 11:24
Re,

Voici le code :

Option Explicit
Sub Code()

Dim Trouve As Range, DL As Long, DL2 As Long, Valeur_Cherchee As String, PlageDeRecherche As Range, Ligne As Long, i As Integer, j As Integer
Dim Produit_1 As String, Produit_2 As String, Produit_3 As String, Produit_4 As String, Produit_5 As String, Produit_6 As String, OCCURENCE As Boolean

DL = Sheets("Qtité Famille").Cells(Application.Rows.Count, 24).End(xlUp).Row
DL2 = Sheets("Qtité Famille").Cells(Application.Rows.Count, 1).End(xlUp).Row

For i = 6 To DL

For j = 6 To DL2

If Range("X" & i).Value = Range("A" & j).Value Then

    OCCURENCE = True
    
    If Str(Sheets("Qtité Famille").Range("E" & j).Value) = "Vrai" Then
        Produit_1 = "plat1 "
    Else
        Produit_1 = ""
    End If
    
    If Str(Sheets("Qtité Famille").Range("F" & j).Value) = "Vrai" Then
        Produit_2 = "plat2 "
    Else
        Produit_2 = ""
    End If
    
    If Str(Sheets("Qtité Famille").Range("G" & j).Value) = "Vrai" Then
        Produit_3 = "plat3 "
    Else
        Produit_3 = ""
    End If
    
    If Str(Sheets("Qtité Famille").Range("H" & j).Value) = "Vrai" Then
        Produit_4 = "plat4 "
    Else
        Produit_4 = ""
    End If
    
    If Str(Sheets("Qtité Famille").Range("I" & j).Value) = "Vrai" Then
        Produit_5 = "plat5 "
    Else
        Produit_5 = ""
    End If
    
    If Str(Sheets("Qtité Famille").Range("J" & j).Value) = "Vrai" Then
        Produit_6 = "plat6 "
    Else
        Produit_6 = ""
    End If
    
    Range("AE" & i) = Produit_1 & Produit_2 & Produit_3 & Produit_4 & Produit_5 & Produit_6
        
End If

Next j

If OCCURENCE = False Then Range("AE" & i) = "AUCUNE CORRESPONDANCE"

OCCURENCE = False

Next i
    

End Sub


J'ai géré aussi le fait qu'il n'y ait aucune correspondance.

Le fichier : https://www.cjoint.com/c/FGBjymMNXwf

Il suffit de cliquer sur le 2ème bouton :)

Cordialement.
0
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016
27 juil. 2016 à 11:27
merci beaucoup ca fonctionne trés bien
0
Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016
27 juil. 2016 à 15:56
Rebonjour Kuartz

est ce que tu peu me voir stp pourquoi j'ai ce beug dans mon fichier

https://www.cjoint.com/c/FGBn3yn3WUh

normalement je veux qu'il me remplis les cellules et ensuite me supprime les lignes vides du tableau

aide moi stp merci
0
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61 > Barahaoua Messages postés 88 Date d'inscription jeudi 19 mai 2016 Statut Membre Dernière intervention 17 août 2016
27 juil. 2016 à 17:19
J'avoue avoir un peu de mal à m'y retrouver, que fait cette partie du code?

For i = 1 To UBound(tablo, 1)
        If tablo(i, 1) <> "" Then
            ReDim Preserve tabloR(7, k + 1)
            tabloR(0, k) = Range("A" & i + 5)
            For j = 1 To 8
                tabloR(j, k) = tablo(i, j)
            Next j
            k = k + 1
        End If
    Next i
    Range("X6:AD" & derln).ClearContents
    Range("X6").Resize(UBound(tabloR, 2), 7) = Application.Transpose(tabloR)


Cordialement.
0