Formater chaques pages

  • Initiateur de la discussion Initiateur de la discussion Nit
  • 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 !

N

Nit

Guest
Bonjour à tout le forum

J'aurais souhaité par VBA appliquer sur chaque page une largeur de colonne. Je saisis le code suivant puis appelle la routine...Oupssss seule la premiere page voit sa colonne H avec la nouvelle largeur! (il ne passe rien sur les autres)


Sub PagePerso()
Dim f As Worksheet

For Each f In ActiveWorkbook.Worksheets
With f.PageSetup
Columns('H').ColumnWidth = 95.57
End With
Next
End Sub


Je pense avoir oublié quelque chose :S

De plus si je veux que sur chaque page figure également en I1 le total de la colonne (I2 à I...), comment procéder?

Un grand merci par avance pour votre aide.
 
Bonjour,

Tu as oublié de lui dire d'affecter la largeur pour chaque page
c'est bête hein.. juste pour un 'f.'
donc le code donnerait plutot ceci :

Code:
Sub PagePerso()
Dim f As Worksheet
For Each f In ActiveWorkbook.Worksheets
f.Columns('H').ColumnWidth = 95.57
Next
End Sub

(le with f.pagesetup ..euh.. je ne vois pas à quoi il sert, alors je l'ai amputé..)

A+
 
Bonjour,

la maison ne reculant devant aucun sacrifice, voici une macro qui fait les 2 :

Code:
Sub PagePerso()
Dim f As Worksheet
For Each f In ActiveWorkbook.Worksheets
f.Columns('H').ColumnWidth = 95.57
If f.Range('i65536').End(xlUp).Row > 1 Then
    f.Range('I1').FormulaLocal = '=somme(I2:I' & f.Range('i65536').End(xlUp).Row & ')'
Else
    f.Range('I1').Value = 'pas de donnée'
End If
Next
end sub
Enjoy
 
Bonjour,

C'est vrai qu'au début on a tendance à beaucoup abuser du select.. c'est joli tout ces clignotements, mais pas très efficace en fait 🙂
Je me rappelle à mes debuts... tout ces 'application.ScreenUpdating = False' avec tout ces 'machin.select'... en fait on s'en passe très bien 😛

ceci dit, un
f.Range('I1').Select
suivi d'un
activecell.formulalocal = '=somme(i2:i20000)'
ca devrait fonctionner mais c'est un peu brutal

Bon courage pour la suite
A+ 😛
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
119
Réponses
9
Affichages
396
Réponses
2
Affichages
1 K
Réponses
1
Affichages
1 K
Retour