Fusionner 2 feuilles

Karine11

XLDnaute Nouveau
Bonjour à tous!

J'ai une nouvelle fois besoin de vous!!!!
Voilà, je souhaite créer une table visite médicale et j'ai deux sources excel:
- une base de donnée où l'extraction se fait automatiquement car c'est là que sont inscrits les nouveaux salariés,
- et une ancienne base de donnée avec les anciens salariés
Je n'arrive pas à les regrouper dans un seul tableau et qu'il se mettent pas ordre alpha....

Je pense qu'avec les fichiers se sera plus parlant.... en j'espère!

Merci!
 

Pièces jointes

  • Nouveaux salariés.xlsx
    11.8 KB · Affichages: 126
  • Anciens salariés.xlsx
    12.9 KB · Affichages: 140
  • Listing salariés.xlsx
    15.2 KB · Affichages: 99

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 feuilles

Bonjour


Je n'arrive pas à les regrouper dans un seul tableau et qu'il se mettent pas ordre alpha....
Tu ne veux pas de tri alphabétique? ou tu en veux un ? ;)

J'ai ouvert tes trois fichiers dans la même instance d'Excel
puis j'ai fait les manipulations suivantes (ici captées par l'enregistreur de macros)
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 22/07/2012 par Staple1600
'
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Windows("Listing salariés.xlsx").Activate
    Range("C1").Select
    ActiveSheet.Paste
    Windows("Anciens salariés.xlsx").Activate
    Windows("Nouveaux salariés.xlsx").Activate
    Range("A1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Listing salariés.xlsx").Activate
    Range("C317").Select
    ActiveSheet.Paste
    Rows("317:317").Select
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlUp
    Range("C1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Range("C1:C454").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "B1"), Unique:=True
    Columns("C:C").Select
    Selection.Delete Shift:=xlToLeft
    Range("B1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

Au final j'obtiens une liste de 326 nons (en ayant supprimé les doublons)

Tu es d'accord avec ce résultat?

PS: Tu peux tester la macro (en ayant au préalable ouvert tes 3 fichiers), elle devrait fonctionner telle quelle sur ton PC.
Le classeur actif où est stocké la macro est AnciensSalariés.xlsx.
C'est donc de ce classeur qu'il faut lancer la macro.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 feuilles

Re


Une version plus "propre" et plus à ma sauce avec commentaires en sus
VB:
Sub a()
Dim wbk As Workbook: Set wbk = Workbooks("Nouveaux salariés.xlsx")
Dim r1, r2, r3, fin&
Set r1 = Workbooks("Anciens salariés.xlsx").Sheets(1).[A1].CurrentRegion
Set r2 = wbk.Sheets(1).Range("A2:A" & wbk.Sheets(1).[A65536].End(xlUp).Row)
Set r3 = Workbooks("Listing salariés.xlsx").Sheets(1).[A1]
'recopie des feuilles dans Listing salariés
r1.Copy r3
fin = Workbooks("Listing salariés.xlsx").Sheets(1).[A65536].End(xlUp).Row + 1
r2.Copy Workbooks("Listing salariés.xlsx").Sheets(1).Cells(fin, "A")
'suppression des doublons et tri alpha
With Workbooks("Listing salariés.xlsx").Sheets(1)
    .Range("A1").CurrentRegion.Sort Key1:=.Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal
    .Range("A1").CurrentRegion.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range( _
            "B1"), Unique:=True
    With .Columns("B:B") ' mise en forme
    .Columns.AutoFit
    .Font.Name = "Arial"
    .Font.Size = 10
    End With
End With
End Sub
 

Karine11

XLDnaute Nouveau
Re : Fusionner 2 feuilles

Merci de m'avoir consacré de ton temps, mais cela ne résout pas mon problème!
Je souhaite que les nouveaux salariés prochainement inscrit sur le feuille nouveaux salariés s'insert automatiquement sur la feuille Listing salariés dans je dois garder la copie automatique.
Une idée?
Merci.
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 feuilles

Re

Ah bon?

Tu as essayé le code que je te propose?

Pourtant, il fait ce que tu demandes
Code:
Je n'arrive pas à les regrouper dans un seul tableau et qu'il se mettent pas ordre alpha....
sauf que le tri alpha se fait (comme demandé par contre dans ton classeur)

C'est dans cette liste que je voudrais inserer les anciens salariés et mettre par ordre alpha
 
Dernière édition:

Karine11

XLDnaute Nouveau
Re : Fusionner 2 feuilles

Merci pour ton aide, je crois que ta réponse est trop complexe pour moi qui suis novice sur excel... Macro?? VBA?? :confused: Tout celà ne me parle pas même en faisant des recherche sur internet j'ai du mal à comprendre!! Mais encore merci pour ton aide!
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 feuilles

Bonjour


Ici le noviciat dure moins longtemps d'au couvent des Augustines ;)
Donc pour lancer une macro:
1) Quand tu es dans Excel, tu appuies simultanément sur les touches ALT et F11
La tu te retrouves dans ce qu'on appelle la salle des Délices, communément nommée Microsoft Visual Basic Editor (ou VBE pour les fainéants du clavier comme moi ;)
2)Tu vas dans le menu: Insertion et tu choisis Module
Tu y copies la macro présente dans mon précédent message
3)Puis tu retournes dans Excel, en faisant : ALT+Q
4) Là, tu fais Outils/Macros/ et tu sélectionnes la macro que tu veux Exécuter

Un petit test pour voir si mes explications sont claires
Essaie d'exécuter la petit macro ci-dessous
Code:
Sub MaPremiereMACRO()
Dim JeSuis As String, MonMessage As String
JeSuis = Application.UserName
MonMessage = "Bonjour à toi, " & JeSuis & vbCrLf & vbCrLf
MonMessage = MonMessage & "Nous sommes le: " & Date & ", il est: " & Time
MsgBox MonMessage, vbInformation, "Test"
End Sub

Est-ce que quelque chose s'est bien affiché sur ton écran ?
 

Karine11

XLDnaute Nouveau
Re : Fusionner 2 feuilles

Hey super Prof!!!
Le test a bien fonctionné et je comprend mieux le principe, je te remercie!
Mais créer moi-même une macro, c'est pas gagnié!!!
Les fichiers que j'ai mis n'étaient que des exemples pour essayer de compendre et de faire pas moi-même...
je t'ai mis le vrai fichier... si tu peux regarder...
En tout cas merci beaucoup pour ton aide!!!
 

Karine11

XLDnaute Nouveau
Re : Fusionner 2 feuilles

Le fichier...
En faite c'est les noms de l'historique que je souhaite intégrer à ma base visite médicale, mais comme tu a pu le voir ma base visite médicale est alimentée par une base de donné salarié qui sera mise à jour donc il faut consserver l'incrémination! (je ne peux pas passer cette base de donnée salarié car elle est confidentielle...)
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 feuilles

Bonsoir

OUKILÉ le "vrai fichier"?
Quand un fichier contient des données confidentielels, il suffit de l'anonyser en créant une copie avec des noms fictifs
(Mettre en A1 NOM1 puis recopier vers le bas)
ou pour continuer l'apprentissage "macrotique", Exécute la macro ci-dessous dans un nouveau classeur
Code:
Sub WE_ARE_ANONYMOUS()
Dim EXEMPLE As Workbook:Set EXEMPLE = Workbooks.Add(xlWBATWorksheet)
With EXEMPLE.Sheets(1)
With .Range("A1:B1")
    .Value = Array("NOMS", "PRENOMS")
    .Font.Bold = True
End With
    With .Range("A2:A50")
        .FormulaLocal = "=""NOM""&LIGNE()-1"
        .Value = .Value
            With .Offset(, 1)
            .FormulaLocal = "=""Prenom""&LIGNE()-1"
            .Value = .Value
            End With
    End With
End With
End Sub

Je ne le vois point

PS: As-tu essayer la macro du message#3 sur tes fichiers joints dans ton premier message?
 
Dernière édition:

Karine11

XLDnaute Nouveau
Re : Fusionner 2 feuilles

Bonjour Staple1600!
Voici les fichiers... J'ai fais comme tu me l'a conseillé pour l'anonima!
Par contre mes fichiers sont trop volumineux pour le téléchargement, je les ai donc réduits!
J'espère que mes explications seront claires...
Je vais continuer ma formation Macro!
Merci super prof!!!
 

Pièces jointes

  • Copie de Base de donnée personnel.xls
    23 KB · Affichages: 74
  • Copie de Base de donnée personnel.xls
    23 KB · Affichages: 74
  • Copie de Base de donnée personnel.xls
    23 KB · Affichages: 69
  • Copie de Tableau de bord VM.xls
    225.5 KB · Affichages: 61
  • Copie de Tableau de bord VM.xls
    225.5 KB · Affichages: 69
  • Copie de Tableau de bord VM.xls
    225.5 KB · Affichages: 65

Karine11

XLDnaute Nouveau
Re : Fusionner 2 feuilles

Bonjour!
J'ai essayé la macro que tu as créé pour mon premier fichier et je suis fière de moi car j'y arrive!!!
Enfin je sais maintenant insérer une macro mais la créer....
Si tu as le temps aujourd'hui pour y jeter un oeil ça me permettrai d'avancer sur d'autres tableaux!
Merci et bonne journéé!!
 

Staple1600

XLDnaute Barbatruc
Re : Fusionner 2 feuilles

Bonjour


Content que tu prennes plaisir à faire du VBA.

Aujoursd'hui, ca va être short aussi, c'est la journée pique-nique avec les collégues.

je suis en train de finir dé découper mon cake au jambon
et de remplir la glacière.

J'espère que mes petits camarades du forum viendront prendre le relai pour te filer un coup de main.

Quand à moi ce sera pas avant 19 heures ce soir.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 836
Messages
2 092 652
Membres
105 479
dernier inscrit
chaussadas.renaud