Export de lignes vers un autre tableau et enregistrement

Hello tout le monde !

Cela faisait un moment que je n'étais pas passé par-là, mais revoilà que j'ai besoin de vos lumières

Alors voilà ma petite problématique :

Je créé des fiches suiveuses, que je range dans un dossier X. Je compile ensuite les données de toutes mes fiches suiveuses dans un autre fichier pour faire des analyses. L'opération n'est pas compliquée, je prend toutes mes lignes et les copies dans un onglet spécifique de mon fichier de synthèse.

Pour éviter d'avoir à faire tout cela, je souhaiterais avoir un gros bouton qui, lorsque je clique dessus, enclenche une macro qui :

1) Copie mes lignes de données dans la fiche suiveuse

2) Les colles à la suite des précédentes dans l'onglet de mon fichier de synthèse

3) Enregistre la fiche suiveuse en la nommant avec des informations que j'ai dans ma fiche dans un dossier spécifié

Pour information, voici un exemple de fiche suiveuse (fichier A), les informations que je souhaite exporter sont contenus dans les lignes 14 à 42 et de la colonne A à AI. Je souhaite à la rigueur pouvoir décider ensuite colonne par colonne dans quelle colonne du tableau de synthèse je les rangerai.

Merci d'avance de votre aide, n'hésitez pas à me demander si vous souhaitiez d'autres informations pour que ce soit plus clair

31a.xlsx (19.43 Ko)

Hello tout le monde, de mon côté je n'ai toujours pas réussi à résoudre mon problème, et je vois que je n'ai pas eu beaucoup de succès ici Est-ce que mon problème n'est pas assez clair ?

Merci d'avance de votre aide.

Salut,

Ton fichier étant vide, il est difficile de ce faire une idée précise de ce que tu attends.

Faut-il copier tous les données de la ligne ? Les colonnes correspondent elles à un champ de données précis ? Quel est le formalisme de ton fichier synthèse ?

Nous avons besoin de plus de précisions pour d'aider.

A+

Il s'agît d'exporter toutes les données contenues dans A14:AI42.

Le fichier de synthèse reprend le même formalisme que ce qui se fait en A14:AI42.

Merci d'avance de ton aide.

Bonjour à tous,

Puisque mon cas n'a pas l'air assez clair et inspirant, je tente de mieux le réexpliquer ici :

Je créé des fiches suiveuses, que je range dans un dossier X. Je compile ensuite les données de toutes mes fiches suiveuses dans un autre fichier dans un dossier Y pour faire des analyses. L'opération n'est pas compliquée, je prend toutes mes lignes de données (toujours A14:142) et les copies/colles (en données sans les calculs) dans un onglet spécifique de mon fichier de synthèse à la suite des lignes déjà complètes (un simple contrôle de s'il y a écrit quelque chose en colonne A quoi doit toujours être remplie pour une ligne suffit).

Un fichier d'exemple A ci-joint montre comment sont présentés mes données dans ma fiche suiveuse, et le fichier B montre l'onglet de la synthèse où copier les données avec 2 lignes dans A qui sont déjà copiées dans B. En déclenchant la macro sur une nouvelle fiche suiveuse, les données devront se copier, pour une seule ligne par exemple de A3 à AI35.

Merci d'avance pour votre aide à tous

17b.xlsx (8.10 Ko)
23copie-de-a.xlsx (19.67 Ko)

Salut,

Voici une solution à partir du fichier synthèse (= ton fichier B)

Tu choisis ton fichier Fiche Suiveuse (= ton fichier A) et cela importe les données de A14 à AI (dernière ligne complétée) dans la synthese.

A voir si cela te convient

A+

42fs-synthese.xlsm (22.81 Ko)

Génial, ça fait mon affaire ! Merci beaucoup !

Ravi d'avoir pu d'aider et merci pour ton retour.

A+

Bonjour à tous,

Je ré-ouvre ce sujet car j'ai la même problématique qui revient en force, en revanche cette fois pas possible de la contourner avec l'astuce de Jers19.

J'y ajoute en plus un petit bonus !

Donc en fait, je cherche à déclencher une macro qui irait enregistrer les données de mon classeur dans un autre classeur qui servirait de base de données.

Je rempli plusieurs fiches (fichier exemple_A) par jour et souhaite reporter ces informations dans une base de donnée (ficher exemple_B).

La particularité supplémentaire c'est que pour chaque ligne, les colonnes A, B, C et D doivent constamment prendre les valeurs des mêmes cases (en jaune dans la matrice).

Merci de votre aide ! N'hésitez pas à me dire si c'est pas clair !

13exemple-a.xlsx (10.13 Ko)
12exemple-b.xlsx (8.38 Ko)

Salut,

Voici une proposition adaptée de ma réponse précédente.

A voir si cela te convient

A+

Jers

28exemple-b-1.xlsm (22.63 Ko)

Bonjour Jers, merci de ton aide.

Malheureusement cette solution ne conviendra pas cette fois. En effet les utilisateurs n'utilisent que le fichier A et l'idée est qu'ils n'aient pas d'autres interactions avec d'autres fichiers que celui-ci pour avoir le moins d'actions possibles à faire.

Il n'est pas possible d'orchestrer quelques choses depuis le fichier A ?

Merci d'avance.

Oui c'est possible mais ça veut dire qu'ils doivent tous avoir les droits d'accès au répertoire comprenant le fichier b. Est ce le cas ?

Oui c’est bien le cas

Je me permets un petit UP

Cette problématique est la dernière ligne droite sur un projet important pour moi

Merci d'avance Jers et aux autres aussi !

Salut,

Voici le fichier avec l'import dans le fichier B à partir du fichier A.

Par contre, il faut que tu indiques dans le code le chemin permettant d'accéder au fichier B.

A+

Jers

12exemple-a-1.xlsm (23.78 Ko)

Hello, on y est presque !

J'ai une : erreur d'exécution 6 "dépassement de capacité" pour la ligne suivante :

LastLine = WbSource.Sheets(1).Range("A6").End(xlDown).Row

Une idée ? Merciiiiiii

Salut,

Remplace

LastLine = WbSource.Sheets(1).Range("A6").End(xlDown).Row

par

LastLine = WbSource.Sheets(1).Range("A5").End(xlDown).Row

Remplace

For i = 1 To WbSource.Sheets(1).Range("A6").End(xlDown).Row - 5

par

For i = 1 To WbSource.Sheets(1).Range("A5").End(xlDown).Row - 5

Ca devrait être bon

Jers

Merci de ton retour Jers, même message

Je te poste le code tel qu'entré actuellement, merci de ton aide encore :

Sub ImportFS()

Dim WbSource As Workbook, WbCible As Workbook
Dim LastLine%, i%

Set WbSource = ActiveWorkbook
Set WbCible = Workbooks.Open("C:\Users\bpa\Desktop\exemple_B.xlsx")
WbSource.Activate
Application.ScreenUpdating = False
If WbSource.Sheets(1).Range("M7").Value = "" Then
    MsgBox "La grille doit contenir une valeur", vbApplicationModal + vbQuestion, "Erreur"
    GoTo Fin
End If
LastLine = WbSource.Sheets(1).Range("A5").End(xlDown).Row
WbSource.Sheets(1).Range("A6:J" & LastLine).Select
Selection.Copy
If WbCible.Sheets(1).Range("A2").Value = "" Then
    LastLine = 1
Else
    LastLine = WbCible.Sheets(1).Range("A1").End(xlDown).Row
End If
WbCible.Activate
WbCible.Sheets(1).Range("E" & LastLine + 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
For i = 1 To WbSource.Sheets(1).Range("A5").End(xlDown).Row - 5
    WbCible.Sheets(1).Range("A" & LastLine + i).Value = WbSource.Sheets(1).Range("B2").Value
    WbCible.Sheets(1).Range("B" & LastLine + i).Value = WbSource.Sheets(1).Range("E1").Value
    WbCible.Sheets(1).Range("C" & LastLine + i).Value = WbSource.Sheets(1).Range("E2").Value
    WbCible.Sheets(1).Range("D" & LastLine + i).Value = WbSource.Sheets(1).Range("C3").Value
Next i
Fin:
WbCible.Close True
Application.ScreenUpdating = True
End Sub

La cellule a6 de l'onglet source contient bien une valeur ?

Yes ! C'était le problème

Tout marche, merci Jers !!!

Rechercher des sujets similaires à "export lignes tableau enregistrement"