Bonjour
j'ai déplacé ta question dans le forum VBA, car je pense c'est réalisable avec une macro et que sur CodeS SourceS il n'y a pas de forum pour Excel "pur".
A mon avis, tu fais une boucle qui itère les ligne de ta première feuille, et copie la ligne dans la bonne feuille.
Pour moi non plus VBA c'est pas un langage courant, cependant il me semble que l'on est dans un algo plutôt simple, une boucle, des si comme tu en coderais en VB.Net ou autre.
Et si ton fichier est volumineux, y'a moyen d'utiliser des tableaux pour que l'exécution soit plus rapide
https://silkyroad.developpez.com/vba/tableaux/
merci... je regardera ça tout à l'heure
Bonjour,
https://www.cjoint.com/c/MICqPTLpH5c
Private Sub CommandButton1_Click() Dim FS() As String: FS() = Split("100,200", ",") With ThisWorkbook.Sheets.Add(Sheets(1)) .Name = "Cherche" For Each F In FS If Not SheetExist(F) Then Sheets.Add after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = F End If .Range("A1") = "D" .Range("A2") = F & "-*" FiltreActif Sheets("Feuil1").UsedRange, .UsedRange, Sheets(F).Range("A1") Next Application.DisplayAlerts = False .Delete Application.DisplayAlerts = True End With End Sub Function SheetExist(ByVal SH As String) As Boolean On Error Resume Next SH = Sheets(SH).Name SheetExist = Not CBool(Err) Err.Clear On Error GoTo 0 End Function Function FiltreActif(RangeSource As Range, CriterRange As Range, CopyRange As Range, Optional Unique As Boolean = True) As Boolean FiltreActif = False On Error Resume Next RangeSource.AdvancedFilter Action:= _ xlFilterCopy, CriteriaRange:=CriterRange _ , CopyToRange:=CopyRange, Unique:=Unique DoEvents If Err = 0 Then FiltreActif = True 'MsgBox Err.Description On Error GoTo 0 End Function
23 sept. 2023 à 15:37
Merci d'avoir corrigé l'endroit de mon message.
Effectivement c'est un peu ça que je recherche...
Ça fait des années que j'ai fais du VBA.... Je vais attendre voir si quelqu'un trouve plus d'info sur le forum.
Je vais continuer mes recherches sur le forum
Merci