aller chercher les données dans un fichier et les coller dans un autre selon critère

mamined

XLDnaute Nouveau
Bonjour le forum,

voilà, j'ai un fichier qui est actualisé automatiquement tous les mois. Dans ce dernier, je souhaite y récupérer les données en fonction d'une valeur présente dans la colonne A de la feuille nommée "fichier 1".

A savoir que si dans la colonne A du fichier 1762_Test, feuille "fichier 1". j'ai la valeur 176270, alors les données des colonnes B à E sont copiées dans le fichier nommé "Destination" feuille nommée "fichier_destination" dès la cellule A2 avec un copier et collage spéciale valeur.

Ceci sans avoir de vide entre les lignes sachant que dans le fichier source, les données ne sont pas forcément à la ligne 1 mais peuvent être bien plus bas.

Par avance un grand merci pour votre aide
 

Pièces jointes

  • Destination.xlsx
    7.8 KB · Affichages: 32
  • 1762_Test.xlsx
    18.7 KB · Affichages: 37
  • Destination.xlsx
    7.8 KB · Affichages: 30
  • Destination.xlsx
    7.8 KB · Affichages: 32

Robert

XLDnaute Barbatruc
Repose en paix
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Bonjour Mamined, bonjour le forum,

Essaie avec ce code à mettre dans le classeur 1762_Test.xlsx qui va devenir "1762_Test.xlsm" puisqu'il aura la macro. Le code :
Code:
Sub Macro1()
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Object 'déclare la variable OS (Onglet Source)
Dim CH As String 'déclare la variable CH (CHemin d'accès)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim PL As Range 'déclare la variable PL (PLage)
Dim CD As Workbook 'déclare la variable CD (Classeur Detination)
Dim OD As Object 'déclare la variable OD (Onglet Destination)
Dim DEST As Range 'déclare la variable DEST (Cellule de DESTination)

Set CS = ThisWorkbook 'définit la classeur source CS
CH = CS.Path & "\" 'définit le chemin d'accès
Set OS = CS.Sheets("fichier 1") 'définit l'onglet source OS
DL = OS.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet source
Set PL = OS.Range("B1:E" & DL) 'définit la plage PL
OS.Range("A1").AutoFilter field:=1, Criteria1:=176270 'filtre la colonne 1 de l'onglet source avec 176270 comme critère
On Error Resume Next 'gestion des erreurs (en cas dérreur passe à la ligne suivante)
Set CD = Workbooks("Destination.xlsx") 'définit le classeur destination CD (si ce classeur est fermé génère une erreur)
If Err <> 0 Then 'condition : si une erreur a été générée
    Err.Clear 'efface l'erreur
    Application.Workbooks.Open (Path & "Destination.xlsx") 'ouvre le claseur
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
Set CD = ActiveWorkbook 'définit le classeur destination CD
Set OD = CD.Sheets("fichier_destination") 'définit l'onglet destination OD
'définit la cellule de destination DEST
Set DEST = IIf(OD.Range("A1").Value = "", OD.Range("A1"), OD.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
CS.Activate 'active le classeur Source
OS.Activate 'active l'onglet Source
PL.SpecialCells(xlCellTypeVisible).Copy 'copie les lignes visibles de la plage PL
DEST.PasteSpecial (xlPasteValues) 'colle les valeurs
With OS.Range("A1") 'prend en compte la cellule A1 de l'onglet source
    .AutoFilter 'supprime le filtre automatique
    .Select 'sélectionne la cellule
End With 'fin de la prise en compte de la cellule A1
End Sub
 

Paritec

XLDnaute Barbatruc
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

bonjour Mamimed le forum
ton dossier et retour, tu décompresses le fichier sur ton bureau, tu ouvres Destination et tu cliques sur le bouton traiter
a+
Papou:eek:


EDIT: Bonjour Robert:eek: excuses j'avais pas vu ta réponse, je n'avais pas rafraichi, il aura deux versions !!!
 

Pièces jointes

  • Mamimed V1.zip
    37 KB · Affichages: 29

mamined

XLDnaute Nouveau
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Bonjour Robert, Papou, le forum,

merci pour la prompte réponse.
Robert, ce que je n'ai peut-être pas précisé c'est que le fichier 1762_Test est un fichier qui est automatiquement supprimé et remplacé chaque mois. Donc je ne peux pas mettre de code dedans.

@Papou, ta réponse effectue le travail souhaité dans les fichiers en retour, mais chez moi je n'arrive pas à faire fonctionner.

En complément, je joint les 2 fichiers originaux. Le premier qui est le fichier source et qui a le nom PL66_Zone_Ouest.xlsx. C'est le fichier tel que je le reçoit chaque mois.

Le second qui est un pseudo fichier mais qui représente mon fichier definitif. C'est dans ce fichier, que le job doit se faire. $$Au départ, on part d'une page menu dans laquelle les boutons sont présents (le fichier original contient 10 onglets et de multiples macro.

Dans ce fichier j'ai laissé le code avec les explications. En effet, le job est composé de plusieurs étapes, mais c'est pour l'étape de récupération des données selon un critère dans une colonne que je pioche...

Par avance merci à tout le monde pour votre aide
Dad
 

Pièces jointes

  • PL66_Zone_Ouest.xlsx
    23.3 KB · Affichages: 28
  • Test_suivi.xlsm
    21.7 KB · Affichages: 44

Paritec

XLDnaute Barbatruc
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Bonjour Mamined le forum
c'est dommage que tu ne saches pas joindre un classeur au format zip !!!!!
De plus pour les explications dans le classeur Test_suivi.xlsm là c'est le bouquet !!!!
Il faut coller les lignes récupérées dans quelle feuille??? et coller quoi ??? toutes les colonnes du fichier PL_66??? tu veux de l'aide mais franchement tu ne fais rien pour que l'on puisse t'aider
dans l'attente de ta réponse
a+
Papou:eek:
 
Dernière édition:

mamined

XLDnaute Nouveau
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Hello Papou,

si c'est plus facile, je peux joindre les 2 fichiers dans un zip no souci :_)

En revanche, le fichier original même zipé restait beaucoup trop lourd.
 

Pièces jointes

  • Test_import.zip
    36.9 KB · Affichages: 38

Paritec

XLDnaute Barbatruc
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Re Mamined le forum
non surtout pas de fichier original, mais tu n'as pas répondu à mes autre questions on le colle ou les lignes??? et on colle toutes les colonnes??? bref explique car tu fais une demande avec un fichier et le demande suivant c'est des autres fichiers il faut avoir un tantinet de constance !!!!!!!!!
a+
Papou:eek:
 

mamined

XLDnaute Nouveau
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Hello Papou le forum,

Désolé si je n'ai pas été précis.

alors voilà, j'essaie de récapituler:
Dans le classeur test suivi, je souhaite démarer par vider les données présententent dans les feuilles SEM et Pré scannage SEM depuis la ligne 2, puis coller dans la feuille SEM dès la cellule A2 les données présentent dans le classeur PL66_Zone_Ouest de la feuille SE_Mond, si les données contienne en colonne A la valeur 176270. Les données à coller sont les données dès la colonne B jusqu'à la colonne G.

Puis, toujours dans le classeur test suivi, je souhaite coller dans la feuille Pré scannage SEM dès la cellule A2, les doonées présentent dans le classeur PL66_Zone_Ouest dans la feuille Beladescanning toujours en fonction de si l'on trouve la valeur 176270 en colonne A.
Les données à coller sont les données dès la colonne B à la colonne F.

J'espère être un peu moins brouillon cette fois :)

Désolé
 

Paritec

XLDnaute Barbatruc
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Re Mamined le forum
alors cela continu!!!!!! dans la feuille PL66_Ouest il faut chercher les lignes dans quelle feuille???
car là maintenant il y a trois feuilles ??????
Bref avec tes demandes tu te moques un peu de nous je pense, on ne peux pas deviner ce que tu veux, on peux tout faire mais avec des explications pas sans rien savoir
a+
Papou:eek:
 

mamined

XLDnaute Nouveau
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Hello Papou,

je pense que nos messages se sont croisé. dans mon post précéedent j'ai indiqué, dans quelle feuille rechercher quelles données et pour quelle feuille de destination.

voici ce que j'écrivais :
Dans le classeur test suivi, je souhaite démarer par vider les données présententent dans les feuilles SEM et Pré scannage SEM depuis la ligne 2, puis coller dans la feuille SEM dès la cellule A2 les données présentent dans le classeur PL66_Zone_Ouest de la feuille SE_Mond, si les données contienne en colonne A la valeur 176270. Les données à coller sont les données dès la colonne B jusqu'à la colonne G.

Puis, toujours dans le classeur test suivi, je souhaite coller dans la feuille Pré scannage SEM dès la cellule A2, les doonées présentent dans le classeur PL66_Zone_Ouest dans la feuille Beladescanning toujours en fonction de si l'on trouve la valeur 176270 en colonne A.
Les données à coller sont les données dès la colonne B à la colonne F.
 

Paritec

XLDnaute Barbatruc
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Re Mamined le forum
bon alors si les fichiers ne changent plus voilà tu as un impératif c'est de mettre le fichier suivi.xlsm dans le même dossier que le fichier PL66
Une autre chose hier ta demande c'était il faut ajouter les lignes dans les feuilles aujourd'hui il faut supprimer les lignes ??? Avant d'ajouter ce que l'on veut copier !!!!!!
Moi c'est ce que j'ai fait mais bon est-ce bien cela que tu veux???
a+
Papou:eek:
 

Pièces jointes

  • Mamimed V2.zip
    46 KB · Affichages: 30

mamined

XLDnaute Nouveau
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Hello Papou, le forum

merci beaucoup pour cette précieuse aide. C'est exactement ce dont j'avais besoin. En revanche, dans ta réponse j'ai vu qu'il fallait laisser les 2 fichiers dans le même répertoire.

Dans le cas présent, le fichier PL66_Zone_Ouest sera dans un autre répertoire. Est-ce qu'il est possible de définir un chemin d'accès dans le code que tu m'as fourni?

Sans quoi je pourrais intégrer en première partie, l'action d'aller copier et coller le fichier dans le répertoire où sera le fichier test suivi.

Merci pour la prochaine réponse
Dad
 

mamined

XLDnaute Nouveau
Re : aller chercher les données dans un fichier et les coller dans un autre selon cri

Bonjour le forum, Papou,

dans la solution proposée par papou qui fonctionne très bien, il y a du code pour allerchercher les éléments de plusieurs feuilles et les regrouper dans une seule feuille.

Le seul souci, c'est que si dans une des 4 feuilles, je n'ai pas de données, alors ça ne fonctionne pas et le bout de code suivant vient en jaune :
n = UBound(tbl, 2)

Quelqu'un peut -'il m'aider?

PAr avance merci tout le monde

Dad
 

Discussions similaires