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 :

Publipostage et macro sous excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut Publipostage et macro sous excel
    Bonjour,

    Ce code que j'ai récupéré et essayé d'adapter ne fonctionne pas.
    J'ai une feuille sur laquelle figure des données que je filtre au moyen de filtres automatiques Feuille 8 appelée TriBDD
    J'ai réalisé sous word une feuille d'étiquettes appelée ETIQUETTES
    Lors du déclenchement de cette macro un message d'erreur il ne trouve pas la base TriBDD
    C'est le problème
    Cordialement

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Private Sub commandButton1_Click()
        'Nécessite d'activer la référence "Microsoft Word xx.x Object Library"
        Dim docWord As Word.Document
        Dim appWord As Word.Application
        Dim NomBase As String
     
        NomBase = "TriBDD"
     
        Application.ScreenUpdating = False
        Set appWord = New Word.Application
        appWord.Visible = True
        'Ouverture du document principal Word
        Set docWord = appWord.Documents.Open("C:\Mes documents (A utiliser)\Dossier Excel\ETIQUETTES.doc")
     
        'fonctionnalité de publipostage pour le document spécifié
        With docWord.mailMerge
            'Ouvre la base de données
            .OpenDataSource Name:=NomBase, _
                Connection:="Driver={Microsoft Excel Driver (*.xls)};" & _
                "DBQ=" & NomBase & "; ReadOnly=True;", _
                SQLStatement:="SELECT * FROM [Feuil8$]"
            'Spécifie la fusion vers l'imprimante
            .Destination = wdSendToPrinter
            .suppressBlankLines = True
                'Prend en compte l'ensemble des enregistrements
                With .DataSource
                    .firstRecord = wdDefaultFirstRecord
                    .lastRecord = wdDefaultLastRecord
                End With
            'Exécute l'opération de publipostage
            .Execute Pause:=False
        End With
     
        Application.ScreenUpdating = True
     
        'Fermeture du document Word
        docWord.Close False
        appWord.Quit
    End Sub

  2. #2
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut,à mon avis il s'agit d'une plage nommée
    sinon voir http://silkyroad.developpez.com/Exce...tageWordExcel/

  3. #3
    Membre averti
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut Publipostage et macro sous excel
    Oui, peut-être mais cela ne m'arrange pas. En effet, je travaille sur les 65500 lignes de la feuille puis je filtre automatique, cela me fait un résultat d'environ 200 lignes.
    Manuellement la fusion après filtre s'effectue sur la totalité, comment faire pour étiqueter que les lignes en visu. Ou alors comment copier ces lignes en question et les transférer sur une feuille vierge. Il faudrait que je puisse identifier la dernière ligne remplie.
    Cordialement

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re,as-tu seulemnt essayé de copier cette zone , car seules les valeurs après filtrage seront copiées, l'enregistreur de macros devrait suffire

  5. #5
    Membre averti
    Inscrit en
    Février 2011
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 26
    Par défaut Publipostage et macro sous excel
    Oui, la copie fonctionne sur une autre feuille. Ce que je voudrais automatiser, c'est après le filtre automatique, fusionner au moyen du code ci-dessus ou alors insérer dans ce code :
    chercher la dernière ligne filtrée du tableau, copier dans une autre feuille et fusionner pour les étiquettes. J'ajoute que si je copie je voudrais nommer la feuille et le tableau en question pour une impression éventuelle
    Cordialement

  6. #6
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Re,voir le lien donné plus haut, l'enregistreur de macros et l'aide en ligne devraient te suffire
    pour aboutir à qqch comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
     
    Sub Tst()
    Dim PlageFiltree As Range
     
        Feuil2.Cells.Clear
        Feuil1.Activate
        Set PlageFiltree = ActiveCell.CurrentRegion.SpecialCells(xlCellTypeVisible)
        PlageFiltree.Copy Feuil2.Range("A1")
     
        Set PlageFiltree = Nothing
    End Sub

Discussions similaires

  1. probleme de lenteur lors de l'execution d'une macro sous excel
    Par smartbis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/05/2007, 08h49
  2. [VBA-E][débutant]aide pour macro sous excel
    Par julyBL dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 09/06/2006, 22h42
  3. Activation des macros sous Excel
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/10/2005, 11h44
  4. macro sous excel
    Par julien13200 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/02/2005, 15h49

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