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 lecture de cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut publipostage lecture de cellule
    Bonjour,

    je cherche à lire le contenu de ma base de donnée BDD dans un autre fichier excel.
    je voudrais comparer la valeur d'une cellule de ma BDD à une valeur tablo passer en argument dans le publipostage.
    Et retenir au final que les lignes présentes dans le tablo :
    - je ne sais pas si c'est clair ?
    - et si c'est possible ?



    Pour le moment ça ne marche pas , je dois mal m'y prendre.
    le bout de code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    With MonDoc.MailMerge
            .Destination = wdSendToPrinter
            .SuppressBlankLines = True
            With .DataSource
            For i = 1 To nbr
            If tablo(i) = .Cells(i + 1, 7).Value Then
                .FirstRecord = i
                .LastRecord = i
            End If
            End With
            .Execute Pause:=False
        End With

  2. #2
    Membre chevronné
    Homme Profil pro
    Formateur bureautique
    Inscrit en
    Janvier 2021
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2021
    Messages : 302
    Par défaut Astuce
    Bonjour
    pour faire ceci, en général, j'utilise plutôt l'astuce suivante :
    dans le fichier 2, au bout de mes données, je rajoute une colonne avec un SI dedans. (ex : si l'info est présente dans le fichier 1 et dans le fichier 2 alors mettre X sinon rien)
    du coup dans mon publipostage, je règle la macro Word sur la fusion des données seulement où il y a un X dedans

    en espérant que ca puisse être applicable ici

  3. #3
    Membre éclairé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juin 2016
    Messages
    306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Juin 2016
    Messages : 306
    Par défaut provisoire
    bonjour Fab_de_chez_PERFORM

    j'arrive à faire ce que vous dites. J'ai ajouté à ma base de donnée, une colonne appelée "Impression". J'y mets une croix ("X")
    voici donc la modif pour que cela fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=adress;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";J" _
            , SQLStatement:="SELECT * FROM `'Trame BDD$'`WHERE `Impression` = 'X'", SQLStatement1:="", _
            SubType:=wdMergeSubTypeAccess
        With MonDoc.MailMerge
            .Destination = wdSendToPrinter
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = 1
                .LastRecord = 14
            End With
            .Execute Pause:=False
        End With
    Je pensais qu'on pouvait lire les cellules de la base de donnée BDD. Je ne trouve pas d'articles en ce sens.

    Si QQun sait ?

  4. #4
    Membre chevronné
    Homme Profil pro
    Formateur bureautique
    Inscrit en
    Janvier 2021
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Formateur bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2021
    Messages : 302
    Par défaut Aide
    Salut
    voici le code que je mets dans WORD
    j'ai mis 4 dim au début pour aider à se repérer


    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
    Dim Ma_source As String
    Ma_source = "C:\Users\-----\Desktop\a jeter.xlsx" 'chemin complet du fichier source
     
    Dim Ma_feuille As String
    Ma_feuille = "Feuil1$" 'le nom de la feuille suivi d'un $
     
    Dim Mon_nom_de_colonne As String
    Mon_nom_de_colonne = "DEF" 'Le nom de ma colonne
     
    Dim Mon_critère As String
    Mon_critère = "X" 'le caractère que j'ai mis dans la colonne et qui va me permettre de filtrer
    '
        ActiveDocument.MailMerge.OpenDataSource Name:=Ma_source, _
            ConfirmConversions:=False, _
            ReadOnly:=False, _
            LinkToSource:=True, _
            AddToRecentFiles:=False, _
            PasswordDocument:="", _
            PasswordTemplate:="", _
            WritePasswordDocument:="", _
            WritePasswordTemplate:="", _
            Revert:=False, _
            Format:=wdOpenFormatAuto, _
            Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=" & Ma_source & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=37;Jet OLEDB:Database Lockin", _
            SQLStatement:="SELECT * FROM `" & Ma_feuille & "`WHERE `" & Mon_nom_de_colonne & "` = '" & Mon_critère & "'", _
            SQLStatement1:="", _
            SubType:=wdMergeSubTypeAccess
    End Sub
    En bas, à ce niveau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SQLStatement:="SELECT * FROM `" & Ma_feuille & "`WHERE `" & Mon_nom_de_colonne & "` = '" & Mon_critère & "'"
    comme on cherche du texte dans mon exemple, il faut rajouter des ' autour du Mon_critère

Discussions similaires

  1. Lecture commentaire cellule dans feuille Excel
    Par franckMenant dans le forum API, COM et SDKs
    Réponses: 15
    Dernier message: 28/04/2011, 11h06
  2. Lecture de cellules excel lente
    Par zlink17 dans le forum VB.NET
    Réponses: 0
    Dernier message: 26/05/2010, 14h50
  3. POI, Excel et lecture de cellules fusionnées
    Par tomy29 dans le forum Documents
    Réponses: 0
    Dernier message: 20/10/2009, 15h58
  4. [POI]Problème de lecture des cellules vides
    Par ng.phung dans le forum Documents
    Réponses: 1
    Dernier message: 02/05/2007, 14h45
  5. Problème de lecture des cellules dans une feuille Excel
    Par wangjun dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/10/2006, 09h35

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