MACRO de tri selon critére de la feuille 1 vers la feuille 2
Bonjour à toutes et tous...
Alors pour mon début sur votre forum qui m'a déjà permis de dégrossir "un peu" le travail... Enfin dans la partie facile quoi...
J'ai maintenant besoin de compétences un peu plus sérieuse que les miennes...
J'ai un fichier listing de membre dans lequel j'ai 3 catégories de membres "CA" "E" "A" (sis dans la col A)
J'ai réalisé les macros pour le tri d'affichage sur la feuil1 (un peu simple je vous l'accorde
Maintenant et ce malgré mes nombreuses heures de lecture de votre forum, je ne parviens pas à extraire sur la feuil2 les données selon un critère précis (CA ou E ou A).
Je souhaite donc recopier sur la feuil2 les colonnes B à H de toutes les lignes contenant "CA" ou "E" ou "A" et ainsi pouvoir réaliser mon publipostage par la suite...
Si jamais, je risque de ne pas repasser sur le forum avant mercredi matin donc pas d'inquiétudes...
Un tout grand merci à celle ou celui qui me rendra meilleur dans les prochains jours...
Salut Gooffy,
voici ton fichier!
Worksheets("Publi").UsedRange.Delete
For x = 1 To [Tableau1].Rows.Count
If [Tableau1].Cells(x, 1) Like sFlag Then
iLig = iLig + 1
Worksheets("Publi").Range("A" & iLig & ":" & "G" & iLig).Value = [Tableau1].Range("B" & x & ":" & "H" & x).Value
End If
Next
Bon travail!
A+
Salut Curulis57,
Je vois que je ne suis pas le seul nocturne...
Un grand merci à toi.
J'applique cela sur le fichier source et je reviens vers toi si jamais pour les éventuelles explications (histoire de ne pas demander deux fois la même chose quoi...) LoL.
Bonne journée,
Gooffy
Bonsoir à toutes et tous, notamment Curulis57...
La macro est testée... Comme tu te doutes, elle fonctionne nickel
Maintenant je mène mes recherches pour en comprendre toutes les lignes (enfin essayé par moi-même avant de poser de bêtes questions
Encore un grand merci et bonne nuit.
Gooffy
Bonsoir tout le monde,
Bonsoir Curulis57,
Bon, j'ai fait vivre le fichier... Ils sont content...
Par contre, il me demande de rajouter des arguments de tri... Plus ou moins facile puisque tu avais réalisé tout le travail. Plus qu'a copier / coller...
Toutefois, il me reste un arguments pour lequel je ne parviens pas à renvoyer les données sur la feuille "publi".
Je voudrais en fait trier ma base de données en prenant en compte 3 critères... Jusque là, je m'en sors plus ou moins... Par contre, impossible de renvoyer les données de ces 3 critères sur la feuille "Publi"
Voici copie de la (ta) macro :
Public Sub Publi(ByVal sFlag As String)
Worksheets("Publi").UsedRange.Clear
For x = 1 To [Tableau1].Rows.Count
If [Tableau1].Cells(x, 1) Like sFlag Then
iLig = iLig + 1
Worksheets("Publi").Range("A" & iLig & ":" & "G" & iLig).Value = [Tableau1].Range("B" & x & ":" & "H" & x).Value
End If
Next
End Sub
Sub Conseil_Administration()
' Macro Conseil
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="CA"
Call Publi("CA")
End Sub
Sub Effectifs()
' Macro Effectifs
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="E"
Call Publi("E")
End Sub
Sub Adhérents()
' Macro Adhérents
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="A"
Call Publi("A")
End Sub
Sub Brocanteurs()
' Macro Brocante
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="B"
Call Publi("B")
End Sub
Sub Artisants()
' Macro Artisants
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="MA"
Call Publi("MA")
End Sub
Sub Sponsors()
' Macro Sponsors
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:="S"
Call Publi("S")
End Sub
Sub Tous()
' Macro Tout le monde
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1
Call Publi("*")
End Sub
Sub Comité()
' Comité Macro
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:= _
Array("A", "CA", "E"), Operator:=xlFilterValues
Call Publi("?")
' c'est là que je ne vois pas ce que je dois mettre...? Je vois que la ligne est indispensable mais je sèche...
End Sub
Désolé, il me manque beaucoup de pratique... Je n'arrive même pas a insérer une macro comme vous...
Enfin, dans l'espoir que qqun s'y retrouve...
Merci et bonne nuit à vous,
GOOFFY
Salut Gooffy,
je vais regarder cela maintenant!
Pour insérer une macro "comme nous"
A+
Salut Gooffy,
ainsi, ça devrait aller dans n'importe quelles conditions.
Tu dois juste renseigner la valeur à passer à la macro en séparant les différents critères par un slash sans espace ( ex: "CA/E/A" ou "CA" quand un seul critère).
Public Sub Publi(ByVal sFlag As String)
'
Dim tTab
'
Worksheets("Publi").UsedRange.Delete
'
tTab = Split(sFlag, "/")
'
For x = 1 To [Tableau1].Rows.Count
For y = 0 To UBound(tTab)
If [Tableau1].Cells(x, 1) Like tTab(y) Then
iLig = iLig + 1
Worksheets("Publi").Range("A" & iLig & ":" & "G" & iLig).Value = [Tableau1].Range("B" & x & ":" & "H" & x).Value
End If
Next
Next
'
End Sub
Sub Comité()
' Comité Macro
ActiveSheet.ListObjects("Tableau1").Range.AutoFilter Field:=1, Criteria1:= _
Array("A", "CA", "E"), Operator:=xlFilterValues
Call Publi("A/CA/E")
'
End Sub
Avec plaisir!
A+
Allez Bonjou...
Bon ben sans surprises hein...
Ca fonctionne nickel...
Par contre peux-tu m'expliquer la différence...?
Public Sub Publi(ByVal sFlag As String)
' Macro copie vers feuil Publi
Dim tTab
Worksheets("Publi").UsedRange.Clear
tTab = Split(sFlag, "/")
For x = 1 To [Tableau1].Rows.Count
For y = 0 To UBound(tTab)
If [Tableau1].Cells(x, 1) Like tTab(y) Then
iLig = iLig + 1
Worksheets("Publi").Range("A" & iLig & ":" & "G" & iLig).Value = [Tableau1].Range("B" & x & ":" & "H" & x).Value
End If
Next
Next
End Sub
Public Sub Publi(ByVal sFlag As String)
Worksheets("Publi").UsedRange.Clear
For x = 1 To [Tableau1].Rows.Count
If [Tableau1].Cells(x, 1) Like sFlag Then
iLig = iLig + 1
Worksheets("Publi").Range("A" & iLig & ":" & "G" & iLig).Value = [Tableau1].Range("B" & x & ":" & "H" & x).Value
End If
Next
End Sub
Je comprends que tout ce joue sur les lignes dimtTab / For x / For y mais qu'elles sont les indications que donnent ces lignes qui font la différence avec la 1ère macro que tu m'as donné...?
Un grand merci pour ton aide d'un novice comme moi.
Bonne journée et bon week-end sous le soleil...
Gooffy