Nom et vetement plus quantité a partir d'un tableau

  • Initiateur de la discussion Initiateur de la discussion sAcRoD
  • 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 !

S

sAcRoD

Guest
Bonsoir , je m'explique voila deux jours que je trime mais rien a faire je suis trop débutant pour m'en sortir aussi j’espère que vous pourrez m'aider . Je m'explique , j'ai un tableau avec des noms a gauche et des colonnes de vêtements .
J'aimerais dans une autre feuille du classeur, faire une sorte de récapitulatif du tableau ainsi, si par exemple dans la ligne Miguel il y a 3 dans la colonne blouson, 2 dans la colonne vestes, et 1 dans chemise, j'aimerais voir s'inscrire dans ma nouvelle feuille dans la colonne NOM, Miguel , dans la colonne Vêtement , Blouson, puis veste une ligne en dessous , puis chemisier encore une ligne en dessous et enfin dans la colonne quantité respectivement 3,2, et 1 donc . Puis pour Paul a partir de la 4eme ligne ici mais en fonction de la ou ce serait arrêté la liste de vêtement bien sur .

Et ainsi de suite pour chaque personne.

J'ai voulu utilisé la fonction SI , mais cela me demanderais d'imbriquer bien trop de SI ensemble car j'ai il y a beaucoup de nom .

Dans l’espoir que vous m'aidiez, je vous joint un exemple, le tableau liste est en feuille 1 mais un exemple peut être plus parlant est en feuille deux . Je vous remercie MILLE FOIS 😉 par avance pour votre aide 😉

Bonsoir .
 

Pièces jointes

Re : Nom et vetement plus quantité a partir d'un tableau

Bonsoir,

Je t'ai renvoyé ton fichier complété avec des formules de recherches verticales.

Ces formules recherchent un mot dans la première colonne d'un tableau de valeurs et te renvoient la valeur de la colonne que tu choisis correspondant à la même ligne.


En espérant être assez clair 🙂

Cordialement
 

Pièces jointes

Re : Nom et vetement plus quantité a partir d'un tableau

Merci pour ta réponse et pour la rapidité je vais regarder ça 😉

EDIT: j'ai dl est lu le fichier , rechercheV doit pouvoir m'aider a faire ce que je veux mais ce que je cherche a faire est bcp plus compliqué en fait le tableau résultat souhaité doit être complètement vide si il n'y a aucun chiffre dans le tableau de référence c'est a dire que je voudrais que si Miguel n'a aucun vêtement de référencé, alors ils n’apparaissent pas ( ni les vêtements , ni lui 😉 ) . et dans le cas contraire que seul les vêtements référencés apparaissent.

Encore merci quand même 😉
 
Dernière modification par un modérateur:
Re : Nom et vetement plus quantité a partir d'un tableau

Bonsoir le fil, bonsoir le forum,

En pièce jointe une proposition VBA commentée. J'ai renommé l'onglet "EXEMPLE ", "EXEMPLE" (sans l'espace à la fin)...
Le code :
Code:
Option Explicit 'oblige à déclarer toutes les variables


Sub Macro1()
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim pl As Range 'déclare la variable pl (PLage)
Dim ln As Range 'déclare la variable ln (Ligne du Nom)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim nb As Byte 'déclare la variable nb (NomBre)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
Dim celi As Range 'déclare la variable celi (CEllule de la LIgne)
Dim i As Byte 'déclare la variable i (Incrément)


With Sheets("LISTE") 'prend en compte l'onglet "LISTE"
    dl = .Cells(Application.Rows.Count, 2).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 2 (=B)
    Set pl = .Range("B3:B" & dl) 'définit la plage pl
End With 'fin de la prise en compte de l'onglet "LISTE"
Application.ScreenUpdating = False 'masque les changements à l'écran
For Each cel In pl 'boucle 1 : sur toutes les cellules cel (noms) de la plage pl
    Set ln = cel.Offset(0, 1).Resize(, 18) 'définit la plage ln (cellules de la ligne du nom de cel sans le nom)
    nb = Application.WorksheetFunction.CountA(ln) 'définit le nombre de quantités renseignées dans la plage ln
    If nb > 0 Then 'condition 1 : si nb est supérieur à 0
        Set dest = Sheets("EXEMPLE").Cells(Application.Rows.Count, 4).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest
        dest.Offset(0, -1).Value = cel.Value 'place le nom
        'mise en forme des contours du nom
        With Range(dest.Offset(0, -1), dest.Offset(nb - 1, -1))
            .Borders(xlEdgeLeft).LineStyle = xlContinuous
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlEdgeRight).LineStyle = xlContinuous
        End With
        'mise en forme des contours du reste
        With Range(dest, dest.Offset(nb - 1, 1))
            .Borders(xlEdgeLeft).LineStyle = xlContinuous
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlEdgeRight).LineStyle = xlContinuous
            .Borders(xlInsideVertical).LineStyle = xlContinuous 'si une seule ligne, génère une erreur
            On Error Resume Next 'gestion des erreurs (si une erreur est générée passe à la ligne suivante)
            .Borders(xlInsideHorizontal).LineStyle = xlContinuous
            If Err <> 0 Then Err = 0 'si une erreur a été générée'annule l'erreur
            On Error GoTo 0 'annule la gestion des erreurs
        End With
        i = 0 'initialise l'incrément
        For Each celi In ln 'boucle 2 : sur toutes les cellules celi (quantités) de la plage ln
            If celi.Value <> "" Then 'condition 2 : si la cellule n'est pas vide
                dest.Offset(i, 0) = Sheets("LISTE").Cells(2, celi.Column) 'place le vêtement
                dest.Offset(i, 1) = celi.Value 'place la quantité
                i = i + 1 'incrément i
            End If 'fin de la condition 2
        Next celi 'prochaine cellule de la boucle 2
    End If 'fin de la condition 1
Next cel 'prochaine cellule de la boucle 1
Application.ScreenUpdating = True 'affiche les changements à l'écran
End Sub
Le fichier :
 

Pièces jointes

Re : Nom et vetement plus quantité a partir d'un tableau

j'ai un soucis avec les vba car j'utilise office avec wine sur ubuntu et quand je veux activer les macro excel plante tout simplement 🙁 du coup pas moyen de tester . je ferais ca en rentrant mais une solution sans macro serait la bien venue . A moins que vous ayez une idée de comment dépanner office 2007 sous ubuntu emulé par wine ?

D' avance un grand merci
 
Re : Nom et vetement plus quantité a partir d'un tableau

Bonjour,

Je peux vous proposer une méthode sans macro, mais elle est un peu fastidieuse.

Elle consiste à indexer tous les noms et vêtements existants.
Puis, rechercher les quantités correspondant à un nom et vêtement.
Et enfin, dans une autre feuille, copier, coller les résultats et les filtrer.

Ci-joint la feuille excel qui reprend les étapes sitées ci-dessus. 🙂

Cordialement

PS : Bravo à Robert pour ce beau code VBA 😉
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
162
Réponses
5
Affichages
305
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
359
Retour