Alimenter un fichier de suivi Excel

Résolu
edlyg Messages postés 13 Statut Membre -  
edlyg Messages postés 13 Statut Membre -
Bonsoir

Je cherche à faire la chose suivante :
dans un classeur excel je crée des devis que je sauvegarde via des macros en excel d'une part, exemplaire entreprise, et en pdf, exemplaire client.
J'aimerais que certaines des données de l'exemplaire entreprise viennent alimenter un fichier qui répertorierait les données principales concernant le client et qu'à chaque devis créé corresponde une ligne.

J'espère que ma requête est claire

Merci d'avance pour votre aide

2 réponses

  1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    bonjour, ce que tu souhaites réaliser est clair.
    cependant, tu n'expliques pas ce que tu attends comme assistance.
    0
    1. edlyg Messages postés 13 Statut Membre
       
      Bonjour

      En fait je cherche une macro ou un code vba qui me permette de faire la manip et je n'ai pas trouvé sur les forums mais peut être parce que je formule mal ma requête
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    voici un exemple de code VBA:
    Sub edlyg()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim filename As String
    Dim nlig As Long
    
    filename = Environ("temp") & "/ccm/testedlyg.xlsx"
    Set wb = Workbooks.Open(filename)
    Set ws = wb.Worksheets(1)
    nlig = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
    ws.Cells(nlig, 1) = Now()
    ws.Cells(nlig, 2) = "bonjour"
    wb.Save
    wb.Close
    End Sub

    il ouvre un fichier (dont le nom est dans filename, en ligne 7), ajoute une ligne à la première feuille du fichier (avec la date et "bonjour", en lignes 11 et 12), puis sauve et ferme le fichier.
    0
    1. edlyg Messages postés 13 Statut Membre
       
      Je vais essayer. Je suppose que en ligne 8 je mets le même filename qu'en ligne 7 ?
      Autre petite question comment je sélectionne les cellules qui m'intéressent dans le fichier source (en l’occurrence C3, C4, C7, C12 et C14) ?
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > edlyg Messages postés 13 Statut Membre
       
      voici l'exemple adapté:
      Sub edlyg()
      Dim wb As Workbook
      Dim ws As Worksheet
      Dim filename As String
      Dim nlig As Long
      Dim source As Worksheet
      
      Set source = ThisWorkbook.ActiveSheet
      filename = Environ("temp") & "/ccm/testedlyg.xlsx"
      Set wb = Workbooks.Open(filename)
      Set ws = wb.Worksheets(1)
      nlig = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
      'C3, C4, C7, C12 et C14
      ws.Cells(nlig, 1) = Now()
      ws.Cells(nlig, 2) = source.[C3]
      ws.Cells(nlig, 3) = source.[C4]
      ws.Cells(nlig, 4) = source.[C7]
      ws.Cells(nlig, 5) = source.[C12]
      ws.Cells(nlig, 6) = source.[C14]
      wb.Save
      wb.Close
      End Sub

      le nom complet du fichier doit être dans la ligne 9, la ligne 10 ne doit pas changer.
      autre exemple de ligne 9:
      filename="C:\data\temp/ccm/testedlyg.xlsx"

      les lignes 15 à 19 copient les données à partir de la feuille active dans le fichier principal. tu peux changer la ligne 8 si tu veux prendre des données dans une autre feuille.
      0
    3. edlyg Messages postés 13 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Je viens d'essayer et ai la ligne 10 surlignée en jaune

      Sub edlyg()
      Dim wb As Workbook
      Dim ws As Worksheet
      Dim filename As String
      Dim nlig As Long
      Dim source As Worksheet

      Set source = ThisWorkbook.ActiveSheet
      filename = Environ("temp") & "/ccm/testedlyg.xlsx"
      Set wb = Workbooks.Open(filename)
      Set ws = wb.Worksheets(1)
      nlig = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
      'C3, C4, C7, C12 et C14
      ws.Cells(nlig, 1) = Now()
      ws.Cells(nlig, 2) = source.[C3]
      ws.Cells(nlig, 3) = source.[C4]
      ws.Cells(nlig, 4) = source.[C7]
      ws.Cells(nlig, 5) = source.[C12]
      ws.Cells(nlig, 6) = source.[C14]
      wb.Save
      wb.Close
      End Sub

      que j'ai mis en gras dans ma copie
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > edlyg Messages postés 13 Statut Membre
       
      il faut que la ligne 9 contienne le nom complet d'un fichier existant, par exemple:
      filename="C:\data\temp/ccm/testedlyg.xlsx"

      quel est la message d'erreur?
      0
    5. edlyg Messages postés 13 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour

      Le voici
      Erreur d'exécution 1004
      il m'indique que le fichier est introuvable.
      Je l'ai mis sous la racine du dossier dans lequel est le fichier source.
      0