Initialisation données sur une feuille

  • Initiateur de la discussion Initiateur de la discussion nauj
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nauj

XLDnaute Junior
Bonsoir Forum,
J'ai besoin de votre aide sur un sujet qui doit être simple pour vous.
Je souhaite créer un code vba permettant d'effacer les données des colonnes impaires (les colonnes paires comportent des formules de calcul).
J'ai utilisé l'enregistreur de macro qui fonctionne mais comme dans mon fichier réel, il y a une centaine de colonnes à effacer, l'application de cette macro est trop longue (en temps)
Le fichier ci-attaché illustre les colonnes en question
Merci d'avance
 

Pièces jointes

Re : Initialisation données sur une feuille

Bonsoir nauj,

Tu n'as pas laissé ta macro dans ton fichier, il est donc difficile de tester sur le temps.

Maintenant, il faut aussi penser que plus il y a de travail à faire, plus le temps est long même pour une macro.

Pour ne pas redéposer inutillement, copie ton code dans ton post.

A te lire.

Bonne nuit.

Jean-Pierre
 
Re : Initialisation données sur une feuille

Bonsoir Jeanpierre, Forum,
Voici le code (assez indisgeste) correspondant, je l'ai volontairement coupé...
Sincères saluations
ActiveWindow.SmallScroll Down:=-6
Range("A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28").Select
Range("M4").Activate
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28" _
).Select
Range("Y4").Activate
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
.
.
.
Range("CY4").Activate
Selection.ClearContents
ActiveWindow.ScrollColumn = 91
ActiveWindow.ScrollColumn = 90
ActiveWindow.ScrollColumn = 89
ActiveWindow.ScrollColumn = 88
ActiveWindow.ScrollColumn = 87
ActiveWindow.ScrollColumn = 86
ActiveWindow.ScrollColumn = 84
ActiveWindow.ScrollColumn = 83
ActiveWindow.ScrollColumn = 81
ActiveWindow.ScrollColumn = 78
ActiveWindow.ScrollColumn = 75
ActiveWindow.ScrollColumn = 73
ActiveWindow.ScrollColumn = 69
ActiveWindow.ScrollColumn = 64
ActiveWindow.ScrollColumn = 59
ActiveWindow.ScrollColumn = 55
 
Re : Initialisation données sur une feuille

Re,

Déjà, supprime tous les : ActiveWindow.ScrollColumn = xxx

Ensuite, mets en tout début de macro, juste en dessous du Sub ....

Application.ScreenUpdating = False

et en fin, juste avant le End Sub : Application.ScreenUpdating = True

Vérifie sur une copie de ton fichier, et au besoin, redépose le code après modifs., mais tout le code cette fois. Le séquentiel ne permet pas de se faire une appréciation.
 
Re : Initialisation données sur une feuille

Bonjour Jeanpierre, Forum,
Je n'ai pas réussi à mettre en application ton conseil d'hier.
Je te fais parvenir le code initial complet
Merci encore pour ton aide
Le voici :
ActiveWindow.SmallScroll Down:=-6
Range("A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28").Select
Range("M4").Activate
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28" _
).Select
Range("Y4").Activate
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 23
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 25
Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28" _
).Select
Range("AK4").Activate
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 28
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 30
ActiveWindow.ScrollColumn = 31
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 33
ActiveWindow.ScrollColumn = 34
ActiveWindow.ScrollColumn = 35
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 37
Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28" _
).Select
Range("AW4").Activate
ActiveWindow.ScrollColumn = 38
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 40
ActiveWindow.ScrollColumn = 42
ActiveWindow.ScrollColumn = 43
ActiveWindow.ScrollColumn = 44
ActiveWindow.ScrollColumn = 45
ActiveWindow.ScrollColumn = 46
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 48
Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:BA28,BC4:BC28,BE4:BE28,BG4:BG28,BI4:BI28" _
).Select
Range("BI4").Activate
ActiveWindow.ScrollColumn = 49
ActiveWindow.ScrollColumn = 50
ActiveWindow.ScrollColumn = 51
ActiveWindow.ScrollColumn = 52
ActiveWindow.ScrollColumn = 53
ActiveWindow.ScrollColumn = 54
ActiveWindow.ScrollColumn = 55
ActiveWindow.ScrollColumn = 56
ActiveWindow.ScrollColumn = 57
ActiveWindow.ScrollColumn = 58
ActiveWindow.ScrollColumn = 59
Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:BA28" _
), Range("BE4:BE28,BG4:BG28,BI4:BI28,BK4:BK28")).Select
Range("BS4").Activate
ActiveWindow.ScrollColumn = 60
ActiveWindow.ScrollColumn = 61
ActiveWindow.ScrollColumn = 62
ActiveWindow.ScrollColumn = 63
ActiveWindow.ScrollColumn = 64
ActiveWindow.ScrollColumn = 65
ActiveWindow.ScrollColumn = 66
ActiveWindow.ScrollColumn = 67
ActiveWindow.ScrollColumn = 68
ActiveWindow.ScrollColumn = 69
ActiveWindow.ScrollColumn = 70
Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,BU4:BU28,BW4:BW28,BY4:BY28,CA4:CA28,CC4:CC28,CE4:CE28,A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28" _
), Range( _
"AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:BA28,BC4:BC28,BE4:BE28,BG4:BG28,BI4:BI28,BK4:BK28" _
)).Select
Range("CE4").Activate
ActiveWindow.ScrollColumn = 71
ActiveWindow.ScrollColumn = 72
ActiveWindow.ScrollColumn = 73
ActiveWindow.ScrollColumn = 74
ActiveWindow.ScrollColumn = 75
ActiveWindow.ScrollColumn = 76
ActiveWindow.ScrollColumn = 77
ActiveWindow.ScrollColumn = 78
ActiveWindow.ScrollColumn = 79
ActiveWindow.ScrollColumn = 80
ActiveWindow.ScrollColumn = 81
ActiveWindow.ScrollColumn = 82
Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,BU4:BU28,BW4:BW28,BY4:BY28,CA4:CA28,CC4:CC28,CE4:CE28,CG4:CG28,CI4:CI28,CK4:CK28,CM4:CM28,CO4:CO28,CQ4:CQ28,A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28" _
), Range( _
"AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:BA28,BC4:BC28,BE4:BE28,BG4:BG28,BI4:BI28,BK4:BK28" _
)).Select
Range("CQ4").Activate
ActiveWindow.ScrollColumn = 83
ActiveWindow.ScrollColumn = 84
ActiveWindow.ScrollColumn = 85
ActiveWindow.ScrollColumn = 86
ActiveWindow.ScrollColumn = 87
ActiveWindow.ScrollColumn = 88
ActiveWindow.ScrollColumn = 89
ActiveWindow.ScrollColumn = 90
ActiveWindow.ScrollColumn = 91
ActiveWindow.ScrollColumn = 92
Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,BU4:BU28,BW4:BW28,BY4:BY28,CA4:CA28,CC4:CC28,CE4:CE28,CG4:CG28,CI4:CI28,CK4:CK28,CM4:CM28,CO4:CO28,CQ4:CQ28,CS4:CS28,CU4:CU28,CW4:CW28,CY4:CY28,A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28" _
), Range( _
"Y4:Y28,AA4:AA28,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:BA28,BC4:BC28,BE4:BE28,BG4:BG28,BI4:BI28,BK4:BK28" _
)).Select
Range("CY4").Activate
Selection.ClearContents
ActiveWindow.ScrollColumn = 91
ActiveWindow.ScrollColumn = 90
ActiveWindow.ScrollColumn = 89
ActiveWindow.ScrollColumn = 88
ActiveWindow.ScrollColumn = 87
ActiveWindow.ScrollColumn = 86
ActiveWindow.ScrollColumn = 84
ActiveWindow.ScrollColumn = 83
ActiveWindow.ScrollColumn = 81
ActiveWindow.ScrollColumn = 78
ActiveWindow.ScrollColumn = 75
ActiveWindow.ScrollColumn = 73
ActiveWindow.ScrollColumn = 69
ActiveWindow.ScrollColumn = 64
ActiveWindow.ScrollColumn = 59
ActiveWindow.ScrollColumn = 55
ActiveWindow.ScrollColumn = 51
ActiveWindow.ScrollColumn = 47
ActiveWindow.ScrollColumn = 43
ActiveWindow.ScrollColumn = 39
ActiveWindow.ScrollColumn = 36
ActiveWindow.ScrollColumn = 32
ActiveWindow.ScrollColumn = 29
ActiveWindow.ScrollColumn = 27
ActiveWindow.ScrollColumn = 26
ActiveWindow.ScrollColumn = 24
ActiveWindow.ScrollColumn = 22
ActiveWindow.ScrollColumn = 21
ActiveWindow.ScrollColumn = 20
ActiveWindow.ScrollColumn = 19
ActiveWindow.ScrollColumn = 18
ActiveWindow.ScrollColumn = 17
ActiveWindow.ScrollColumn = 16
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A2:B2").Select
End Sub
 
Re : Initialisation données sur une feuille

Re,

Que te dire, sinon ce que j'ai déjà dit :

En début de macro, juste après le Sub :

Application.ScreenUpdating = False

ensuite :


Range("A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M 4:M28").Select
Range("M4").Activate

Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28, O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28" _
).Select
Range("Y4").Activate

Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28, O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28 ,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28" _
).Select
Range("AK4").Activate
Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28, O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28 ,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4: AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28" _
).Select
Range("AW4").Activate

Range( _
"A4:A28,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28, O4:O28,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28 ,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4: AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28, AY4:AY28,BA4:BA28,BC4:BC28,BE4:BE28,BG4:BG28,BI4:B I28" _
).Select
Range("BI4").Activate
Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,A4:A28,C4:C28 ,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28, S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28,AE4: AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28, AQ4:AQ28,AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:B A28" _
), Range("BE4:BE28,BG4:BG28,BI4:BI28,BK4:BK28")).Sele ct
Range("BS4").Activate

Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,BU4:BU28,BW4: BW28,BY4:BY28,CA4:CA28,CC4:CC28,CE4:CE28,A4:A28,C4 :C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4: Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:AC28, AE4:AE28,AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:A O28" _
), Range( _
"AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:BA28,BC4: BC28,BE4:BE28,BG4:BG28,BI4:BI28,BK4:BK28" _
)).Select
Range("CE4").Activate
Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,BU4:BU28,BW4: BW28,BY4:BY28,CA4:CA28,CC4:CC28,CE4:CE28,CG4:CG28, CI4:CI28,CK4:CK28,CM4:CM28,CO4:CO28,CQ4:CQ28,A4:A2 8,C4:C28,E4:E28,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28 ,Q4:Q28,S4:S28,U4:U28,W4:W28,Y4:Y28,AA4:AA28,AC4:A C28" _
), Range( _
"AG4:AG28,AI4:AI28,AK4:AK28,AM4:AM28,AO4:AO28,AQ4: AQ28,AS4:AS28,AU4:AU28,AW4:AW28,AY4:AY28,BA4:BA28, BC4:BC28,BE4:BE28,BG4:BG28,BI4:BI28,BK4:BK28" _
)).Select
Range("CQ4").Activate
Union(Range( _
"BM4:BM28,BO4:BO28,BQ4:BQ28,BS4:BS28,BU4:BU28,BW4: BW28,BY4:BY28,CA4:CA28,CC4:CC28,CE4:CE28,CG4:CG28, CI4:CI28,CK4:CK28,CM4:CM28,CO4:CO28,CQ4:CQ28,CS4:C S28,CU4:CU28,CW4:CW28,CY4:CY28,A4:A28,C4:C28,E4:E2 8,G4:G28,I4:I28,K4:K28,M4:M28,O4:O28,Q4:Q28,S4:S28 " _
), Range( _
"Y4:Y28,AA4:AA28,AC4:AC28,AE4:AE28,AG4:AG28,AI4:AI 28,AK4:AK28,AM4:AM28,AO4:AO28,AQ4:AQ28,AS4:AS28,AU 4:AU28,AW4:AW28,AY4:AY28,BA4:BA28,BC4:BC28,BE4:BE2 8,BG4:BG28,BI4:BI28,BK4:BK28" _
)).Select
Range("CY4").Activate
Selection.ClearContents
Range("A2:B2").Select
Application.ScreenUpdating = True
End Sub

De plus, tu as des instructions qui reviennent plusieurs fois (selections de colonnes déjà traitées).

Une autre solution consisterait à utiliser un code du genre :

Sub vider()

Columns("A:BQ").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
End Sub

Après avoir mis tout tes titres et autres libellés sous la forme (texte ou numérique):

="mon titre", ou ="mon libellé"

Ainsi, seules les valeurs saisies seraient mises à blanc.

Sinon, redépose un fichier (zippé) pour aller plus loin.

Bon dimanche.

Jean-Pierre
 
Re : Initialisation données sur une feuille

Jeanpierre,
Je viens des tester ta proposition, la vitesse d'exécution est bien meilleure que précédemment !
Pour ce qui me concerne, le sujet est clos.
Merci pour ton efficacité et patience
A bientôt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour