1 pièce(s) jointe(s)
VBA Copier/coller en fonction de critères
Bonjour/Bonsoir à tous,
Je suis débutant VBA et j'ai un fichier à automatiser mais je n'y arrive pas ! Si vous pouvez m'aider, ce serait top !!! Merci :) :
Je vous donne un fichier exemple qui va permettre de mieux vous faire comprendre mon problème Pièce jointe 583264
Mon document comporte 5 feuilles : 1 feuille BDD / 4 feuilles où je copie colle les données en fonction de critères :
- "BDD" -> Liste que je reçois des RH -> Je colle les données RH (aucun VBA à faire)
- "Liste nominative" -> Liste de toutes les personnes
- "Liste nominative CDI & CDD" -> Uniquement les personnes en CDI et CDD
- "Liste nominative alternants" -> Uniquement les personnes en PRO / CAP / ST
- "ETS" -> rien à faire
Dans la feuille BDD :
1) je colle les données RH de la colonne C -> L
2) Colonne A : formule qui reprend les données de la colonne E
3) Colonne B : formule qui concatène (nom/prénom) colonne C et D
4) Colonne M : formule qui consolide la colonne K et L (Si L est vide alors K / Si L n'est pas vide alors L)
5) Colonne N : formule recherchev avec la feuille "ETS"
Pour la feuille " Liste nominative " :
1) Je copie les données "BDD" : TOUT LE MONDE
2) Je colle dans la feuille "Liste nominative" en commençant à la cellule A5
Voici une macro que j'ai créé et qui fonctionne même si elle est très loin d'être top (je commence le VBA)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| Sub Liste_Nominative()
'Je copie le numéro de matricule + nom prénom
Sheets("XAABU026").Select
Range("A2:B10000").Select
Selection.Copy
Sheets("Liste nominative").Select
Range("A5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Je copie les colonne F (numéro affectation)
Sheets("XAABU026").Select
Range("F2:F10000").Select
Selection.Copy
Sheets("Liste nominative").Select
Range("C5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Je copie les colonne N (libellé affectation)
Sheets("XAABU026").Select
Range("N2:N10000").Select
Selection.Copy
Sheets("Liste nominative").Select
Range("D5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Je copie les colonne G à J (affectation)
Sheets("XAABU026").Select
Range("G2:J10000").Select
Selection.Copy
Sheets("Liste nominative").Select
Range("E5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'Je copie les colonne M (Contrat)
Sheets("XAABU026").Select
Range("M2:M10000").Select
Selection.Copy
Sheets("Liste nominative").Select
Range("I5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub |
Pour la feuille " Liste nominative CDI & CDD " :
1) Je copie les données "BDD" : UNIQUEMENT POUR LES PERSONNES EN CDI ET CDD (colonne M)
2) Je colle dans la feuille "Liste nominative CDI & CDD" en commençant à la cellule A5
Pour la feuille " Liste nominative alternants " :
1) Je copie les données "BDD" : UNIQUEMENT POUR LES PERSONNES EN CAP, PRO, ST (colonne M)
2) Je colle dans la feuille "Liste nominative CDI & CDD" en commençant à la cellule A5
A expliquer c'est un peu difficile donc le document qui accompagne ce post va vous aider à comprendre (je l'espère)
Je vous remercie d'avance pour l'aide que vous allez m'apporter !
PS : Si vous connaissez des livres / vidéos pour apprendre le VBA je suis preneur !! :)
Merci et bonne soirée :)
Alexis
Pièce jointe 583264