Copier/coller d'une feuille excel vers une autre feuille avec des critères

anthonyhk

XLDnaute Junior
Bonjour,

Tous les jours, je sors une extraction sous format Excel que j’enregistre sous mon bureau (« Agenda des traitements.xls »).

J’ai un second fichier Excel (« État des contrôles des RL XXXXXXXX.xls »).

En lançant la macro via outils/macro effectuera :

1/ copier coller du ficher « Agenda des traitements » dans le fichier État des contrôles des RL XXXX dans l’onglet Agenda des traitements

2/ copier coller des lignes en dates du jour du onglet agenda des traitements du fichier Etat des contrôles dans l’onglet État de contrôle

Dans l’étape 2, j’aimerais que le copier coller ne se fasse que pour des critères bien définies (Date, nom, Prénom, Date de naissance, Adresse, Code postale, Ville, Code client)
Or, actuellement le copier coller intègre la ligne entière.

Pouvez vous m’aider svp ?

Merci 

Ci-dessous la ligne de code :

Sub MACROTEST()

Dim MonExcel As Excel.Application
Dim MonFichier As Object
Dim AdresseFichier As String
Dim Reponse As Integer
Dim x As Integer
Dim y As Integer
Dim dte As Date
Dim DernLigne As Long


Application.DisplayAlerts = False

AdresseFichier = "C:\Documents and Settings\" & Left(Right(Application.UserName, 8), 7) & "\Bureau\Agenda des traitements.xls"
CheminEnregistrement = Application.ActiveWorkbook.Path

DateduJour = Format(Date, "ddmmyyyy")

Application.Worksheets("Agenda des traitements").Select

Cells.Select

Selection.Delete

Set MonExcel = CreateObject("Excel.Application")

MonExcel.Visible = True

MonExcel.DisplayAlerts = False

Set MonFichier = MonExcel.Workbooks.Open(AdresseFichier)

MonExcel.ActiveSheet.Cells.Select

MonExcel.CutCopyMode = False

MonExcel.Selection.Copy

Application.Worksheets("Agenda des traitements").Range("A1").Select

Application.ActiveSheet.Paste

Cells.Select
With Selection
.WrapText = False
.Orientation = 0
.AddIndent = False
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
Cells.EntireColumn.AutoFit
Cells.EntireRow.AutoFit

MonFichier.Close savechanges = False

Set MonFichier = Nothing

MonExcel.Quit

Set MonExcel = Nothing

Sheets("Agenda des traitements").Range("A1").Select

Sheets("Etat de contrôle").Select

Range("B4").Select

Selection = Format(Date, "dd/mm/yyyy")

'End If

'Application.ActiveWorkbook.SaveAs _
'(CheminEnregistrement & "\Etat des contrôles des RL " & DateduJour)

dte = Date

For x = 0 To 50
If Worksheets("Agenda des traitements").Cells(10 + x, 2).Value < dte + 1 Then
Worksheets("Agenda des traitements").Activate
'Worksheets("Agenda des traitements").Cells(10 + x, 2).Select
'Worksheets("Agenda des traitements").Cells(10 + x, 5).Select
Worksheets("Agenda des traitements").Range("B" & x + 10 & ":C" & x + 10 & ":D" & x + 10 & ":F" & x + 10 & ":G" & x + 10 & ":H" & x + 10 & ":I" & x + 10 & ":M" & x + 10).Select
'Worksheets("Agenda des traitements").Range("B" & x + 11 & ":C" & x + 11 & ":D" & x + 11 & ":E" & x + 11).Select
Selection.Copy
Worksheets("Etat de contrôle").Activate
'Worksheets("Etat de contrôle").Rows.End(xlUp).Select
'Worksheets("Etat de contrôle").Cells(8 + y, 1).Select
DernLigne = Range("A65536").End(xlUp).Row + 1
Range("A" & DernLigne).PasteSpecial Paste:=xlPasteValues
Range("A" & DernLigne).PasteSpecial Paste:=xlPasteFormats
' DernLigne.Select
'ActiveSheet.Paste
'y = y + 1

End If
Next x


Application.DisplayAlerts = True


End Sub
 

Pièces jointes

  • Agenda des traitements.xls
    14.5 KB · Affichages: 22
  • Etat des contrôles des RL.xlsm
    126.3 KB · Affichages: 21
  • Agenda des traitements.xls
    14.5 KB · Affichages: 26
  • Agenda des traitements.xls
    14.5 KB · Affichages: 25

Paritec

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Bonjour Anthonyk le forum
bah t'aider oui mais il faut déjà comprendre ce que tu veux et c'est pas gagné, je vais regarder
Tous les jours je sors une extraction : fichier agenda des traitements. Il contient des données de la date du jour
jusqu'à la J+7.
a+
Papou:eek:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Bonjour à tous

si tu penses intelligent de fournir un fichier sans la macro dedans déjà là ??????
C'est autant aussi malin que de créer deux fils pour une même question...
https://www.excel-downloads.com/thr...-dans-un-autre-avec-certains-criteres.219292/
(Là-bas, on n'avait que le code, ici on a les fichier exemples sans le code dedans)

anthonynk
Utilises les balises BBCODE [NOPARSE]
Code:
[/NOPARSE][/B][/COLOR][COLOR=#b22222][FONT=century gothic][I]Ici le code VBA[/I][/FONT][/COLOR][COLOR=#0000cd][B][NOPARSE]
[/NOPARSE]

pour rendre ton message plus agréable à lire. Merci d'avance

Question: Pourquoi passer par CreateObject ?

Suggestion:
Évites tant que possible le recours au Select et autres Activate.
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Bonjour JM le forum
bah toi tu vois tout, mais bon c'est tout de même grave il veut de l'aide et ne fourni même pas les éléments pour que l'on puisse l'aider !!!
bref
a+
Papou:eek:
 

Staple1600

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Bonjour Paritec

Ce qui m'intrigue le plus dans l'histoire c'est ceci
Set MonExcel = CreateObject("Excel.Application")
MonExcel.Visible = True
MonExcel.DisplayAlerts = False

Pourquoi utiliser cela alors qu'on est déjà dans Excel ?

[ironie bienveillante]
PS: Soyons indulgent, cela ne fait que presque 4 ans que le demandeur est xldnaute.
Temps largement insuffisant pour connaitre les us et coutumes du forum ;)
[/ironie bienveillante]
 

Paritec

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Re Jm Anthonyhk le forum
voilà qui va faire l'affaire
a+
Papou:eek:

Code:
Option Explicit
Option Base 1

Sub copier()
    Dim i&, fin&, wbks As Workbook, aa, adr$, bb, n&, a
    adr = ThisWorkbook.Path
    Set wbks = Workbooks.Open(adr & "\Agenda des traitements.xls")
    aa = wbks.ActiveSheet.Range("A10:M" & wbks.ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row)
    wbks.Close
    ReDim bb(UBound(aa), 8): n = 1
    For i = 1 To UBound(aa)
        For Each a In Array(2, 3, 4, 5, 6, 7, 8, 13)
            bb(i, n) = aa(i, a): n = n + 1
        Next a
        n = 1
    Next i
    With Sheets("Etat de contrôle")
        fin = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Cells(fin, 1).Resize(UBound(bb), UBound(bb, 2)) = bb
    End With
End Sub


Edit : Jean Marie, oui mais j'ai essayé de comprendre sa logique mais bon sans succés, par contre vu le fichier ce que je lui ai fait fera l'affaire a+ Bon Week-end
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Re


Paritec
Cela fera l'affaire pour les valeurs, mais pas pour le format, or nous avions ;)
Range("A" & DernLigne).PasteSpecial Paste:=xlPasteFormats

PS:
pas vu trace de ton fichier dans le fil, camarade ;)

EDITION
: Houps j'avais lu de travers :eek:
par contre vu le fichier que je lui ai fait cela fera l'affaire a+ Bon Week-end
ci-dessus ce que j'ai cru lire mais la vérité était ailleurs comme dirait Mulder ;)
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Re Jm Anthonihk le forum
avec le fichier et la macro !!!!!!
une petite différence pour toi il faut Impérativement mettre les deux fichiers dans le même dossier
Tu mets les deux fichiers dans le même dossier et tu ouvres le fichier joint, et tu cliques le bouton copier
a+
Papou:eek:
 

Pièces jointes

  • Etat des contrôles des RL V1.xlsm
    134.4 KB · Affichages: 23

Staple1600

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Re


Paritec
T'es trop gentil ;)
T'as pas vu mon EDITION dans mon précédent message ?
Et pour la recopie du format koman kon fé ? ;)

PS: J'ai pas ouvert ta PJ, alors j'espère que ma question rapport au format est toujours d'actualité ;)
 

Paritec

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Re Jean Marie le forum
oui elle l'est toujours, mais tu sais quand tu vois la macro qui était faite, je pense que ce qu'il obtiendra comme résultat sera bien plus prêt de ses désirs avec ma macro, que ce qu'il obtenait avec la sienne.
Les valeurs sont les bonnes et dans les bonnes colonnes, si le format est important il le redira et je referai différemment
a+
Papou:eek:
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Re

Paritec
CKIL?
Euh pardon C'est qui elle ?
Il semblerait qu'anthonyhk soit de sexe masculin. ;)
En tout c'est ce qu'il déclare dans son profil ;)

T'inquiète si elle lui convient pas (je parle de ta macro), comme il dirait l'autre zouave télévisuel, moi je dis : "J'achéte !"
 

Paritec

XLDnaute Barbatruc
Re : Copier/coller d'une feuille excel vers une autre feuille avec des critères

Re JM Anthonyk le forum
voilà avec les deux possibilités sans et avec formats pour JM
Tu décompresses le dossier sur ton bureau tu ouvres le fichier ""Etat des contrôles des RL V2.xlsm""
et tu cliques sur le bouton que tu souhaites
a+
Papou:eek:
 

Pièces jointes

  • anthonyk V2.zip
    43.3 KB · Affichages: 42
  • anthonyk V2.zip
    43.3 KB · Affichages: 41
  • anthonyk V2.zip
    43.3 KB · Affichages: 26

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 184
dernier inscrit
Di Martino