IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Macro pour insérer des sauts de page selon critère


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Macro pour insérer des sauts de page selon critère
    Bonjour,

    Je cherche a creer une macro qui me permettrait de placer la ligne bleue en mode page break preview directement sous la cellule contenant le mois actuel.

    Voici le code aue j ai ecrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Function today() As Date
    Dim i As Integer
    Dim X As Integer
    Dim Y As Range
     
    Y = Y + 1
     
    X = DatePart("m", today())
     
    For i = 1 To 2000
    While Range("A" & i) <> X
    Do: Set ActiveSheet.HPageBreaks(1).Location = Y + 1
    Mais cela ne fonctionne pas.
    Quelqu un pourrait il m aider.
    Merci d avance
    Tibo

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Humm, bizarre ton code ; tu additionnes des objets Range !!!

    Es-tu certain de vouloir extraire le mois de la fonction elle-même (récursivité) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = DatePart("m", today())
    Soit un peu plus clair sur ce que contient ta feuille, qu'est censée chercher ta fonction etc...

    Argy

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2009
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Page brak preview
    La colonne A contient les dates jour par jour de l'année en cours. (1er janvier, 2janvier...)

    Au début de chaque mois, une case est gardée pour n'afficher que le nom du mois qui débute. Cela donne ceci
    30 janvier
    31 janvier
    Février
    1er février
    2 février...

    La page excell est assez importante et je dois tout le temps déplacer la ligne bleue pour que la version imprimée soit présentable.

    Je souhaite donc créer une macro qui me place automatiquement la ligne bleue horizontale sous la cellule contenant le mois en cours.

    J'espère avoir été assez clair

    Merci d'avance

    thibault

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Si ta colonne ne contient que des noms de mois (sans espaces) pour les ruptures et que les autres cellules contiennent des dates (pas de 1er février au lieu 1-fevr) alors cette procédure doit répondre à ta demande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Sub InsertHPageBreak()
        Dim oMonthRange                          As Range
        Dim oDateCell                            As Range
        Dim strCurrentMonthName                  As String
        Dim lngRowIndex                          As Long
        Dim lngRowCount                          As Long
     
        Cells(1, 1).Select
        Set oMonthRange = Range(Cells(1, 1), Cells(ActiveCell.End(xlDown).Row, 1))
        For Each oDateCell In oMonthRange
            If Not IsDate(oMonthRange.Value) Then
                If Val(oDateCell) = 0 Then
                    strCurrentMonthName = MonthName(Month(oDateCell.Offset(1, 0).Value))
                    If StrComp(LCase$(strCurrentMonthName), LCase$(oDateCell), vbTextCompare) = 0 Then
                        lngRowCount = lngRowCount + 1
                        If lngRowCount >= 1026 Then Exit Sub
                        lngRowIndex = oDateCell.Row
                        ActiveWindow.SelectedSheets.HPageBreaks.Add Before:=oDateCell
                    End If
                End If
            End If
        Next
        Set oMonthRange = Nothing
    End Sub
    Est-ce que cela corrrespond à celle-ci ?


    Argy
    Images attachées Images attachées  

Discussions similaires

  1. Insérer des sauts de pages à la fin de chaque page
    Par slachromana dans le forum VBA Word
    Réponses: 1
    Dernier message: 14/12/2012, 11h29
  2. Macro pour supprimer des sauts de page vide word 2007
    Par Sandrine1 dans le forum VBA Word
    Réponses: 6
    Dernier message: 09/11/2010, 21h38
  3. Réponses: 2
    Dernier message: 25/09/2009, 12h03
  4. Réponses: 6
    Dernier message: 28/01/2009, 13h32
  5. [VBA-PP] macro pour insérer des images dans PowerPoint
    Par mashpro dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 01/08/2006, 22h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo