Recherche retournant plusieurs lignes

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

E

Elane

Guest
Bonsoir,

J'ai un niveau plutôt limité sur excel,🙁 j'espère donc que vous accepterez de m'aider comme vous l'avez si bien fait la fois précédente.

Voilà mon problème :
J'ai un fichier avec plusieurs feuilles. La première contient les ventes de tous les vendeurs (sales org.) et les autres sont propres à un vendeur.
Je voudrais donc que les feuilles spécifiques à un vendeur se construisent toutes seules, j'entends par là qu'elles reprennent exactement les lignes de la feuille 1 qui correspondent aux ventes de mon vendeur, et ça se complique encore car il me faudrait aussi la ligne qui correspond au client.
C'est un peu dur à expliquer alors je vous joint un fichier simplifié. La deuxième feuille correspond à ce que je voudrais obtenir.

Je ne sais pas du tout coder en VBA donc si vous aviez une solution sous forme de formule ce serait parfait.😱

Merci d'avance à tous ceux qui voudront bien se pencher sur mon problème.

PS : C'est assez urgent, je dois avoir fini ce fichier pour ce jeudi matin.🙁
 

Pièces jointes

Dernière modification par un modérateur:
Re : Recherche retournant plusieurs lignes

Bonjour,

Pour atteindre facilement ton objectif, il te faut :

1. Une base de données complète qui reprend tous les champs de toutes les organisations de vente sur une seule feuille

2. Un tableau croisé dynamique qui te fera en deux secondes toutes tes analyses.

Le problème que tu rencontres, en ce moment, est uniquement dû à la vision cosmétique finale de l'impression d'un tableau ...
Pour avancer, il faut mettre de côté cet aspect et ne le reconsidérer qu'une fois que tu auras ton analyse disponible ...

A +
🙂
 
Re : Recherche retournant plusieurs lignes

Bonjour Elane, salut James,

C'est assez urgent, comme je l'ai dit j'aurai besoin d'un semblant de solution pour jeudi matin...

Semblant je ne sais pas faire. Cette macro dans ThisWorkbook :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim s, vendeur As Integer, i As Long
s = Split(Sh.Name, " ")
If UBound(s) < 2 Then Exit Sub
vendeur = s(2)
Application.ScreenUpdating = False
Sheets("Global").Cells.Copy Cells
For i = Range("A" & Rows.Count).End(xlUp).Row To 3 Step -1
  If IsNumeric(Cells(i, 6).Text) And Cells(i, 6) <> vendeur _
    Or Cells(i, 1).Interior.ColorIndex > 0 And Cells(i + 1, 1) = "" _
    Or Cells(i, 1) & Cells(i + 1, 1) = "" Then Rows(i).Delete
Next
If Cells(3, 1) = "" Then Rows(3).Delete
End Sub

Suppression classique de lignes, mais il faut faire les bons tests.

La macro se déclenche quand on active une feuille quelconque.

Voir le fichier (1) pour Excel 2003 et 2007/2010.

A+
 

Pièces jointes

Re : Recherche retournant plusieurs lignes

Salut Job75 🙂

Super bien vu ta solution ... 😎

Dire que j'ai compris exactement le contraire ... qu'à partir des feuilles individuelles, elle voulait regrouper tout dans la feuille Globale ....🙄

Dommage que malgré l'urgence, elle ne soit toujours pas revenue voir ton astuce ...

A +
🙂
 
Dernière édition:
Re : Recherche retournant plusieurs lignes

Elle vient, elle vient ! lol Il me reste encore la soirée pour exploiter ce que vous m'avez concocter avec tant de gentillesse, ou plaisir de relever des défis ou que sais-je. Quoi qu'il en soit, merci beaucoup ! Je regarde donc ça de suite.
 
Re : Recherche retournant plusieurs lignes

Super merci beaucoup !

J'ai essayé de déclarer les constantes à part, pour simplifier les modifications potentielles mais ça ne fonctionne pas. Aucune urgence cette fois, juste par curiosité.
Voici le code que j'ai mis à ma sauce :

Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Dim salesColumnNumber, firstCustomerLine, salesOrgNumber, sheetName As Integer
Dim i As Long

salesColumnNumber = 6
firstCustomerLine = 3
sheetName = Split(Sh.Name, " ")

If UBound(sheetName) < 2 Then Exit Sub
salesOrgNumber = sheetName(2)
Application.ScreenUpdating = False
Sheets("Global").Cells.Copy Cells
For i = Range("A" & Rows.Count).End(xlUp).Row To firstCustomerLine Step -1
  If IsNumeric(Cells(i, salesColumnNumber).Text) And Cells(i, salesColumnNumber) <> salesOrgNumber _
    Or Cells(i, 1).Interior.ColorIndex > 0 And Cells(i + 1, 1) = "" _
    Or Cells(i, 1) & Cells(i + 1, 1) = "" Then Rows(i).Delete
Next
If Cells(firstCustomerLine, 1) = "" Then Rows(firstCustomerLine).Delete
End Sub

Et voici l'erreur que j'ai eu :

Erreur de compilation : Tableau attendu (sur la ligne du UBound)

Merci d'avance 😛
 
Re : Recherche retournant plusieurs lignes

Bonjour,
essaye ainsi :
Code:
Dim sheetName() As String
sheetName = Split(Sh.Name)
A noter, inutile de préciser l'espace comme séparateur, c'est celui utilisé par défaut par la fonction "split"...
Bonne journée
@+
 
Re : Recherche retournant plusieurs lignes

Bonjour le fil,

Juste une petite remarque, je pense qu'Elane n'a pas compris que quand j'écris :

Dim s, vendeur As Integer, i As Long

la variable s est déclarée implicitement As Variant.

Elle a cru qu'elle était déclarée comme vendeur...

A+
 
- 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

Retour