Sommaire avec condition
Bonjour à toutes et tous.
Grace à votre aide et cours mis à disposition sur ce site, j'ai énormément appris sur les possibilités d'Excel.
Cependant je bloque sur une opération :
j'ai trouvé une macro qui me permet de créer un sommaire et de classer les onglets par ordres alphabétique. elle fonctionne bien, MAIS, je souhaite quelle puisse "catégoriser" les onglets, qu'en fonction d'un mot clé elle fasse le sommaire en colonne E puis F, G....
Ici dans mon fichier, ce serait créer un sommaire pour les onglets "arbre" en colonne E et un sommaire pour les onglets "ballon" en F. J'ai beaucoup de mal avec les IF, ElseIF, Then donc je sollicite votre aide.
Bon courage
ci-joint un fichier anonymisé auquel j'ai supprimé pleins de macro inutile pour mon problème actuel.
Sub sommaire()
'ne pas afficher les onglets cachés
'trie les feuilles par ordre croissant
Dim i As Integer, J As Integer
For i = 4 To Sheets.Count 'pour débuter le tri à la feuille x remplacer For I = 1 par For I = x
For J = 4 To i - 1 'pour débuter le tri à la feuille x remplacer For J = 1 par For J = x
If UCase(Sheets(i).Name) < UCase(Sheets(J).Name) Then 'pour tri décroissant remplacer < par >
Sheets(i).Move before:=Sheets(J)
Exit For
End If
Next J
Next i
Dim c As Range
Sheets("sommaire").Select
Range("A1:E100").ClearContents
' ecrire sommaire du classeur en E1
Sheets("sommaire").Range("E1").Value = "SOMMAIRE DU CLASSEUR"
'depuis la feuille i = x à la fin
For i = 3 To Sheets.Count
nf = Sheets(i).Name
nfcellule = Selection.Interior.ColorIndex
'créer les liens hypertexte
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i - 2, 5), Address:="", SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
' case des liens de la couleur de l'onglet
Cells(i - 2, 5).Interior.Color = Sheets(i).Tab.Color
Next i
End Sub
Re bonjour,
Vu que j'y arrivais pas de cette manière et que depuis 3/4 jours je me démerde avec les userform. J'ai créer un petit userform permettant de filtrer par mot clé.
C'est le compromis que j'ai réussi à trouver.
Code de l'user forme pour filtrer par mot clé
Private Sub CommandButton1_Click()
If Controls("OptionButton1").Value = True Then
ActiveSheet.Range("$E$4:$E$140000").AutoFilter Field:=1, Criteria1:="=*arbre*" _
, Operator:=xlAnd
ElseIf Controls("OptionButton2").Value = True Then
ActiveSheet.Range("$E$4:$E$140000").AutoFilter Field:=1, Criteria1:="=*ballon*" _
, Operator:=xlAnd
End If
End SubJ'ai une autre demande maintenant (peut etre dois je ouvrir un nouveau sujet ?) :
j'ai un code pour insérer la date de modification de la feuille (à chaque sauvegarde) en G1 sur la feuille.
Je souhaiterai que cette date (ou le G1 de la feuille) apparaisse dans la colonne F et non dans la colonne E
Code pour insérer la date de modification
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
ActiveSheet.Range("G1").Value = "Dernière sauvergarde le " & Format(Now, "DD/MM/YY ") & " par " & Application.UserName
End SubNouveau code sommaire avec datre de modif dans la meme colonne que le nom onglet
Sub sommaire()
'ne pas afficher les onglets cachés
'trie les feuilles par ordre croissant
Dim i As Integer, J As Integer
For i = 7 To Sheets.Count 'pour débuter le tri à la feuille x remplacer For I = 1 par For I = x
For J = 7 To i - 1 'pour débuter le tri à la feuille x remplacer For J = 1 par For J = x
If UCase(Sheets(i).Name) < UCase(Sheets(J).Name) Then 'pour tri décroissant remplacer < par >
Sheets(i).Move before:=Sheets(J)
Exit For
End If
Next J
Next i
Dim c As Range
Sheets("sommaire").Select
Range("A1:E100").ClearContents
' ecrire sommaire du classeur en E1
Sheets("sommaire").Range("E1").Value = "SOMMAIRE DU CLASSEUR"
'depuis la feuille i = x à la fin
For i = 6 To Sheets.Count
nf = Sheets(i).Name & " " & Sheets(i).[G1]
nfcellule = Selection.Interior.ColorIndex
'créer les liens hypertexte
ActiveSheet.Hyperlinks.Add Anchor:=Cells(i - 3, 5), Address:="", SubAddress:="'" & _
nf & "'" & "!A1", TextToDisplay:=nf
' case des liens de la couleur de l'onglet
Cells(i - 3, 5).Interior.Color = Sheets(i).Tab.Color
Next i
Range("E3:E140000").Select
Selection.AutoFilter
End Sub