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 :

Lettres Publipostage avec Excel [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut Lettres Publipostage avec Excel
    Bonjour
    Pour banir toutes les explications du Publipostage Word à mes collègues avec un fichier source de données Excel (pas facile pour tous), j'essaie de finaliser mon projet de mon classeur Excel par l'envoie de lettres automatisées, le tout sans sortir du classeur en cours.
    J'ai donc un onglet "Récap trimestre 1" avec les données sources avec un nombre de lignes variable, et un onglet "Lettre".
    J'ai fait le code qui fonctionne pour 1 lettre en prenant les données sous la ligne des titres.
    Je cherche que le code se répète autant de fois qu'il y a des lignes dans mon onglet "Récap trimestre 1", en partant du bas et en remontant, à chaque ligne copie (A? : P?), le colle toujours en (A20) de l'onglet "Lettre", et imprime, etc...
    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Module05()
     
     Sheets("Récap trimestre 1").Range("A2:P2").Copy
        Sheets("Lettre").Select
        Range("A20").Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
    Sheets("Lettre").PrintOut
    Sheets("Récap trimestre 1").Select

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut ,

    qqchose du genre (je n'ai pas testé désolé).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      With Sheets("Récap trimestre 1")
      For Idx = .UsedRange.Rows.Count To 2 step - 1
             .range("A" & idx & ":P" & idx).copy
        Sheets("Lettre").Range("A20").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
       Sheets("Lettre").PrintOut 
      next idx
    end with
    L'usage des select est a éviter autant que possible !

    Il manque le code pour Nettoyer le clipboard (ne pas mémoriser les ;copy), mais je ne retombe pas dessus.

    Et j'espère que c'est toujours aussi chouette au pied du mont Blanc !

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Peut être avec ceci ? (testé qu'avec PrintPreview) :
    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
     
    Sub Module05()
     
        Dim Ligne As Range
        Dim I As Integer
     
        With Sheets("Récap trimestre 1")
     
            For I = .Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
     
                Set Ligne = .Range(.Cells(I, 1), .Cells(I, 16))
     
                Ligne.Copy Sheets("Lettre").[A20]
                Sheets("Lettre").PrintOut
     
            Next I
     
        End With
     
    End Sub
    Hervé.

  4. #4
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Bonjour Godzesta
    Je viens d'essayer ton code, en définissant la variable par Dim idx As Integer, c'est le top, tout fonctionne.
    Le Mont-Blanc reste un panorama magnifique, et on ne se lasse jamais de le voir avec un contraste certains jours qui nous fait dire avec mon épouse "t'as vu le Mont-Blanc comme il est beau" c'est du grandiose comme un peu quand tu me donnes une boucle qui m'émerveille comme un gamin.

    Bonjour Theze
    Ton code aussi fonctionne au poil, c'est parfait comme à ton habitude, je découvre un Theze qui monte en puissance sur ce forum et j'aime beaucoup lire des lignes de code qui sont souvent bien expliquées.

    Ce publipostage Excel me ravi pour sa simplicité d'exécution au plus grand nombre de mes collègues.

    En tout cas un grand MERCI à tous les deux, Merci pour votre passion et pour votre maitrise dans ce domaine, il ne me reste plus qu'à vous encourager par mes votes les plus nombreux possibles dès que je vous retrouve.

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

Discussions similaires

  1. [WD-2010] Publipostage avec Excel en VBA
    Par Sydde dans le forum Word
    Réponses: 0
    Dernier message: 04/06/2015, 08h28
  2. [WD-2010] publipostage avec Excel
    Par Clairot dans le forum VBA Word
    Réponses: 0
    Dernier message: 15/04/2014, 16h34
  3. Publipostage avec Excel /
    Par yaya2637 dans le forum Word
    Réponses: 3
    Dernier message: 12/01/2009, 10h37
  4. Publipostage avec Excel
    Par Flaguette dans le forum Word
    Réponses: 1
    Dernier message: 29/08/2007, 22h43
  5. publipostage avec excel
    Par fa310428 dans le forum Excel
    Réponses: 4
    Dernier message: 06/04/2007, 18h28

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