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

Excel Discussion :

Générer un document word par client


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 22
    Points : 8
    Points
    8
    Par défaut Générer un document word par client
    Bonjour,

    j'ai deux fichiers : "info_SCPI" qui contient de nombreuses informations sur ces produits (nom, prix, fournisseurs...) et un fichier "suivi_client" qui contient le nom du client, son adresse et le nom de la SCPI que le client a acheté. Une ligne du fichier client représente l'achat d'une SCPI (un client peut donc être sur plusieurs lignes).

    Je souhaite générer par client un rapport word (à partir d'un model) reprenant les informations du client (qui seront placé a l'aide de signet) et de la ou les informations des SCPI souscrites.


    mon code pour le moment :


    Code vba : 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
    'Déclaration des différentes variables
    Dim appWord As Object
    Dim docWord As Object
    Dim Fichier As String
    Dim chemin As String
    Dim DossierRESUME As String
    Dim DateJour As String
    Dim FI As String
    Dim Date as String
    Dim NomClient as string
    Dim numero as integer
    Numero=1
    On Error Resume Next
     
    While numero = 1
    	Cells (numéro,2)= numero
    'Création du libelle du fichier word
    Date= 
    NomClient = «
    FI = "LETTRE DE MISSION" & "_" & NomClient " & "_" & Date
     
    'Enregistre le rapport word dans le dossier dans lequel le fichier excel est présent
    DossierRESUME = ThisWorkbook.Path
    'Vérifie si le répertoire existe
    If Dir(DossierRESUME, vbDirectory + vbHidden) <> "" Then
    'Vérifie que le dossier à créer n'existe pas déjà dans le répertoire
    If Dir(DossierRESUME & "\" & FI, vbDirectory + vbHidden) = "" Then
    MkDir DossierRESUME & "\" & FI
    Else
    MsgBox ("le dossier existe déjà")
    End If
    End If
     
     
    'Ouverture du Resumé de l'activité
    Set appWord = CreateObject("Word.application") 'Ouvre session Word
    appWord.Visible = True
    chemin = ThisWorkbook.Path 'Permet variabilité emplacement dossier
    Set docWord = appWord.Documents.Open(chemin & "\" & "Mod006_Rapport de Mission_Alpha Phi – SCPI.docx", ReadOnly:=False)  'Ouvre document Word TEST
    docWord.SaveAs DossierRESUME & "\" & FI
    docWord.Close 'Ferme le document WORD TEST
    Set appWord = CreateObject("Word.application") 'Ouvre session Word
    appWord.Visible = True
    chemin = ThisWorkbook.Path 'Permet variabilité emplacement dossier
    Set docWord = appWord.Documents.Open(chemin & "\" & FI & ".docx", ReadOnly:=False)
     
     
    ActiveWorkbook.SaveCopyAs DossierRESUME & "\" & FI & ".docx"
     
    Application.CutCopyMode = False
     
    End Sub
    Wend

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Baptistedu22 Voir le message
    mon code pour le moment :
    Commence par supprimer le On Error Resume Next en début de code pour avoir une chance de corriger tes erreurs.
    Parce que ton code en est truffé.

    Déjà, les premières lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells (numéro,2)= numero
    Enlève l'accent sur "numéro", supprime l'espace après Cells, ajoute un espace avant et après le =, ajoute un espace après la virgule.

    Ajoute un espace avant le =, ajoute une valeur après le =.

    Enlève le « et remplace-le par une valeur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FI = "LETTRE DE MISSION" & "_" & NomClient " & "_" & Date
    Enlève le guillemet après NomClient.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 22
    Points : 8
    Points
    8
    Par défaut
    Merci mais cela ne m'avance pas dans mon problème... j'aurais pu trouver ses erreurs seul à l'aide du débogage!!

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par Baptistedu22 Voir le message
    j'aurais pu trouver ses erreurs seul à l'aide du débogage!!
    Alors pourquoi ne l'as-tu pas fait ?

    Je te signale aussi que les lignes 24 à 32 sont totalement inutile.
    Je te laisse interroger le débugage pour comprendre pourquoi.

  5. #5
    Membre chevronné Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Points : 1 971
    Points
    1 971
    Par défaut
    Bonjour,

    Pourquoi "se prendre la tête" alors qu'un simple publipostage bien construit ferait totalement l'affaire.

    Bon debug,
    MFoxy

Discussions similaires

  1. Générer un Document Word depuis un formulaire
    Par parab dans le forum VBA Access
    Réponses: 2
    Dernier message: 08/09/2008, 21h09
  2. comment générer un document word en vba ?
    Par appocallypseman dans le forum IHM
    Réponses: 15
    Dernier message: 10/05/2007, 12h14
  3. Générer un document Word
    Par kwakanar dans le forum C++
    Réponses: 3
    Dernier message: 08/06/2006, 13h08
  4. Réponses: 2
    Dernier message: 07/06/2006, 09h50
  5. Réponses: 11
    Dernier message: 26/04/2005, 09h23

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