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 :

For Each avec un Step, possible?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Responsable restauration et hôtellerie (clinique)
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable restauration et hôtellerie (clinique)
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Par défaut For Each avec un Step, possible?
    Bonjour,

    Tout est dans le titre. J'aimerai savoir s'il est possible d'utiliser le For Each loop en utilisant un step.

    Actuellement j'utilise ce 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
    Sub impression_selective()
    Application.ScreenUpdating = False
     
    For Each c In Range("AB14", "AB100")
        If c.Value <> "" And c.Offset(1, 0).Value <> Range("R12").Value Then
            If c.Offset(0, -2).Value <> "" Then
            Range("F11").Value = c.Offset(0, 1).Value
            Range("F12").Value = c.Value
            ActiveSheet.PrintOut
            End If
            End If
         If c.Value <> "" And c.Offset(1, 0).Value = "" Then Application.ScreenUpdating = True: Exit Sub
        Next c
        Application.ScreenUpdating = True
     
    End Sub
    Qui me permet d'imprimer une série de document en changeant l'intitulé de chaque document en fonction d'une liste d'intitulé.

    Je change le format d'impression et maintenant sur une feuille imprimée j'imprime deux intitulés de la liste précédemment citée.

    J'aurais donc voulu modifier mon code avec quelque chose comme ça, pour qu'à la prochaine itération, la feuille soit imprimée avec deux nouveaux intitulés au lieu de reprendre un intitulé imprimé précédemment.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each c In Range("AB14", "AB100") step 2
    Cela ne fonctionne évidemment pas, et c'est pour ça que j'ai besoin de votre aide. Une idée géniale pour me dépanner?

    Merci infiniment d'avance

  2. #2
    Membre émérite
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Par défaut
    Bonjour,

    A ma connaissance, impossible de faire ce vous demandez tel que vous souhaitez.
    Mais vous pourriez procéder comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub impression_selective()
    Application.ScreenUpdating = False
    For c = 14 To 100 Step 2
        Set Rng = Range("AB" & c)
        If Rng.Value <> "" And Rng.Offset(1, 0).Value <> Range("R12").Value Then
            If Rng.Offset(0, -2).Value <> "" Then
                Range("F11").Value = Rng.Offset(0, 1).Value
                Range("F12").Value = Rng.Value
                ActiveSheet.PrintOut
            End If
            If Rng.Value <> "" And Rng.Offset(1, 0).Value = "" Then Application.ScreenUpdating = True: Exit Sub
    Next c
    Application.ScreenUpdating = True
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Responsable restauration et hôtellerie (clinique)
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable restauration et hôtellerie (clinique)
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Par défaut
    Bonjour,

    Tout d'abord merci pour votre retour et désolé de ne pas avoir pu répondre plutôt, je fais passer quelques entretiens toute la journée et je n'ai pas eu le temps de revenir à mon problème.

    Super! Votre solution fonctionne au poil! Mais il y a un mais

    J'ai 22 intitulés dans mon range "AB14:AB:100", comme j'en imprime 2 par feuille je devrai avoir 11 feuilles d'imprimées mais le code s'arrête à 10 feuilles..

    Je continue de chercher en me penchant sur votre piste.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Juste après le For To, mets cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Debug.Print "c = " ; c ; " - Rng = " ; Rng.Address ; " - Value = " ; Rng.Value ; " - Offset(1,0) = " ; Rng.Offset(1, 0).Value ; " - R12 = " ; Range("R12").Value ; " - Offset(0, -2) = " ; Rng.Offset(0, -2).Value
    Comme ça tu verras dans la fenêtre d'exécution, pour chaque tour de boucle, quelles sont les valeurs qui agissent sur les tests et où se déclenche le Exit Sub.

Discussions similaires

  1. xsl:for-each avec un parametre pour select
    Par arnog dans le forum XSL/XSLT/XPATH
    Réponses: 7
    Dernier message: 26/08/2008, 13h09
  2. [XSL] For each avec variables imbriquées
    Par Wells dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 13/05/2008, 19h28
  3. for-each avec select dans un node-set
    Par krapno dans le forum XSL/XSLT/XPATH
    Réponses: 24
    Dernier message: 13/07/2007, 16h48
  4. [XSLT] Croiser plusieurs xsl:for-each avec deux documents XML
    Par strat0 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/06/2007, 16h10
  5. [vb.net] For Each .. avec condition
    Par arnolem dans le forum Windows Forms
    Réponses: 8
    Dernier message: 07/12/2005, 09h18

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