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 :

Créer un formulaire (bon de commande) PDF par commande d'une liste [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Créer un formulaire (bon de commande) PDF par commande d'une liste
    Bonjour,

    Malgré mes recherches sur le site, mais ne sachant pas exactement ce que je cherche (en tous cas quel nom mettre dessus) je soumets mon problème dans une nouveau post.

    Bien évidemment, je suis preneur d’un ou plusieurs lien vers de posts (ou autre) traitant du sujet.

    Pour faire simple,

    J’ai un premier feuillet dans lequel se trouvent mes données de commande, une ligne par entrée, une colonne par critère (commande, nom, prénom, date, prix…).

    Dans le second feuillet, j’ai un formulaire dans lequel je renseigne mon numéro de commande et le formulaire se renseigne automatiquement par rechercheV dans le feuillet 1.


    CE QUE JE SOUHAITE FAIRE AVEC UNE VBA :

    1) Feuillet : « Commande », Colonne : « Traitement » : Tester sur la première ligne sur le contenu est « X », SI OUI passer à ligne suivante et exécuter le même test, SI NON, copier le contenu de la colonne Numéro de la commande (colonne A) >>> SI LE CONTENU DE LA COLONNE A EST VIDE C’EST QUE TOUTES LES COMMANDES AIENT ETE TRAITER, LA MACRO S’ARRETE.

    2) Feuillet : « Bon de commande », cellule B2 : Coller le contenu copier sur le feuillet commande (le numéro de commande)

    3) Le bon de commande se rempli automatiquement

    4) Optionnel : Tester les cellules (vérifier que les RECHERCHEV en B4 et suivante ne renvoient pas #N/A)

    5) Enregistrer le fichier au format PDF en le nommant avec le contenu de la cellule C2 du feuillet « Bon de commande »

    6) Feuillet : « Commande », Colonne : « Traitement » : Remplir la cellule de la commande qui vient d’être traitée « X » et revenir à l’étape 1.

    J’ai déjà trouvé comment enregistrer au bon format et au bon nom (Etape 5), je ne sais pas si mon code des bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub EnregistrerPDF()
    Dim vNomFichier As String
    vNomFichier = Trim([C2])
    Sheets("Bon de commande").Copy
        ChDir "destination du fichier"
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    vNomFichier, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
            False
    End Sub
    D'avance merci pour votre aide !!!
    Images attachées Images attachées
    Fichiers attachés Fichiers attachés

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Points : 493
    Points
    493
    Par défaut
    Voici:

    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
    Sub TEST2()
     
    Dim i As Integer
    Dim NomPdf As Variant
    Dim FiChier As Variant
    Dim Der_li As Integer
            Der_li = Sheets("Commandes").Range("A65536").End(xlUp).Row ' nombre de ligne du carnet de commande
     
     
      For i = 2 To Der_li ' 2 pour ne pas prendre la ligne titre
     
         If Sheets("Commandes").Cells(i, 6) <> "X" Then
     
        Sheets("Bon de Commande").Range("b2") = Sheets("Commandes").Cells(i, 1)
        Sheets("Bon de Commande").Range("b4") = Sheets("Commandes").Cells(i, 2)
        Sheets("Bon de Commande").Range("b5") = Sheets("Commandes").Cells(i, 3)
        Sheets("Bon de Commande").Range("b6") = Sheets("Commandes").Cells(i, 4)
        Sheets("Bon de Commande").Range("b7") = Sheets("Commandes").Cells(i, 5)
     
     
       NomPdf = Sheets("Commandes").Cells(i, 2) & Sheets("Commandes").Cells(i, 1) & ".Pdf" ' nom PDF composé du nom et N° commande
       FiChier = ThisWorkbook.Path & "\" & NomPdf ' ThisWorkbook.Path indique le chemin du fichier actuel
     
     
        ThisWorkbook.Sheets("Bon de commande").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FiChier _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
            :=False, OpenAfterPublish:=False
        Sheets("Commandes").Cells(i, 6) = "X"
        MsgBox "Votre fichier est enregistré : " & FiChier
     
        End If
       Next i
    End Sub
    en espérant que cela te convienne !

    Cordialement,
    Cordialement,

    Jijie

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Mai 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Super Merci beaucoup !!!!

    Entre temps j'ai trouvé cette solution :

    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
    Sub Traiter_commandes_en_suspens()
    Dim i As Integer, Chemin As String
     
    Application.ScreenUpdating = False
     
    Chemin = ThisWorkbook.Path
     
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
        If Range("F" & i) <> "X" Then
     
        With Sheets("Bon de commande")
        .Range("B2") = Range("A" & i)
     
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
             Chemin & "\Commande " & .Range("B2") & ".pdf" _
            , Quality:=xlQualityStandard, IncludeDocProperties:=True
     
        End With
        Range("F" & i) = "X"
     
        End If
    Next i
     
    End Sub
    Je vois quelques différences, déjà l'intégration à la macro des recherchev, j'aime bien ton angle d'attaque du pb ;-)

    Bonne journée !!!!

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

Discussions similaires

  1. Créer un formulaire bon de commande
    Par Ordonnateur dans le forum Forms
    Réponses: 0
    Dernier message: 14/08/2014, 22h29
  2. Réponses: 1
    Dernier message: 18/08/2010, 08h09
  3. Réponses: 4
    Dernier message: 08/07/2009, 14h38
  4. Créer une feuille par élément d'une liste.
    Par Lucci dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/07/2008, 20h54
  5. Réponses: 5
    Dernier message: 26/04/2007, 11h42

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