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 :

Problème Dans boucle pour impression + nb de pages à imprimer


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Problème Dans boucle pour impression + nb de pages à imprimer
    Bonjour,

    J'essaye de tourner la boucle dans tous les sens, mais là j'apelle à votre aide sur le sujet. voici le code. L'objectif est d'imprimer une feuille excel en fonction d'une liste déroulante et d'en plus de définir le nombre de pages à imprimer:
    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
    26
    27
    28
    29
     
    Sub impression()
    '
    ' impression Macro
    '
     
    Dim c As Variant
    Dim NBCOP As Long
    Dim LISTE As Range
     
     
    Set LISTE = Worksheets("LISTE").Range("O14:O18")
     
    Worksheets("LISTE").Select
    Range("O4").Select
    Do While (ActiveCell.Value) > 0
        c = ActiveCell.Value
        NBCOP = ActiveCell.Offset(0, 1).Value
        Worksheets("RANK").Select
        Range("D2").Select
        For Each c In LISTE
        Range("D2") = c
        Call AFFICHERPH
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=NBCOP, Copies:=1, Collate _
            :=True, IgnorePrintAreas:=False
     
        Next c
    Loop
    End Sub
    Merci beaucoup pour votre aide
    Rico

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 653
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 653
    Points : 34 370
    Points
    34 370
    Par défaut
    Hello,

    en lisant ton code, on ne sait pas exactement ce qui te pose problème ici

    Tu as des erreurs ? Ca n'imprime rien ? Ca n'imprime pas ce que tu veux ?

    il nous en faut plus pour qu'on sache quoi chercher en priorité

  3. #3
    Membre à l'essai
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Points : 13
    Points
    13
    Par défaut Précisions
    Merci pour la réponse, en effet c'est pas claire, le décomposer va peut être m'aider aussi

    les boucles ne fonctionnes pas correctement j'ai fait différentes versions:
    voici la procédure en language français il s'agit d'une boucle dans la boucle que je n'arrive pas à faire (je suppose) :

    Une boucle récupére les données de plage de cellule ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("LISTE").Range("O4:O18")
    La boucle :
    ' je me positionne sur la cellule O14
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Worksheets("LISTE").Select
    Range("O4").Select
    Do While (ActiveCell.Value) > 0
        c = ActiveCell.Value
        NBCOP = ActiveCell.Offset(0, 1).Value
    ' C correspond à chaque cellule de la plage Liste soit une chaine de caractère
    ' NB COP correspond au nombre de pages à imprimer situé donc à droite de la plage liste, que je déduis avec offset (0,1)

    Ensuite, je retourne sur mon autre onglet où j'ai ma liste déroulante et ma feuille à imprimer et j'essaye d'activer une autre boucle pour chaque donnée dans la cellule D2 là où se situe la liste déroulante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    worksheets ("Rank").select
    with Worksheets("Rank")
        
    For Each c In LISTE
        Range("D2") = c    Call AFFICHERPH
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=NBCOP, Copies:=1, Collate _
            :=True, IgnorePrintAreas:=False
     
        Next c
        End with
    Soit ma macro ne tourne pas soit ça imprime juste la première ligne enfin bref je continue à chercher. Merci pour le coup de main

  4. #4
    Membre à l'essai
    Homme Profil pro
    Business Analyst
    Inscrit en
    Juillet 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Business Analyst
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Juillet 2012
    Messages : 31
    Points : 13
    Points
    13
    Par défaut IMPRESSION BOUCLE + MISE EN PAGE RESOLU
    Bonjour, je viens de trouver:
    Si ça peut servir pour certains voici le code:
    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
    26
    27
    28
    29
    30
    Sub impression()
     
    Dim v_prod As String
    Dim v_NBCOP As Long
    Dim v_compteur As Integer
    Dim v_co As Integer
     
     
    Worksheets("LISTE").Select 'se positionner sur l'onglet liste déroulante
    Range("O4").Select ' se positioner sur la 1ère cellule de liste déroulante
     
    Do While Len(ActiveCell.Value) > 1 'boucle pour récupérer les données
    v_prod = ActiveCell.Value
    v_NBCOP = ActiveCell.Offset(0, 1).Value ' valeur insicrite sur une plage pour définir le nb de pages à imprimer par catégories
    v_compteur = v_compteur + 1 'compteur
     
    Worksheets("RANK").Select
    Range("D2").Select
        For v_co = 1 To v_compteur
            ActiveCell.Value = v_prod
            ActiveCell.Offset(0, 1).Value = v_NBCOP
            Call AFFICHERPH
            ActiveWindow.SelectedSheets.PrintOut From:=Range("E2"), To:=1, copies:=1, Collate _
                :=True, IgnorePrintAreas:=False
            Exit For
        Next v_co
    Worksheets("LISTE").Select
    ActiveCell.Offset(1, 0).Activate
    Loop
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de boucle pour localconnect
    Par finalfx dans le forum Flash
    Réponses: 1
    Dernier message: 27/05/2007, 15h15
  2. [GD] Problème de boucle pour redimensionner plusieurs images ...
    Par jimmyneutron dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 10/04/2007, 17h46
  3. [Smarty] Problème de header pour une redirection de page
    Par soda_o_rat dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 16/08/2006, 09h58
  4. problème dans boucle for de lecture de fichier ini
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 06/07/2006, 09h31
  5. Réponses: 3
    Dernier message: 11/01/2006, 17h44

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