Aléger un programme ...

super_tyty

XLDnaute Nouveau
Bonsoir tlm,
Je suis nouveau dans le forum, j'y viens depuis quelques jours pour puiser dans ces ressources si riches lol.

Au boulot, nous récuperons une base de donnée et nous la retravaillons. Dans mon soucis de faire un document final propre et presentable, je définis quelques paramettres d'impressions qui me paraissent très lourd (vu le temps d'execution par rapport au reste) ...


With ActiveSheet.PageSetup
.LeftHeader = _
"&""Arial,Italic""&9Bruno&""Arial,Regular""&10 &""Arial,Bold""&12&P / &N"
.RightHeader = "&D"
.LeftFooter = "&""Arial,Italic""&8Sandvik / Assystem France"
.CenterHorizontally = True
.Zoom = 90
End With


Peut on aléger ce programme ?

Par avance merci

Cordialement
Super_TyTy

PS: j'aurai d'autres questions par la suite, si vous pouvez m'éclairer, elles reste assez basique je pense.
 

Staple1600

XLDnaute Barbatruc
Re : Aléger un programme ...

Re, re bhbh


Voila j'ai retrouvé le post en question

Lien supprimé

Et c'était Fred65200

Voir le lien indiqué dans son message

et faire également une recherche sur:
Application.ExecuteExcel4Macro "PAGE.SETUP
 

super_tyty

XLDnaute Nouveau
Re : Aléger un programme ...

Très bien merci pour cette réponse je vais mis pencher dessus (Pour le moment je n'arrive pas à l'appliquer mais patience !)

Sinon j'ai un soucis, et je n'arrive pas à le corriger ... c'est un peu enervant à force. Je nettoye un peu mes données par des "remplacer par", mais ils ne s'appliquent pas à ma colonne selectionnée, elle se répercute de partout, c'est un peu génant ...

Que pensez vous de ca :

[D:D].Select
With Selection
.Replace What:="ADAPTOR", Replacement:="FITTING"
.Replace What:="ADAPTER", Replacement:="FITTING"
.Replace What:="FITTING TEE", Replacement:="TEE FITTING"
.Replace What:="swivel nut elbow 90", Replacement:="90° fitting"
.Replace What:="straight thread fitting", Replacement:="straight fitting"
.Replace What:="Disk spring", Replacement:="WASHER"
.Replace What:="Socket head screw (full thread)", Replacement:="SCREW CHC M"
.Replace What:="Socket head screw", Replacement:="SCREW CHC M"
.Replace What:="taper pin", Replacement:="EXPANDABLE PIN"
.Replace What:="(hydraulic)", Replacement:=""
.Replace What:="sign", Replacement:="LABEL"
.Replace What:="decal", Replacement:="LABEL"
.Replace What:="stainless steel", Replacement:="HW"
.Replace What:="Hexagon head screw (full thread)", Replacement:="SCREW H M"
.Replace What:="Hexagon head bolt (half thread)", Replacement:="BOLT M"
.Replace What:="Hexagon ", Replacement:=""
.Replace What:="Double lock washer", Replacement:="WASHER D: NORD LOCK"
End With

PS: dsl pour le smiley
 

super_tyty

XLDnaute Nouveau
Re : Aléger un programme ...

Re, re bhbh


Voila j'ai retrouvé le post en question

Lien supprimé

Et c'était Fred65200

Voir le lien indiqué dans son message

et faire également une recherche sur:
Application.ExecuteExcel4Macro "PAGE.SETUP

Au risque de parraitre idiot, je n'arrive pas à utiliser les données qui sont sur le site meme brut, car modifié par mes soins ca ne marche pas mieux ...
Mon cas est déespéré ?
 

Staple1600

XLDnaute Barbatruc
Re : Aléger un programme ...

Re

Pour répondre à ta question sur Replace


Voici une autre façon de faire
(ici c'est la colonne A qui est traiter)

Code:
Sub test()
Dim TabSRC() As Variant
Dim i As Long
TabSRC = Array("ADAPTOR", "ADAPTER", "FITTING TEE", "swivel nut elbow 90", "straight thread fitting", "Disk spring", "Socket head screw (full thread)", "Socket head screw", "taper pin", "(hydraulic)", "sign", "decal", "stainless steel", "Hexagon head screw (full thread)", "Hexagon head bolt (half thread)", "Hexagon ", "Double lock washer")
TabREP = Array("FITTING", "FITTING", "TEE FITTING", "90° fitting", "straight fitting", "WASHER", "SCREW CHC M", "SCREW CHC M", "EXPANDABLE PIN", "", "LABEL", "LABEL", "HW", "SCREW H M", "BOLT M", "", "WASHER D: NORD LOCK")
For Each cell In Range("A1:A" & [A65536].End(xlUp).Row)
For i = LBound(TabSRC) To UBound(TabSRC)
If cell.Value = TabSRC(i) Then
cell.Value = TabREP(i)
End If
Next i
Next
End Sub

Je te laisse tester sur une COPIE (soyons prudents) de ton fichier.
 

super_tyty

XLDnaute Nouveau
Re : Aléger un programme ...

Re

Pour répondre à ta question sur Replace


Voici une autre façon de faire
(ici c'est la colonne A qui est traiter)

Code:
Sub test()
Dim TabSRC() As Variant
Dim i As Long
TabSRC = Array("ADAPTOR", "ADAPTER", "FITTING TEE", "swivel nut elbow 90", "straight thread fitting", "Disk spring", "Socket head screw (full thread)", "Socket head screw", "taper pin", "(hydraulic)", "sign", "decal", "stainless steel", "Hexagon head screw (full thread)", "Hexagon head bolt (half thread)", "Hexagon ", "Double lock washer")
TabREP = Array("FITTING", "FITTING", "TEE FITTING", "90° fitting", "straight fitting", "WASHER", "SCREW CHC M", "SCREW CHC M", "EXPANDABLE PIN", "", "LABEL", "LABEL", "HW", "SCREW H M", "BOLT M", "", "WASHER D: NORD LOCK")
For Each cell In Range("A1:A" & [A65536].End(xlUp).Row)
For i = LBound(TabSRC) To UBound(TabSRC)
If cell.Value = TabSRC(i) Then
cell.Value = TabREP(i)
End If
Next i
Next
End Sub

Je te laisse tester sur une COPIE (soyons prudents) de ton fichier.

Les variable ne sont pas toutes déclaré visiblement
exemple:

Dim TabREP() As Variant

Mais je suis pas un pro, il me pose le meme probleme sur "cell", c'est normal ?
Dans :

For Each cell In Range("A1:A" & [A65536].End(xlUp).Row)
 

ChTi160

XLDnaute Barbatruc
Re : Aléger un programme ...

Salut
Bonsoir le fil
Bonsoir le Forum

arff moi j'aurai mis
Columns(4).Select
tu Peux aussi affiner en ne sélectionnant que la partie ou il y a des données
Code:
With Worksheets("Feuil1")
  With .Range("D2:D" & .Range("D65536").End(xlUp).Row)
    .Replace "ADAPTOR","FITTING"
    Etc .........
    Etc .........
  End With
End With
en espérant avoir pu t'aider
Bonne fin de Soirée
 

super_tyty

XLDnaute Nouveau
Re : Aléger un programme ...

Salut
Bonsoir le fil
Bonsoir le Forum

arff moi j'aurai mis
Columns(4).Select
tu Peux aussi affiner en ne sélectionnant que la partie ou il y a des données
Code:
With Worksheets("Feuil1")
  With .Range("D2:D" & .Range("D65536").End(xlUp).Row)
    .Replace "ADAPTOR","FITTING"
    Etc .........
    Etc .........
  End With
End With
en espérant avoir pu t'aider
Bonne fin de Soirée

Et des deux quelles solution est la plus rapide ?
 

super_tyty

XLDnaute Nouveau
Re : Aléger un programme ...

Re


Testes les deux macros

et dis-nous laquelle est la plus rapide ;)



Il manquait quoi d'autre, stp?


A vrai dire, on voit pas trop la difference de rapidité ... lol mais je prefere la solution de notre ami, ca éviter de déclarer tout un tas de variable, j 'en ai déjà pas mal dans mes autres bout de programme.



Dim TabSRC() As Variant
Dim Cell As Range
Dim TabREP() As Variant
Dim x As Long
Dim i As Integer

TabSRC = Array("ADAPTOR", "ADAPTER", "FITTING TEE", "swivel nut elbow 90", "straight thread fitting", "Disk spring", "Socket head screw (full thread)", "Socket head screw", "taper pin", "(hydraulic)", "sign", "decal", "stainless steel", "Hexagon head screw (full thread)", "Hexagon head bolt (half thread)", "Hexagon ", "Double lock washer", "rondelle")
TabREP = Array("FITTING", "FITTING", "TEE FITTING", "90° fitting", "straight fitting", "WASHER", "SCREW CHC M", "SCREW CHC M", "EXPANDABLE PIN", "", "LABEL", "LABEL", "HW", "SCREW H M", "BOLT M", "", "WASHER D: NORD LOCK", "washer")
For Each Cell In Range("D1:D" & [A65536].End(xlUp).Row)
For x = LBound(TabSRC) To UBound(TabSRC)
If Cell.Value = TabSRC(i) Then
Cell.Value = TabREP(i)
End If
Next x
Next
 

Membres actuellement en ligne

Statistiques des forums

Discussions
314 948
Messages
2 114 649
Membres
112 206
dernier inscrit
salah zabi