Comment afficher l'ensemble des clients ayant un type de machine
rep
-
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai crée un fichier client en colonne avec les données clients et les machines dont ils disposent.
num cli/ nom cli/machine1/ année /commentaires machines/ machine 2 /année 2
Je souhaiterais trouver une formule qui permettent de choisir une machine x (qui peut aussi bien se trouver en colonne machine 1/machine 2...) et qui m'affiche les noms des clients possédant la machine en question ainsi que le N° client, l'année de la machine, le commentaire...
Je n'arrive pas à trouver car avec index equiv, il faut donner la colonne où se trouve la réponse or dans mon cas les machines peuvent se trouver dans différentes colonne (machine 1, machine 2...)
D'avance merci
J'ai crée un fichier client en colonne avec les données clients et les machines dont ils disposent.
num cli/ nom cli/machine1/ année /commentaires machines/ machine 2 /année 2
Je souhaiterais trouver une formule qui permettent de choisir une machine x (qui peut aussi bien se trouver en colonne machine 1/machine 2...) et qui m'affiche les noms des clients possédant la machine en question ainsi que le N° client, l'année de la machine, le commentaire...
Je n'arrive pas à trouver car avec index equiv, il faut donner la colonne où se trouve la réponse or dans mon cas les machines peuvent se trouver dans différentes colonne (machine 1, machine 2...)
D'avance merci
A voir également:
- Comment afficher l'ensemble des clients ayant un type de machine
- Machine virtuelle windows - Guide
- Pourquoi sfr perd des clients - Guide
- Afficher appdata - Guide
- Affichez l'ensemble des diapositives à l'écran avec 5 diapositives par ligne. - Forum Powerpoint
- Dans le diaporama à télécharger, les diapositives s’enchaînent automatiquement. combien de temps la diapositive crayon met-elle à s’afficher ? combien de temps reste-t-elle affichée à l’écran ? ✓ - Forum Powerpoint
3 réponses
Bonsoir rep
Une possibilité avec une macro :
https://www.cjoint.com/?0AethHZWbVG
Exemple à adapter à ton fichier et tes besoins
Cdlmnt
Une possibilité avec une macro :
https://www.cjoint.com/?0AethHZWbVG
Exemple à adapter à ton fichier et tes besoins
Cdlmnt
Bonsoir Rep, bonsoir le forum,
Par formule je ne sais pas faire. Je te propose une solution VBA avec le code ci-dessous :
Par formule je ne sais pas faire. Je te propose une solution VBA avec le code ci-dessous :
Sub Macro1() Dim O1 As Object 'déclare la variable O1 (Onglet 1) Dim O2 As Object 'déclare la variable O1 (Onglet 2) Dim TC As Variant 'déclare la variable TC (Tableau de Cellules) Dim BE As Variant 'déclare la variable BE (Boîte d'Entrée) Dim I As Integer 'déclare la variable I (Incrément) Dim J As Integer 'déclare la variable J (incrément) Dim K As Integer 'déclare la variable K (incrément) Dim TL() As Variant 'déclare la variable TL (Tableau de Ligne) Set O1 = Sheets("Feuil1") 'définit l'onglet O1 (à adapter) Set O2 = Sheets("Feuil2") 'définit l'onglet O2 (à adapter) O.Cells.ClearContents 'efface d'éventuelle anciennes données TC = O1.Range("A1").CurrentRegion 'définit la tableau de cellule TC (à Adapter) BE = Application.InputBox("Tapez le nom de la machine recherchée !", Type:=2) 'définit la boîte d'entrée BE If BE = False Or BE = "" Then Exit Sub 'si bouton "Annuler" ou si non renseignée, sort de la procédure K = 1 'initialise la variable K For I = 2 To UBound(TC, 1) 'boucle 1 : sur toutes les lignes du tableau TC (en partant de la secconde) If TC(I, 3) = BE Or TC(I, 6) = BE Then 'si la valeur en colonne C ou en colonne F du tableau TC est égale à BE ReDim Preserve TL(1 To UBound(TC, 2), 1 To K) 'redimensionne le tableau de lignes TL For J = 1 To UBound(TC, 2) 'boucle 2 sur toutes les colonnes du tableau TC TL(J, K) = TC(I, J) 'récupère dans la ligne J du tgableau TL la valeur de la colonne J du tableau TC Next J 'prochaine colonne de la boucle 2 K = K + 1 'incrément K End If 'fin de la condition Next I 'prochaine ligne de la boucle 1 'renvoie dans A1 de l'onglet O2 le tableau TL transposé O2.Range("A1").Resize(UBound(TL, 2), UBound(TL, 1)) = Application.Transpose(TL) O2.Select End Sub