Boucle et collage sur pages différentes

[Résolu]
Signaler
Messages postés
7
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
16 mars 2009
-
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
-
Bonjour,

à la suite d'une boucle imbriquée du type de celle-ci:

If Sheets("menu2").Cells(Ligmenu, 3).Value <> "" Then
        If Sheets("menu2").Cells(Ligmenu, 4).Value <> "" Then
                    Sheets("editdf").Activate ' feuille de destination
            Col = "F"                 ' colonne de la donnée non vide à tester
            NumLig = Sheets("editdf").Range("A65536").End(xlUp).Row
            With Sheets("editcompl")     ' feuille source
            NbrLig = .Cells(65536, Col).End(xlUp).Row
            For Lig = 2 To NbrLig
                If .Cells(Lig, Col).Value = "DF1" Then
                .Rows(Lig).Copy
                NumLig = NumLig + 1
                Cells(NumLig, 1).Select
                ActiveSheet.Paste
                End If
            Next
            End With
        End If
je souhaiterais qu'à chaque passage, le collage se réalise sur une page différente du même onglet,
savez-vous ce qu'il faut indiquer dans le programme ?
merci

7 réponses

Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Oups, il faut lire

Sheets("editdf").Activate ' puis réactive la feuille editdf

au lieu de

.Activate                       ' puis réactive la feuille editdf

sinon, tu active la feuille editcompl, et c'est la cata.
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
re,

Dim w As Worksheet
Set w = Worksheets("pageDifferente")
If Sheets("menu2").Cells(Ligmenu, 3).Value <> "" Then
        If Sheets("menu2").Cells(Ligmenu, 4).Value <> "" Then
                Sheets("editdf").Activate ' feuille de destination
                Col = "F"                 ' colonne de la donnée non vide à tester
                NumLig = Sheets("editdf").Range("A65536").End(xlUp).Row
                With Sheets("editcompl")     ' feuille source
                    NbrLig = .Cells(65536, Col).End(xlUp).Row
                    Application.ScreenUpdating = False    ' "déconnecte" l'écran
                    For Lig = 2 To NbrLig
                        If .Cells(Lig, Col).Value = "DF1" Then
                            .Rows(Lig).Copy
                            NumLig = NumLig + 1
                            Cells(NumLig, 1).Select
                            ActiveSheet.Paste
                            w.Activate                                  ' active "une page différente",
                            w.Cells(numLig, 1).Select          ' sélectionne une ligne,
                            w.Paste                                      ' colle la sélection,
                           .Activate                                      ' puis réactive la feuille editdf
                        End If
                    Next
                    Application.ScreenUpdating = True   ' "reconnecte" l'écran
                End With
        End If
End If

PS : je n'ai pas vu la boucle imbriquée. Sans doute ma vue qui baisse ...

Amicalement
Messages postés
7
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
16 mars 2009

Salut Orohena,
merci pour ta réponse, je n'ai pas encore réussi à la faire tourner mais je cherhe.
Je pense que je me suis mal fait comprendre. Je ne cherche pas à coller les informations choisies dans une feuille différente à chaque fois (les collages sont faits dans la feuille "editdf" à la suite les uns des autres).
Ce que je souhaite c'est que chacun des collages soient réalisés en début d'une nouvelle page (après un saut de page en fait) mais je ne parviens pas à le formuler dans le code.
merci de ton aide
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Bonjour jodeciters


Ton explication était claire, c'est moi qui ai mal interprété. Je regarde et je te recontacte.
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
Dans ton code, pourrais-tu insérer ActiveSheet.HPageBreaks.Add Before:=ActiveCell juste après le collage ?
Messages postés
7
Date d'inscription
vendredi 26 décembre 2008
Statut
Membre
Dernière intervention
16 mars 2009

Effectivement la ligne permet de passer d'une page à l'autre,
pour l'instant les sauts de pages ne se font pas où je souhaite, il faut que je cherche un peu... Mais ça devrait le faire.
merci, c'est sympa de ne pas se sentir seul quand on commence à aligner les heures et que le code n'avance pas!
Messages postés
577
Date d'inscription
vendredi 26 septembre 2008
Statut
Membre
Dernière intervention
20 novembre 2010
4
ne pas se sentir seul quand on commence à aligner les heures et que le code n'avance pas : c'est la définition de ce forum