Générer une macro qui agit sur la forme de la feuille

Imperium

XLDnaute Junior
Bonjour à tous,

Une fois encore, je viens vous demander de l'aide. Aide qui m'a été on ne peut plus précieuse par le passé, et qui m'a vraiment permis d'élargir mes connaissances Excel.

Aujourd'hui, je cherche une macro qui me permettrait d'agir directement sur une feuille, pour faire les actions suivantes :

Le contexte : Une feuille vide qui va servir pour la préparation d'un tableau que l'on a copier d'une autre feuille.

Etape 1 : Je prend mon tableau de la feuille A, le copie, et le colle sur la feuille B en partant de A1

Je me retrouve donc avec mon tableau copié/collé, qui comporte plusieurs colonnes.

Etape 2 : Avec ma macro, c'est à dire en un click, j'aimerai que les actions suivantes se produisent :

- Mettre des filtres automatiques sur toute la ligne 1

- Supprimer les colonnes 7, 8, 10, 11, 12, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24 simultanément.

Une fois cela fait, et dans cet ordre :

- La colonne 10 est coupée puis collée avant la colonne 9 (pour donc devenir la colonne 9)

PUIS

- La colonne 6 est coupée pour être copiée devant la nouvelle colonne 9 (et donc devenir la 9 à son tour).



Voilà !! Ce serait absolument génial si cela pouvait être possible en un seul click ! D'un point de vue professionnel, cela m'avancerait énormément car je traite des dizaines et des dizaines de tableaux comme cela.

Je demande votre aide, bien sûr, mais si vous pouviez également m'expliquer comment fonctionne le schmilblick, que je puisse l'expliquer à mon tour et aider d'autres personnes.

Par avance, merci milles fois !
 

jp14

XLDnaute Barbatruc
Re : Générer une macro qui agit sur la forme de la feuille

Bonjour

Une piste : utiliser l'enregistreur de macro pour créer la macro de base, puis la modifier en enlevant les lignes inutiles et en supprimant le couple qui pose problème "select selection".

JP
 

Imperium

XLDnaute Junior
Re : Générer une macro qui agit sur la forme de la feuille

J'ai réussi ! Voici le texte de la macro pour ceux que ça intéresse :)

Sub Mise_en_forme()
'
' Mise_en_forme Macro

'
' Touche de raccourci du clavier: Ctrl+m
'
Rows("1:1").Select
Application.CutCopyMode = False
Selection.AutoFilter
Columns("C:C").ColumnWidth = 26
Columns("B:B").ColumnWidth = 18.29
Columns("E:E").ColumnWidth = 19.71
Range("E3").Select
Columns("D:D").ColumnWidth = 20.43
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
Columns("G:G").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Columns("H:H").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Columns("I:I").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Columns("J:J").Select
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
Columns("F:F").Select
Selection.Cut
Columns("I:I").Select
Selection.ColumnWidth = 12.71
Selection.Insert Shift:=xlToRight
Columns("J:J").Select
Selection.Cut
Columns("H:H").Select
Selection.Insert Shift:=xlToRight
Columns("I:I").Select
Selection.Insert Shift:=xlToRight
Columns("K:K").Select
Selection.Insert Shift:=xlToRight
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
Columns("L:L").Select
Selection.Insert Shift:=xlToRight
Columns("M:M").Select
Selection.Insert Shift:=xlToRight
Range("L1").Select
ActiveCell.FormulaR1C1 = "PP"
With ActiveCell.Characters(Start:=1, Length:=2).Font
.Name = "Arial"
.FontStyle = "Gras"
.Size = 10
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 11
End With
Range("L2").Select
ActiveCell.FormulaR1C1 = "=RC[-5]-RC[2]"
Range("L2").Select
Selection.AutoFill Destination:=Range("L2:L490"), Type:=xlFillDefault
Range("L2:L490").Select
ActiveWindow.SmallScroll Down:=-54
ActiveWindow.ScrollRow = 397
ActiveWindow.ScrollRow = 396
ActiveWindow.ScrollRow = 394
ActiveWindow.ScrollRow = 393
ActiveWindow.ScrollRow = 391
ActiveWindow.ScrollRow = 386
ActiveWindow.ScrollRow = 382
ActiveWindow.ScrollRow = 376
ActiveWindow.ScrollRow = 370
ActiveWindow.ScrollRow = 363
ActiveWindow.ScrollRow = 357
ActiveWindow.ScrollRow = 351
ActiveWindow.ScrollRow = 344
ActiveWindow.ScrollRow = 337
ActiveWindow.ScrollRow = 328
ActiveWindow.ScrollRow = 320
ActiveWindow.ScrollRow = 311
ActiveWindow.ScrollRow = 302
ActiveWindow.ScrollRow = 295
ActiveWindow.ScrollRow = 288
ActiveWindow.ScrollRow = 281
ActiveWindow.ScrollRow = 273
ActiveWindow.ScrollRow = 267
ActiveWindow.ScrollRow = 258
ActiveWindow.ScrollRow = 252
ActiveWindow.ScrollRow = 245
ActiveWindow.ScrollRow = 238
ActiveWindow.ScrollRow = 229
ActiveWindow.ScrollRow = 220
ActiveWindow.ScrollRow = 210
ActiveWindow.ScrollRow = 200
ActiveWindow.ScrollRow = 190
ActiveWindow.ScrollRow = 180
ActiveWindow.ScrollRow = 171
ActiveWindow.ScrollRow = 164
ActiveWindow.ScrollRow = 159
ActiveWindow.ScrollRow = 153
ActiveWindow.ScrollRow = 147
ActiveWindow.ScrollRow = 142
ActiveWindow.ScrollRow = 136
ActiveWindow.ScrollRow = 131
ActiveWindow.ScrollRow = 127
ActiveWindow.ScrollRow = 122
ActiveWindow.ScrollRow = 117
ActiveWindow.ScrollRow = 113
ActiveWindow.ScrollRow = 110
ActiveWindow.ScrollRow = 107
ActiveWindow.ScrollRow = 105
ActiveWindow.ScrollRow = 104
ActiveWindow.ScrollRow = 102
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 99
ActiveWindow.ScrollRow = 98
ActiveWindow.ScrollRow = 97
ActiveWindow.ScrollRow = 96
ActiveWindow.ScrollRow = 95
ActiveWindow.ScrollRow = 94
ActiveWindow.ScrollRow = 93
ActiveWindow.ScrollRow = 91
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 89
ActiveWindow.ScrollRow = 88
ActiveWindow.ScrollRow = 87
ActiveWindow.ScrollRow = 86
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollRow = 80
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 73
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 67
ActiveWindow.ScrollRow = 65
ActiveWindow.ScrollRow = 64
ActiveWindow.ScrollRow = 63
ActiveWindow.ScrollRow = 62
ActiveWindow.ScrollRow = 61
ActiveWindow.ScrollRow = 59
ActiveWindow.ScrollRow = 58
ActiveWindow.ScrollRow = 57
ActiveWindow.ScrollRow = 56
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 53
ActiveWindow.ScrollRow = 52
ActiveWindow.ScrollRow = 51
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 48
ActiveWindow.ScrollRow = 47
ActiveWindow.ScrollRow = 46
ActiveWindow.ScrollRow = 44
ActiveWindow.ScrollRow = 43
ActiveWindow.ScrollRow = 41
ActiveWindow.ScrollRow = 39
ActiveWindow.ScrollRow = 37
ActiveWindow.ScrollRow = 34
ActiveWindow.ScrollRow = 32
ActiveWindow.ScrollRow = 30
ActiveWindow.ScrollRow = 27
ActiveWindow.ScrollRow = 26
ActiveWindow.ScrollRow = 24
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 20
ActiveWindow.ScrollRow = 18
ActiveWindow.ScrollRow = 15
ActiveWindow.ScrollRow = 13
ActiveWindow.ScrollRow = 11
ActiveWindow.ScrollRow = 9
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollRow = 5
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 3
ActiveWindow.ScrollRow = 2
ActiveWindow.ScrollRow = 1
Range("M3").Select
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 553
Messages
2 089 533
Membres
104 205
dernier inscrit
mehaya63