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 :

Excel macros vba


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut Excel macros vba
    Bonjour à tous, je ne suis pas développeur (connait pas trop ecxel ni vba)et je viens d'ertre engagez lundi donc meme si c'est pas mon job j'aurais voulu quand même leur remetre un resultat..enfin bref... voila le probleme

    Projet :

    Sur base d’un tableau Excel reprenant certaines données, il faudrait créer une macro qui serait en lien avec celui-ci.

    1- Pour la colonne date -> faire en sorte que la date du jour apparaisse directement.
    2- Lorsqu’on encodera le numéro de registre national, différentes données (qui se trouvent dans le tableau Excel de référence) doivent apparaître directement :
    a. Nom
    b. Prénom
    c. Adresse
    d. Téléphone / GSM
    e. Centrale professionnelle

    Date Registre National Nom Prénom Adresse Tél. Centrale Profes.

    3- Au niveau de l’impression -> faire en sorte que les différentes données (Code barre, Numéro de registre national, Nom, Prénom, Adresse, Tél./GSM, Centrale professionnelle) s’impriment sur une fiche d’identification

    4- Pour chaque Numéro de registre national, il faudrait créer un code barre. En effet, lorsqu’on va recevoir nos affiliés, on va scanner ce code barre ce qui nous permettra de gagner du temps.

    Merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    68
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 68
    Par défaut fonction de recherche
    tu devrais regarder du côté des fonctions Excel
    1) affichage date dans ta cellule
    2)affichage auto des données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(tavaleurrecherchée;tatablematrice;n°decolonedelavaleuràafficher;vrai(proche)oufaux(exact))
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =RECHERCHEV(a1;a1:a100;5;faux)

    3)qu'appelle tu fiche d'identification?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Voila un exemplaire de fiche


    NISS :

    NOM :
    Prénom :
    Adresse :


    Tél :
    Centrale profes. :

    Dates contrats : ____________

    ____________


    Dates présentation : ____________

    ____________

    ____________

    ____________

    ____________

    ____________




    Ps: pour le point 4 (code barre) c'est ok

  4. #4
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    Bonjour,

    En fait il faut que tu réalise un publipostage pour ta feuille d'identification. Mais attention tu dois réaliser la base de données ( pour ton publipostage ) sur un autre fichier excel ou créer la macro à partir de word vers excel.

    Voici un petit exemple de code pour publiposter à partir d'un fichier excel :
    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
     
    Dim appWord As Word.Application
    Dim docWord As Word.Document
     
    Set appWord = CreateObject("Word.Application")
    appWord.Visible = True
     
    Set docWord = appWord.Documents.Open("L:\Accounting\Expense Report\Expense Summary.doc")
     
    docWord.MailMerge.OpenDataSource Name:="L:\Accounting\Expense Report\Expense Mailing.xls", _
    SQLStatement:="SELECT * FROM [Publipostage$] WHERE  Total <> 0", _
    SubType:=wdMergeSubTypeWord2003
     
        With docWord.MailMerge
            .Destination = wdSendToPrinter
     
            .SuppressBlankLines = True
     
        'fusion et selection
     
            With .DataSource
               .FirstRecord = wdDefaultFirstRecord
               .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=False
     
        End With
     
     docWord.Close
    PS : Si tu débute en programmation utilise la fonction d'enregistrement de macro! il n'y a pas mieux pour apprendre à se servir de VBA

    Bonne Journée

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Merci, je vais déja essayer de me débrouiller avec ça.
    mais pour tout dire je connais rien en prog en tout cas pas beaucoup se suis plus sur les réseaux( ingénieur système).

  6. #6
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    N'hésites pas à reposter si tu as des petits soucis
    je ferais mon possible pour t'aider

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    voila reste plus que l'impression, et me familliariser avec le publipostage

    Merci à vous.

  8. #8
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    POur l'impression c'est fait automatiquement donc pas de soucis c'est dans le code du publipostage. Te reste plus qu'a adapter le code du publipostage et ca devrai être bon pour toi^^

    Cette partie pour etre exact^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With docWord.MailMerge
            .Destination = wdSendToPrinter
     
            .SuppressBlankLines = True

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Y-a-t'il moyen avec le plublipostage d'utiliser un fichier excel comme base de données(je ne peux utiliser que excel pour la base de données).

    Non ca va j'ai trouvé. encore merci.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Encore Merci Drost...
    Si j'ai bien compris le code de l'impression via word et le publipostage, ca va imprimer toutes les personnes de la base de données!...

    Ce pendant j'ai eu une nouvelle directive qui voudrait imprimer que une personne bien précise sélectioné par le registre national (champs que j'ai créé avec le publipostage).

    Je vais expliquer ce que j'ai déjà fait.

    on rentre le n° de registre national parcour le ficheir xls et les infos s'affichent si il existe. pas de problème à ce niveau là.
    et il faudrait que la personne trouvées (donc les infos) s'imprime mais que celle là.

    il y a surement une ligne de code qui fait une recherche (par publipostage) et selectionne cet enregistrement là.

  11. #11
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    Hello

    Je ne sais pas si c'est possible en programmation parce que j'ai contourné le probleme! En fait j'ai 2 fichiers xls, l'un avec ma base de données standard et l'autre ma base de donées pour le publipostage.
    J'ai alors créer une macro qui via un filtre selectionne par un critere (pour toi ca peut être le numéro de registre nationnale), les lignes de ma base de données standard que je copie/colle dans la base publipostage. Ainsi j'avais juste l'impression que je souhaitais et pas la totalité.

    En espérant que ca t'aide dans la réalisation de ton projet

    Tchuss

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Je pense que je suis dans le même cas que toi car le publipostage se fait à partir du fichier .xls

    Quand j'ouvre mon word il me demmande une fusion avec le fichier xls eb question....enfin je crois que ca se passe comme ca....car je connais pas trop office.

  13. #13
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    En fait ma macro est dans ma base de donée standard j'ouvre ma base de publipostage je colle les donnée que je veux utiliser, je ferme document, j'ouvre le document word puis ajoute ma base de publipostage en donnée source.
    Il te faudra modifier les chemins ainsi que ta requete SQL.

    PS: Fait attention que tu as bien activer les ressources Word ( Tools/references dans l'editeur VB)


    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
    Dim appWord As Word.Application
    Dim docWord As Word.Document
     
    Set appWord = CreateObject("Word.Application")
    appWord.Visible = True
     
    Set docWord = appWord.Documents.Open("R:\Expense\Expense Summary.doc")
     
    docWord.MailMerge.OpenDataSource Name:="R:\Expense\Expense Mailing.xls", _
    SQLStatement:="SELECT * FROM [Publipostage$] WHERE  Total <> 0", _
    SubType:=wdMergeSubTypeWord2003
     
        With docWord.MailMerge
            .Destination = wdSendToPrinter
     
            .SuppressBlankLines = True
     
        'fusion et selection
     
            With .DataSource
               .FirstRecord = wdDefaultFirstRecord
               .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=False
     
        End With
     
     docWord.Close
     Word.Application.Quit

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Désolé pour le retard mais merci Drost.

    Je me suis un peu compliqué la vie avec ce projet--> nouvelles directives:

    Simplement sur la 3ieme feuille de excel j'ai fait la mise en page demandée.
    donc en activant ma macro (ctrl+i) j'envoie les données sur la 3ieme feuille,
    mais je voudrais qu'en plus d'envoyer les données cette meme feuille s'imprime(sur l'imprimantepar defaut--> comme si on faisaitfichier, imprimer,...)

    J'ai essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With Sheets("Feuil3").Select
            .Destination = wdSendToPrinter
     
            .SuppressBlankLines = True
     
    End With
    mais ca n'a pas l'air de marcher

    Merci d'avance.


    Ps: si je peux vous aider dans mon domaine(résaux) je m'en ferai un plaisir

  15. #15
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    Salut Zagat!

    J'espère que tu avances bien dans ton projet, le code que je t'ai donné permet d'imprimer dans un publipostage.

    Pour imprimer une feuille voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    Bonne Continuation

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    oui ca va tres bien le projet j'ai encore une semaine pour insérer la ligne de code. lol

    Si j'ai plusieur imprimante: c'est printout 3 ?
    si je veux utiliser la 3ieme imprimante de la liste de selection c'est ca?
    ou alors mettre le nom de l'imprimante derrière Printout?

  17. #17
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    Nan la cela t'imprimera 1 copie sur l'imprimante par defaut.

    Je n'ai jamais eu à imprimer sur des imprimantes différentes... Je regarde cela et je te dis si cela est possible

  18. #18
    Membre expérimenté Avatar de Drost
    Profil pro
    Inscrit en
    Août 2007
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2007
    Messages : 192
    Par défaut
    voici le code pour changer d'imprimante par defaut :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ActivePrinter = "\\Aragorn\GEPRT_ACCOUNT on Ne02:"
    Tu n'aura qu'a changer le chemin de l'imprimante !

    PS: Je l'ai trouver en passant par l'enregistreur de macro^^ donc tu aurais pu le trouver tout seul! (même si ca ne me derange pad de t'aider ! )

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 10
    Par défaut
    Désolé pour le travail ue je te fais aire. mais merci pour tout
    ca marche

Discussions similaires

  1. [XL-2003] Problème de conversion formule excel -> Macro VBA
    Par bedrohung dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/04/2010, 18h53
  2. Envoi de mail via un macro vba sur excel
    Par momolamoto dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 30/12/2005, 18h51
  3. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 17h23
  4. Graphe et Macro et Excel et VBA
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 18/11/2005, 17h24
  5. probleme de selection aleatoire sur excel avec macro vba
    Par guillaume sors dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/10/2005, 10h51

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