Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tri macro, sans espace

1 réponse
Avatar
Petit Scarabee
bonjour a tous,

je suis novice, et malgre mes recherches sur differents sites dont celui-ci,
je n'ai pas trouve la solution a mon petit probleme:

j'ai un tableau de 30 colonnes environ, la premiere concerne les entreprises.
je voudrais faire une liste deroulante des entr. sur un autre onglet si
possible, et avoir le meme resultat qu'en utilisant un filtre. cad afficher
les pdts et ses caracteristiques, sans espace entre les cellules.
(L'idee est de generer ensuite des graphs automatiquement...)
je pense a une fonction si (si le nom apparait je fais chercher les infos
dans le tableau, comme un Vlookup),
avec une boucle ( de la Cells(A,i) for i=1 to 2000), mais je n'arrive pas a
les mettre en oeuvre.

Une reponse pour une la colonne produit me comblerait deja.
merci pour votre aide



Entreprise Produit Caract pdt 1 Caract pdt 2 …
Ent1 P1
Ent2 P2
Ent3 P3
Ent4 P4
Ent5 P5
Ent1 P6
Ent2 P7
Ent3 P8
Ent4 P9
Ent5 P10


--
Vinz

1 réponse

Avatar
poy-poy
Bonjour Vinz,

Essaie ce code, tu mets en A2, A3... le nom des entreprises que tu veux
sortir et le code te copie dans la feuille summary toutes les lignes ayant ce
nom d'entreprise (dans la feuille originelle, le nom des entreprises doit
être en colonne A)
Attention, le code faisant des boucles, le nombre d'opération augmente vite.
Si tu demandes 10 noms, il va faire ~2000*10 000 opérations...

data feuille originelle, summary feuille ou les résultats apparraissent

Sub info()

Dim i As Integer, k As Integer, l As Integer
Dim lrow As Integer, lname As Integer, Tbldata As Variant, tblname As Variant

k = 2
lname = Sheets("summary").Range("A65536").End(xlUp).Row
lrow = Sheets("data").Range("A65536").End(xlUp).Row

Tbldata = Sheets("data").Range("A1:A" & lrow)
tblname = Sheets("summary").Range("A2:A" & lname)


For l = 1 To lname - 1
For i = 1 To lrow

If Tbldata(i, 1) = tblname(l, 1) Then
Sheets("data").Rows(i & ":" & i).Copy
Sheets("summary").Cells(k, 1).PasteSpecial xlValues
k = k + 1
End If
Next i
Next l

End Sub

Cordialement
Benjamin



bonjour a tous,

je suis novice, et malgre mes recherches sur differents sites dont celui-ci,
je n'ai pas trouve la solution a mon petit probleme:

j'ai un tableau de 30 colonnes environ, la premiere concerne les entreprises.
je voudrais faire une liste deroulante des entr. sur un autre onglet si
possible, et avoir le meme resultat qu'en utilisant un filtre. cad afficher
les pdts et ses caracteristiques, sans espace entre les cellules.
(L'idee est de generer ensuite des graphs automatiquement...)
je pense a une fonction si (si le nom apparait je fais chercher les infos
dans le tableau, comme un Vlookup),
avec une boucle ( de la Cells(A,i) for i=1 to 2000), mais je n'arrive pas a
les mettre en oeuvre.

Une reponse pour une la colonne produit me comblerait deja.
merci pour votre aide



Entreprise Produit Caract pdt 1 Caract pdt 2 …
Ent1 P1
Ent2 P2
Ent3 P3
Ent4 P4
Ent5 P5
Ent1 P6
Ent2 P7
Ent3 P8
Ent4 P9
Ent5 P10


--
Vinz