Re : Simplification de procèdures
Salut br44, et le forum
Pour se qui conserne l'Application cutCopyMode=False est que si je ne le mets pas dans la procèdure cela entraine la doublure de la copie
À force d'épurer les macro faites par Excel, on en oublit que certaines instructions ont une raison d'être. Faut que je regarde ce qu'elle fait réellement.
For I = 2 To .Range("A1:G29").Rows.Count
Rows(I).RowHeight = Sheets("Détail").Rows(y).RowHeight
De manière à ce quelle execute même la hauteur de ligne à chaque nouvel enregistrement ? j'avais pensé à un truc du style
For y = 1 To 29 step 50 (où 30 selon Ws3 où Ws4 ).Rows . Count
.Rows(Y).RowHeight=WS1.Rows(y).RowHeight
Comme je ne comprends pas, (j'ai repris ton original avec le point bien sûr)
y = 1
For I = 2 To .Range("A1:G29").Rows.Count le Problème est là
.Rows(I).RowHeight = Sheets("Détail").Rows(y).RowHeight
Next
y = IIf(y > 15 / 2, 1, y + 1)
Tu fixes Y à 1 tu fais ta boucle, Y=Y+1 et tu sorts
Comme c'est pas logique, j'ai supposé que c'était un extrait de code, ou un code en cours d'élaboration et que tu continuais par une autre boucle plus tard dans le code
Si tu reboucles au-dessus, le Y=1 annulera ton calcul de Y et le remettra à 1
Dans ta demande :
For I = 2 To .Range("A1:G29").Rows.Count
ça revient à écrire :
For I = 2 To 29
C'est une manière un peu alembiquée de l'écrire, mais je fais des instructions de ce style (des fois, pas souvent) pour me rappeller d'où je tire le nombre. ça me permet de ne pas m'arracher le reste de mes pauvres cheveux quand, des mois plus tard, je cherche d'où j'ai bien pu extraire ce #censuré# de nombre à la #censuré#.
For I=2 to 29 step 30
Next I
1er passage
I=2 => I>29(FAUX) => instruction suivante
Next retour à ligne For
2me passage
I=I+step => I=2+30=32 => I>29(Vrai) => instruction après Step
Donc ton instruction devra sans doute avoir un style du genre :
Y=iif(.name = "Facture",30,50)
For I = 2 To .Range("A1:G29").Rows.Count
.Rows(I).RowHeight = Sheets("Détail").Rows(I+Y).RowHeight
ou
.Rows(I).RowHeight = Sheets("Détail").Rows(I*Y).RowHeight
Où se trouve la fonction pour changer la "Police" Et/ou la couleure d'ecriture
pour la rèdaction des messages ? exemple: "Gras" "Italique" En "Rouge de taille "12" ?
Il n'y en a pas
Tu peux la créer avec un Userfprm, ou faire une recherche sur le site : il y a des solutions pour trouver un remplacement, mais je me souviens plus du sujet. J'avais vu une solution de MichelXLD (enfin je crois)
A+