|
|
|
|
Bonjour,
J’ai posté une question dans le forum le 20/02/07. J’ai eu une réponse qui est satisfaisante et je remercie la charmante personne qui m’a aidé. J’ai toutefois besoin d’un complément. Mon tableau excel (qui est en évolution constante : ajouts fréquent de lignes) débute à la cellule A5 (la ligne 5 est la ligne des titres des colonnes). Voici trois macro.
- J’aimerais avec la première réaliser un tri par date au niveau de la colonne A. De plus j’aimerais faire terminer cette macro sur la dernière cellule de la première colonne donc de la colonne A. Je pense y être pour ce qui est de la première partie mais de la seconde.
- Avec la seconde, je souhaiterais faire un tri (colonne Q) des lignes par cases possédant une croix (au début du tableau) et par cases sans croix (à la fin du tableau). De plus j’aimerais faire terminer cette macro sur la dernière cellule de la première colonne donc de la colonne A.
- Sur la troisième je fais ajouter une ligne vierge au niveau de la ligne 7. Mais je souhaiterais ajouter cette ligne à la fin du tableau et que cette ligne garde les caractéristiques (formules, formats…) de celles du dessus.
Merci d’aider un néophyte du VBA en modifiant puis en collant les macros ci-dessous dans votre réponse.
De plus, que pensez-vous du centre de formation informatique ENI de Nantes. Est-ce une bonne école ?
Sub TRIDATES()
'
' TRIDATES Macro
' Macro enregistrée le 13/02/2007 par maindron
'
' Touche de raccourci du clavier: Ctrl+é
'
Range("A5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToDown)).Select
Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A6").Select
End Sub
Sub TRIBOULAGE()
'
' TRIBOULAGE Macro
' Macro enregistrée le 13/02/2007 par maindron
'
' Touche de raccourci du clavier: Ctrl+è
'
Range("A5").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlToDown)).Select
Selection.Sort Key1:=Range("Q6"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Range("A6").Select
End Sub
Sub AJOUTLIGNE()
'
' AJOUTLIGNE Macro
' Macro enregistrée le 13/02/2007 par maindron
'
' Touche de raccourci du clavier: Ctrl+à
'
Rows("7:7").Select
Selection.Insert Shift:=xlDown
ActiveWindow.SmallScroll ToRight:=12
Range("R6:AC6").Select
Selection.AutoFill Destination:=Range("R6:AC7"), Type:=xlFillDefault
Range("R6:AC7").Select
ActiveWindow.ScrollColumn = 1
Range("A7").Select
End Sub
Configuration: Windows 2000 Internet Explorer 6.0
Salut redzen,
Sub TRIDATES()
'
' TRIDATES Macro
' Macro enregistrée le 13/02/2007 par maindron
'
' Touche de raccourci du clavier: Ctrl+é
'
' Range("A5").Select
' Range(Selection, Selection.End(xlToRight)).Select
' Range(Selection, Selection.End(xlToDown)).Select
' Selection.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlYes, _
' OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' plus simple
Range("A5").CurrentRegion.Sort Key1:=Range("A6"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' se placer sur la dernière cellule
Range("A65536").End(xlUp).Select
End Sub
Sub TRIBOULAGE()
'
' TRIBOULAGE Macro
' Macro enregistrée le 13/02/2007 par maindron
'
' Touche de raccourci du clavier: Ctrl+è
'
' Range("A5").Select
' Range(Selection, Selection.End(xlToRight)).Select
' Range(Selection, Selection.End(xlToDown)).Select
' Selection.Sort Key1:=Range("Q6"), Order1:=xlAscending, Header:=xlYes, _
' OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' même chose ici
Range("A5").CurrentRegion.Sort Key1:=Range("Q6"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
' se placer sur la dernière cellule
Range("Q65536").End(xlUp).Select
End Sub
Sub AJOUTLIGNE()
'
' AJOUTLIGNE Macro
' Macro enregistrée le 13/02/2007 par maindron
'
' Touche de raccourci du clavier: Ctrl+à
'
' Rows("7:7").Select
' Selection.Insert Shift:=xlDown
' ActiveWindow.SmallScroll ToRight:=12
' Range("R6:AC6").Select
' Selection.AutoFill Destination:=Range("R6:AC7"), Type:=xlFillDefault
' Range("R6:AC7").Select
' ActiveWindow.ScrollColumn = 1
' Range("A7").Select
Range("A65536").End(xlUp).Select
ActiveCell.EntireRow.Copy
ActiveCell.Offset(1, 0).PasteSpecial xlPasteFormats
ActiveCell.Select
End Sub
A+,
Kobaya. |
Merci pour tes infos Kobaya. Juste une précision : sous mon tableau, j’ai une ligne vierge puis j’ai à nouveau des données sur la ligne du dessous. Ce qui fait qu’avec End(xlup), vba ne se positionne pas sur la dernière ligne de mon tableau mais sur la dernière ligne des données se trouvant sous mon tableau.
|