J'ai une colonne qui contient plusieurs fois la même valeur, une référence.
Je souhaiterai copier les lignes dont les cellules de cette colonne sont identiques sur une autre feuille.
Une feuille par référence.
J'ai un bout de code qui me permet d'extraire les lignes après avoir saisi la référence dans une inputbox.
J'aimerai que la macro détecte les cellules identiques, copie les lignes et creer une feuille par référence, sans avoir à saisir sa valeur.
Code:
Sub extraction()
Dim c As Range
Dim box As String
Dim derlig As Long
box = InputBox("Saisie du numero de palette : ", "Palette")
If box <> "" Then
With Sheets("Liste")
With ActiveSheet
If Not .AutoFilterMode Then .Range("B1").AutoFilter
End With
'la ligne de la dernière cellule remplie de la colonne B de feuille Base
derlig = .Cells(.Rows.Count, "A").End(xlUp).Row
With .Range("B2:B" & derlig)
'On filtre sur la colonne 2 de la feuille Liste, en prenant comme critère la valeur de box
.AutoFilter Field:=2, Criteria1:=box
'On copie les lignes issues du filtre auto
.SpecialCells(xlCellTypeVisible).EntireRow.Copy
End With
'On enlève notre filtre automatique
.AutoFilterMode = False
End With
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Paste
ActiveSheet.Name = Range("B2")
Columns.AutoFit
End If
End Sub
Est-ce que tu travail sur MAC? Mais je te répond, non impossible, Excel est intelligent, mais à deviner quelles lignes tu veux copier, faut pas croire au père Noël.
@ DoubleZero: je viens de faire un test, la macro est fonctionnel mais chez moi en tout cas, les 4 premières secondes excel plante puis affiche les onglets. Je ne sais pas si tu peux y remédier, peut-être en passant par un tableau.
Merci de passer par la.
Oui je travaille sur Mac, j'ai des soucis de portabilité parfois, le fichier final sera sur un Windows. Étant apprenti sorcier en vba ça aide pas mais ça va, je m'en sors a peu prés pour ce que je fais.
J'ai peut être pas été assez clair Lone-Wolf. Je comprend bien qu'excel ne peut pas deviner, mais si l'on imagine que l'on parcours chaque cellule de la colonne B (mes références) et lorsque qu'une valeur est plus de 2 fois alors, (on stocke la référence en variable) et on copie toutes les lignes correspondante dans une nouvelle feuille.
DoubleZero, merci c'est super ce que tu as fait, je pensais faire une inputbox pour rechercher le box en question mais un sommaire c'est une très bonne idée.
Je vais regarder ton code, j'ai juste survolé pour l'instant.
Je me rend compte que j'ai trop de référence unique et comme décrit plus haut, je vais plutôt créer des feuilles seulement si il y a 2 références identiques pour limiter le nombre de feuille.
Pour être plus concret, une référence correspond à une palette (composé de plusieurs articles) et il arrive parfois que j'ai une référence par article, pour le moment celle ci ne m’intéresse pas.
... chez moi en tout cas, les 4 premières secondes excel plante puis affiche les onglets. Je ne sais pas si tu peux y remédier, peut-être en passant par un tableau.
Je suis sur portable aussi, 8Go de mémoire et je n'ai pas de problème non plus avec la macro de Doublezero.
Je vais être pas mal occupé cette semaine mais je vais essayer d'avancer un peu.
Je ne sais pas si c'est très académique mais je pensais supprimer toutes les feuilles crée qui contiennent seulement 2 lignes.
J'ai bidouiller un truc aussi grâce à ton code précédent, je compte le nombre de ligne dans chaque onglet et l'inscrit dans H1.
Ensuite je supprime toutes les feuilles qui ont une valeur en dessous de ce que je souhaite.
Je suis loin d’être expert en vba, du coup je bricole comme je peux. Je vais regarder ton code de plus prés car ma méthode de créer et ensuite supprimer n'est pas le plus judicieux.
J'aurais une question, pourquoi tu nomme les onglet avec en prefixe "._" ??
J'ai essayé sans et cela fonctionne mais j'imagine qu'il y a une raison.
Je veux pas m’éloigner du sujet initial mais tu m'as inspiré avec ton sommaire, je pourrais m'en servir de synthèse avec le nombre d'article, le prix.. dans les colonnes B,C ainsi de suite. J'essaye de récupérer la valeur de H1 de chaque feuille mais en vain..
On évite souvent les errements en ne travaillant pas au coup par coup, n’est-ce pas ÓÒ ?
Tu donnes les aboutissants mais pas les tenants. Es-tu obligé de créer 36 000 onglets ?
Si ... oui, t'a donné une voie à suivre, si ... non, voilà un exemple avec seulement 2 Feuilles.
Bien sûr il faudra savoir quoi faire de cela !
Merci. A chaque fois que j'ouvre vos fichiers, il me faut des heures pour comprendre..
Oui, c'est vrai que je donne des informations supplémentaire à chaque message car je ne voulais pas être trop confus.
Le sujet du post est résolu, seulement au fil de la discussion beaucoup d’idées me viennent .
Le fichier n'est pas complet, toutes les colonnes ne sont pas présentes, celle du prix en l’occurrence.
Je pensais pouvoir adapter à mes besoins en modifiant le code de manière empirique mais je ne suis pas sur d'en être capable.
J'aurais souhaité ajouter le prix total à coté du nombre d'articles, et donc reproduire la même méthode que DoubleZero utilise pour compter le nombre d'articles mais utiliser SUM j'imagine.
J'ai testé rapidement ton fichier SI mais j'ai un bug, je regarderai de plus prés plus tard, merci. Oui, je créer beaucoup d'onglets car chaque onglet représente une palette, c'est plus facile si par la suite je veux chiffrer, exporter, ou supprimer. C'est vrai que j'y vais par petit bout et je ne suis pas toujours très clair.
Je réfléchie en même temps à une méthode. J'essaye d'en faire pas mal moi même mais quand je vois ce que certain pondent ici, j'ai du boulot!!
Merci DoubleZero pour le temps consacré, c'est top.
... J'aurais souhaité ajouter le prix total à coté du nombre d'articles, et donc reproduire la même méthode que DoubleZero utilise pour compter le nombre d'articles mais utiliser SUM j'imagine...
Désolé, j'ai eu peu de temps pour travailler sur le fichier.
Merci Double Zero, j'ai même pas pensé à faire ceci. Je m’entêter à le traiter par macro.
Je m'y replonge.