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 :

Imprimer sur enveloppe le nom d'un client [XL-2013]


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
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut Imprimer sur enveloppe le nom d'un client
    Bonjour à tous et à toutes !

    Je suis débutant pour ne pas dire "ultra novice" en programmation VB mais j'essaye tant bien que mal de me débrouiller pour faire une maccro qui fonctionne. Actuellement je suis bloqué sur la position et le dispositionnent de l'adresse sur l'enveloppe ( C6 : 11,4cm x 16,2cm).

    Tout d'abord, j'ai créer un fichier excel tout simple avec le nom de mes clients ainsi que leur adresse de cette façon:

    A B C D E F G

    1 Mr NOM Prénom Code Postal N° addr Adresse COMMUNE
    2 Mme NOM Prénom Code Postal N° addr Adresse COMMUNE

    Lorsque le clique sur la ligne d'un client, une nouvelle page s'ouvre et me dispositionne correctement les informations du client pour être imprimé sur une enveloppe.


    Mr NOM Prénom
    N° Adresse
    CP COMMUNE
    Mon problème est que sur l'exemple que j'ai pris "NOM" a 3 lettres, "Prénom" a 6 lettres .... Mais lorsqu'un client a un Nom de famille et un Prénom beaucoup plus long, la case dans la quel j'écris cette valeur n'est pas assez grande et on ne voit donc pas la totalité du Nom. Et si au contraire, j'agrandis la case par rapport au nom le plus grand que j'ai, lorsque je sélectionne un client avec un plus petit nom, l'adresse ressemble à ça:

    MR NOM [......espace.......] Prénom
    N° Adresse
    CP COMMUNE

    Il est possible que mes informations ne soit pas assez clair, n'hésitez pas a demander.

    Voici un bout de code que j'ai commencé grâce a la fonction "enregistrement d'une maccro" ^^

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Sub Selectionne()
     
    'Selection du client
        ActiveCell.EntireRow.Select
     
    'Copie du client sur une nouvelle feuille
        Selection.Copy
        Sheets.Add After:=ActiveSheet
        ActiveSheet.Paste
     
    'Placement de chaque partie "Mr" "Nom" "Prénom" "Code Postal" "N° adresse" "Adresse" "Commune"
       Range("A1").Select
       Selection.Cut
       Range("D10").Select
       ActiveSheet.Paste
     
        Range("B1").Select
        Selection.Cut
        Range("E10").Select
        ActiveSheet.Paste
     
        Range("C1").Select
        Selection.Cut
        Range("F10").Select
        ActiveSheet.Paste
     
        Range("D1").Select
        Selection.Cut
        Range("D12").Select
        ActiveSheet.Paste
     
        Range("E1").Select
        Selection.Cut
        Range("D11").Select
        ActiveSheet.Paste
     
        Range("F1").Select
        Selection.Cut
        Range("E11").Select
        ActiveSheet.Paste
     
        Range("G1").Select
        Selection.Cut
        Range("E12").Select
        ActiveSheet.Paste
     
    'changement de la Taille d'écriture + Gras + centrage
       Range("D10,E10,F10").Select
       Selection.Font.Bold = True
        With Selection.Font
            .Name = "Calibri"
            .Size = 16
        End With
     
       Range("D11,E11,D12,E12").Select
       With Selection.Font
            .Name = "Calibri"
            .Size = 14
       End With
     
        Range("D10,D11,D12").Select
        With Selection
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlBottom
        End With
     
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Excel n'est pas, n'a jamais été et ne sera jamais un traitement de texte. Le publipostage de Word peut faire cela beaucoup plus facilement, tout en prenant ton fichier Excel comme source de données.

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir le forum, r4v3n, clementmarmotte,

    en plus de la réflexion de clementmarmotte, apprnds à mieux concevoir tes programmes, sans rien avoir à te proposer pour le moment, regardes ce que je te fais remarquer ci-dessous et adaptes pour tous tes futurs programmes, évites les "Select" qui alourdissent et peuvent ralentir l'éxecution de ceux-ci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    Range("A1").Select
       Selection.Cut
       Range("D10").Select
       ActiveSheet.Paste
    ...
    peut se traduire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ...
       Range("D10") = Range("A1")
       Range("A1").ClearContents
    ...
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Range("D11,E11,D12,E12").Select
       With Selection.Font
            .Name = "Calibri"
            .Size = 14
       End With
    peut se traduire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Range("D11,E11,D12,E12").Font
            .Name = "Calibri"
            .Size = 14
    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Membre averti
    Homme Profil pro
    Cherbourg
    Inscrit en
    Décembre 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Cherbourg

    Informations forums :
    Inscription : Décembre 2014
    Messages : 35
    Par défaut
    Bonjour !

    Merci clementmarcotte pour cette information. J'ai été peut être vite dans ma démarche et pas réfléchis a cette option dans word.

    Merci aussi à toi casefayere pour ces explications. Comme je l'ai dis dans mon post je commence tout juste et je m'inspire donc de la fonction "enregistrer une macro". Je vais faire plus attention (maintenant que j'ai découvert "developpez") et chercher des façon de réduire mon code au maximum pour qu'il soit plus propre et plus rapide.

    Cordialement,

    r4v3n

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 31/01/2015, 09h54
  2. bouton imprimer sur imprimante precise!
    Par NoobX dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/10/2005, 11h59
  3. Comment imprimer sur un réseau Linux
    Par Medo_free dans le forum Réseau
    Réponses: 5
    Dernier message: 19/10/2004, 13h45
  4. Imprimer sur l'imprimante qu'on a choisie
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/09/2004, 15h59

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