Multi titres

Le
Fredo(67)
Bonjour.

J'ai un document Excel compos d'environ 8000 lignes
Ce document reprsente le mtr d'un ensemble immobilier.

Cet ensemble immobilier est compos de 8 btiments

le batiment A occupe peu prs les 1000 1res lignes
le B les 1000 suivantes.. ainsi de suite
bien sr le nombre de lignes, ainsi que la hauteur de chaque ligne
varie pour chaque btiment.
Ce document n'est pas fig, et il et ammen tre modifi souven=
t.

Au dbut du mtr de chaque batiment, ne ligne spciale indique le
titre.


Ce que voudrais c'est qu' l'impression du document, le nom du
batiment concern apparaisse en haut de chaque page.

j'ai essay de dfinir plusieurs lignes de titre, mais cela ne
fonctionne pas car les lignes de titres doivent tre adgacentes.

Vous pourriez me conseiller d'insrer avant chaque page mon titre,
mais cela coupe le dynamisme du doc, et obligerait refaire la manip
aprs chaque modification.

Une ide ?
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Fredo(67)
Le #24285831
Opps désolé pour les multi message, ma session avait expiré.

Oui, Michdenis, ce serait une bonne solution, mais je ne peux
malheureusement pas éclater en plusieurs feuilles.

j'ai l'obligation de tout concerver sur une seule feuille.
pom...pom...pom..
Le #24286481
Bonsour®

"Fredo(67)" a écrit

Oui, Michdenis, ce serait une bonne solution, mais je ne peux
malheureusement pas éclater en plusieurs feuilles.

j'ai l'obligation de tout concerver sur une seule feuille.



utiliser les filtres et gestionnaire de vues (voir l'aide )
MichD
Le #24287131
Essaie ceci :

Dans la procédure, il y a quelques variables à modifier comme le nom "UNIQUE"
des bâtiments et le nom de la feuille où sont les données.

'---------------------------------------------------
Sub test()

Dim Arr(), DerCol As Integer, Rg As Range, T()
Dim X As Integer, Sh As Worksheet, DerLig As Long
Dim A As Integer, Elt As Variant, S As Integer

'Liste des noms des bâtiments à adapter
Arr = Array("Bâtiment1", "Bâtiment2", "Bâtiment3", "Bâtiment4", _
"Bâtiment5", "Bâtiment6", "Bâtiment7", "Bâtiment8")

'Nom Feuille à adapter
Set Sh = ThisWorkbook.Worksheets("Feuil1")

With Sh
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
S = 1: X = 1
For A = 1 To UBound(Arr)
With .Cells
Set Rg = .Find(What:=Arr(A), LookIn:=xlValues, _
lookat:=xlWhole)

If Not Rg Is Nothing Then
ReDim Preserve T(1 To S)
T(S) = Sh.Range(Sh.Cells(X, "A"), _
Sh.Cells(Rg.Row - 1, DerCol)).Address
S = S + 1
X = Rg.Row
If S = UBound(Arr) + 1 Then
DerLig = Sh.Cells.Find(What:="*", _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
ReDim Preserve T(1 To S)
T(S) = Sh.Range(Sh.Cells(X, "A"), _
.Cells(DerLig, DerCol)).Address
End If
End If
End With
Next
End With

A = 0
For Each Elt In T
With Sh
'Tu peux ajouter d'autres propriétés si besoin...
.PageSetup.PrintArea = Elt
.PageSetup.Order = xlOverThenDown
.PageSetup.CenterHeader = Arr(A)
.PrintPreview 'Après test, remplace par .PrintOut
.PageSetup.PrintArea = ""
End With
A = A + 1
Next

End Sub
'---------------------------------------------------



MichD
------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


Opps désolé pour les multi message, ma session avait expiré.

Oui, Michdenis, ce serait une bonne solution, mais je ne peux
malheureusement pas éclater en plusieurs feuilles.

j'ai l'obligation de tout concerver sur une seule feuille.
Fredo(67)
Le #24290841
Merci beaucoup,

je vais tester ça.

On 29 fév, 04:49, "MichD"
Essaie ceci :

Dans la procédure, il y a quelques variables à modifier comme le nom "UNIQUE"
des bâtiments et le  nom de la feuille où sont les données.

'---------------------------------------------------
Sub test()

Dim Arr(), DerCol As Integer, Rg As Range, T()
Dim X As Integer, Sh As Worksheet, DerLig As Long
Dim A As Integer, Elt As Variant, S As Integer

'Liste des noms des bâtiments à adapter
Arr = Array("Bâtiment1", "Bâtiment2", "Bâtiment3", "Bâtiment4", _
            "Bâtiment5", "Bâtiment6", "Bâtiment7", "B âtiment8")

'Nom Feuille à adapter
Set Sh = ThisWorkbook.Worksheets("Feuil1")

With Sh
    DerCol = .Cells.Find(What:="*", _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByColumns, _
                    SearchDirection:=xlPrevious).Co lumn
    S = 1: X = 1
    For A = 1 To UBound(Arr)
        With .Cells
            Set Rg = .Find(What:=Arr(A), LookIn:=xlValu es, _
                    lookat:=xlWhole)

            If Not Rg Is Nothing Then
                ReDim Preserve T(1 To S)
                T(S) = Sh.Range(Sh.Cells(X, "A"), _
                    Sh.Cells(Rg.Row - 1, DerCol)).Add ress
                S = S + 1
                X = Rg.Row
                If S = UBound(Arr) + 1 Then
                    DerLig = Sh.Cells.Find(What:= "*", _
                            LookIn:=xlValue s, _
                            SearchOrder:=xl ByRows, _
                            SearchDirection: =xlPrevious).Row
                    ReDim Preserve T(1 To S)
                    T(S) = Sh.Range(Sh.Cells(X, "A" ), _
                            .Cells(DerLig, De rCol)).Address
                End If
            End If
        End With
    Next
End With

A = 0
For Each Elt In T
    With Sh
        'Tu peux ajouter d'autres propriétés si besoin...
        .PageSetup.PrintArea = Elt
        .PageSetup.Order = xlOverThenDown
        .PageSetup.CenterHeader = Arr(A)
        .PrintPreview 'Après test, remplace par .PrintOut
        .PageSetup.PrintArea = ""
    End With
    A = A + 1
Next

End Sub
'---------------------------------------------------

MichD
------------------------------------------
"Fredo(67)"  a écrit dans le message de groupe de discussion :


Opps désolé pour les multi message, ma session avait expiré.

Oui, Michdenis, ce serait une bonne solution, mais je ne peux
malheureusement pas éclater en plusieurs feuilles.

j'ai l'obligation de tout concerver sur une seule feuille.
LSteph
Le #24335761
Bonjour,

Absolument pas .. >éclater en plusieurs feuilles.

Le principe de "titres à répèter" ou définition d'un nom:
Impression_des_titres

te permet de répéter le titre< sur chaque page d'impression et n'éclate en
rien le document lui même.


Cordialement

--
LSteph

"Fredo(67)" news:
Opps désolé pour les multi message, ma session avait expiré.

Oui, Michdenis, ce serait une bonne solution, mais je ne peux
malheureusement pas éclater en plusieurs feuilles.

j'ai l'obligation de tout concerver sur une seule feuille.
Publicité
Poster une réponse
Anonyme