Alimenter un fichier de suivi Excel

Résolu/Fermé
edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018 - 17 nov. 2017 à 20:20
edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018 - 19 nov. 2017 à 14:50
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
A voir également:

2 réponses

yg_be Messages postés 23343 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 Ambassadeur 1 551
18 nov. 2017 à 09:37
bonjour, ce que tu souhaites réaliser est clair.
cependant, tu n'expliques pas ce que tu attends comme assistance.
0
edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018
18 nov. 2017 à 18:42
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
yg_be Messages postés 23343 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 Ambassadeur 1 551
18 nov. 2017 à 19:23
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
edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018
18 nov. 2017 à 19:35
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
yg_be Messages postés 23343 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 1 551 > edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018
18 nov. 2017 à 20:36
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
edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018 > yg_be Messages postés 23343 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024
18 nov. 2017 à 21:45
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
yg_be Messages postés 23343 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 1 551 > edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018
18 nov. 2017 à 22:52
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
edlyg Messages postés 13 Date d'inscription lundi 13 novembre 2017 Statut Membre Dernière intervention 16 août 2018 > yg_be Messages postés 23343 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024
19 nov. 2017 à 13:19
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