Recopie de ligne(s) d'un classeur vers un autre classeur

heparti

XLDnaute Occasionnel
Bonjour,

J'ai cherché sur XLD si la réponse était présente et je n'ai rien trouvé qui soit adaptable à mon problème.

J'ai un tableau qui sera complété par des utilisateurs puis enregistré sur un réseau (colonnes utilisées : de A à Q).

Je souhaite pouvoir recopier une ou plusieurs lignes de ce tableau que l'on peut appeler "agent.xls" vers un tableau centralisateur appelé "collecte.xls".

Les en-têtes de colonnes seront identiques dans les deux classeurs.

Il faut pouvoir choisir la ou les lignes à recopier, et que celles-ci soient recopiées sur la dernière ligne vide du tableau et qu'en colonne A, s'incrémente automatiquement un numéro d'ordre.

Merci pour votre aide toujours précieuse.
 

Pièces jointes

  • collecte.zip
    7.6 KB · Affichages: 19
  • collecte.zip
    7.6 KB · Affichages: 26
  • collecte.zip
    7.6 KB · Affichages: 22

heparti

XLDnaute Occasionnel
Re : Recopie de ligne(s) d'un classeur vers un autre classeur

Merci pour ta réponse rapide.

En théorie, à partir de la ligne 2 du classeur "agents.xls", les lignes complétées sont à recopier.

Cependant, j'anticipe en les connaissant un peu, et il est fort à parier qu'un même agent envoie plusieurs fois la même ligne dans plusieurs emails.

Sinon, du moment que la cellule de la colonne D est complétée, il y a copie vers le classeur "collecte.xls".
 

heparti

XLDnaute Occasionnel
Re : Recopie de ligne(s) d'un classeur vers un autre classeur

J'ai trouvé comment copier/coller d'une feuille à une autre, mais je n'arrive pas à le faire d'un classeur à un autre.

Code:
Option Explicit

Dim X, Y, Z As Integer

Sub SelectionCopier()
Application.ScreenUpdating = False

Worksheets("feuil1").Select  ' selection de la feuile 1 [ change le nom]

    For X = 1 To 65536
        If Worksheets("Feuil2").Cells(X, 1) = "*" Then
            Z = Worksheets("Feuil1").Range("A65536").End(xlUp).Row + 1
            For Y = 1 To 6

                Worksheets("Feuil1").Cells(Z, Y) = Worksheets("Feuil2").Cells(X, Y)
            Next
        End If
    Next
Application.ScreenUpdating = True
End Sub
Je pars du principe que lorsque le signe "*" est présent en colonne 1, il faut faire un copier/coller le chaque ligne concernée de la Feuil1 de "agent.xls" vers la Feuil1 de "collecte.xls".
 

heparti

XLDnaute Occasionnel
Re : Recopie de ligne(s) d'un classeur vers un autre classeur

Merci Pierrot93, ça fonctionne en adaptant.

La dernière question est l'ajout en début de ligne (colonne A) d'un numéro qui s'incrémente automatiquement après la recopie de la ligne de l'autre classeur (si la ligne du dessus était numérotée "4", la ligne suivante est recopier et le numéro s'incrémente automatiquement en "5" en colonne A).

Le code actuel est le suivant :

Code:
Option Explicit

Dim X, Y, Z As Integer

Sub SelectionCopier()
Application.ScreenUpdating = False
    For X = 1 To 65536
        If Workbooks("Demande_agent.xls").Worksheets("demande").Cells(X, 18) = "*" Then
            Z = Workbooks("Fichier_de_centralisation.xls").Worksheets("Centralisation").Range("A65536").End(xlUp).Row + 1
            For Y = 1 To 6
                Workbooks("Fichier_de_centralisation.xls").Worksheets("Centralisation").Cells(Z, Y) = Workbooks("Demande_agent.xls").Worksheets("demande").Cells(X, Y)
            Next
        End If
    Next
Application.ScreenUpdating = True
End Sub
 

heparti

XLDnaute Occasionnel
Re : Recopie de ligne(s) d'un classeur vers un autre classeur

Re-

Merci Pierrot93, je vais finalement faire un affichage du numéro en étirant la formule au fur et à mesure de l'intégration des lignes.

Je reviens une dernière fois avec mon code car il nécessite que les 2 fichiers soient ouverts, faute de quoi une erreur de macro apparait.

L'idéal serait d'avoir une invite permettant de choisir le nom du fichier à ouvrir (et donc à intégrer), qui est censé se nommer "Demande_agent.xls" mais qui peut être différent s'il a été renommé. De ce fait, il faudrait avoir la possibilité d'intégrer n'importe quel fichier excel et peu importe son nom.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane