pied de page vba

5 réponses
Avatar
andre
Bonjour,
quelle code utilisé pour un pied de piege
pour afficher une plage de cellules (ex B40:J40)
.CenterFooter = Sheets("toto").Range("B41":"J41")
me retourne une erreur, bien sur je peux repeter
.centerfooter = [B41] & [C41] etc... une boucle for next n'a rien
donné non plus, et egalement dans le meme ordre d'idee mettre x espace
entre 2 valeurs(j'utilise chr32)
merci de vos conseils

--
André

5 réponses

Avatar
Jacky
Bonjour,
Hummmmm!!
pour afficher une plage de cellules (ex B40:J40)
.CenterFooter = Sheets("toto").Range("B41":"J41")


...........(ex B40:J40)
...Range("B41":"J41")
*
Essaye ceci
Prend en compte les valeurs de la plage .[b41:j41]
'--------------
Sub imprime()
Dim tmp As String, c As Range
With Sheets("toto")
For Each c In .[b41:j41]
tmp = tmp & c & " "
Next
With .PageSetup
.CenterFooter = ""
.CenterFooter = tmp
End With
End With
End Sub
'------------------

--
Salutations
JJ


"andre" a écrit dans le message de news: 552b9689$0$3333$
Bonjour,
quelle code utilisé pour un pied de piege
pour afficher une plage de cellules (ex B40:J40)
.CenterFooter = Sheets("toto").Range("B41":"J41")
me retourne une erreur, bien sur je peux repeter
.centerfooter = [B41] & [C41] etc... une boucle for next n'a rien donné non plus, et egalement dans le meme
ordre d'idee mettre x espace entre 2 valeurs(j'utilise chr32)
merci de vos conseils

--
André
Avatar
andre
en fait voila la majeure partie du code
la 11 eme ligne ne passe pas la boucle for each...
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Worksheet
Dim tmp As String, c As Range

ApplicationScreenUpdating = False
For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Courses_2014-2015" Then
With Sh.PageSetup
Sheets("Courses_2014-2015").Select
For Each c In .[B41:J41]
tmp = tmp & c & " "
Next

With Sh.PageSetup
.LeftFooter = "Nombre de Courses" & Chr(10) & "Nombre de Courses Classées"
.RightHeader = ""
'.CenterFooter = [B41] & Chr(32) & Chr(32) & Chr(32) & [C41] & Chr(32) & Chr(32) & Chr(32)_
& [D41] & Chr(10) & [B42] & Chr(32) & Chr(32) & Chr(32) & [C42] & Chr(32) & Chr(32) & Chr(32) & [D42]
.CenterFooter = tmp
.CenterHeader = "Résultats des Courses saison 2014-2015"""
End With

With ActiveSheet.PageSetup.LeftHeaderPicture
.Filename = "g:UsersAndréDocumentstotoLogo.jpg"
.Height = 40 '<-- redéfinit la largeur de l'image
.Width = 80 '<-- redéfinit la hauteur de l'image

End With
ActiveSheet.PageSetup.LeftHeader = "&G"

End With
End If
Next
End Sub

--
André
Avatar
GL
Cela dépend. Quelle est votre erreur ?

Cela peut venir du '.'
=> Sh.PageSetup.[B41:J41] je ne sais pas si Excel apprécie...

ou de la concaténation peut-être...

-------------------------
Sinon peut-être que la boucle Sh a un intérêt mais il n'apparaît pas
ici : With Worksheets("Courses_2014-2015")
pourrait faire l'affaire.

De même, à vous de voir, mais [B41] & " " & [C41] & " "
est sans doute plus lisible que Chr(32)

Item: "Nombre de Courses" & VbCrLf & "Nombre de Courses Classées"
est plus lisible que Chr(10).


A bientôt !


Le 13/04/2015 16:27, andre a écrit :
en fait voila la majeure partie du code
la 11 eme ligne ne passe pas la boucle for each...
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Worksheet
Dim tmp As String, c As Range

ApplicationScreenUpdating = False
For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Courses_2014-2015" Then
With Sh.PageSetup
Sheets("Courses_2014-2015").Select
For Each c In .[B41:J41]
tmp = tmp & c & " "
Next

With Sh.PageSetup
.LeftFooter = "Nombre de Courses" & Chr(10) & "Nombre de Courses Classées"
.RightHeader = ""
'.CenterFooter = [B41] & Chr(32) & Chr(32) & Chr(32) & [C41] & Chr(32) & Chr(32) & Chr(32)_
& [D41] & Chr(10) & [B42] & Chr(32) & Chr(32) & Chr(32) & [C42] & Chr(32) & Chr(32) & Chr(32) & [D42]
.CenterFooter = tmp
.CenterHeader = "Résultats des Courses saison 2014-2015"""
End With

With ActiveSheet.PageSetup.LeftHeaderPicture
.Filename = "g:UsersAndréDocumentstotoLogo.jpg"
.Height = 40 '<-- redéfinit la largeur de l'image
.Width = 80 '<-- redéfinit la hauteur de l'image

End With
ActiveSheet.PageSetup.LeftHeader = "&G"

End With
End If
Next
End Sub

Avatar
Jacky
Re...
Modifier le début de ta macro
'--------------
Application.ScreenUpdating = False
For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Courses_2014-2015" Then
With Sh
For Each c In .[B41:J41]
tmp = tmp & c & " "
Next

With Sh.PageSetup
'------------------
Non testé!
Ps :ATTENTION "CenterFooter" est limité à 253 caractères.
--
Salutations
JJ


"andre" a écrit dans le message de news: 552bd268$0$3044$
en fait voila la majeure partie du code
la 11 eme ligne ne passe pas la boucle for each...
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim Sh As Worksheet
Dim tmp As String, c As Range

ApplicationScreenUpdating = False
For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Courses_2014-2015" Then
With Sh.PageSetup
Sheets("Courses_2014-2015").Select
For Each c In .[B41:J41]
tmp = tmp & c & " "
Next

With Sh.PageSetup
.LeftFooter = "Nombre de Courses" & Chr(10) & "Nombre de Courses Classées"
.RightHeader = ""
'.CenterFooter = [B41] & Chr(32) & Chr(32) & Chr(32) & [C41] & Chr(32) & Chr(32) & Chr(32)_
& [D41] & Chr(10) & [B42] & Chr(32) & Chr(32) & Chr(32) & [C42] & Chr(32) & Chr(32) & Chr(32) &
[D42]
.CenterFooter = tmp
.CenterHeader = "Résultats des Courses saison 2014-2015"""
End With

With ActiveSheet.PageSetup.LeftHeaderPicture
.Filename = "g:UsersAndréDocumentstotoLogo.jpg"
.Height = 40 '<-- redéfinit la largeur de l'image
.Width = 80 '<-- redéfinit la hauteur de l'image

End With
ActiveSheet.PageSetup.LeftHeader = "&G"

End With
End If
Next
End Sub

--
André
Avatar
andre
Jacky a émis l'idée suivante :
Re...
Modifier le début de ta macro
'--------------
Application.ScreenUpdating = False
For Each Sh In ActiveWindow.SelectedSheets
If Sh.Name = "Courses_2014-2015" Then
With Sh
For Each c In .[B41:J41]
tmp = tmp & c & " "
Next

With Sh.PageSetup
'------------------
Non testé!
Ps :ATTENTION "CenterFooter" est limité à 253 caractères.
--
Salutations
JJ


Merci Jacky j'ai modifié en consequence la macro c'est ok
cdt
andre

--
André