[Résolu] copier certaines cellules selon deux critères dans une autre feuille

tsikoudia91

XLDnaute Nouveau
Bonjour à tous,

Je voudrais dans un fichier Excel pouvoir copier une sélection de cellules dans une autre feuille avec un ou deux critères de recherche.

J'ai pensé bien sûr à trier les données et ensuite les copier/coller manuellement mais j'ai une centaine de ce type de fichiers à traiter. :eek:

J'ai également pensé à la fonction Excel VLOOKUP mais utiliser VBA me semble plus adéquat (ou pas).

Le document ci-joint est volontairement épuré pour ne laisser que les colonnes/feuilles les plus pertinentes.

Mon ficher se présente sous la forme de 4 feuilles.

  • 1ère feuille : "Recap" = toutes les formations suivies.
  • 2ème feuille : "Participant" = extraction des formations suivies en tant que participant et seulement en interne
  • 3ème feuille : "Elearning" = extraction des formations suivies au moyen du e-learning.
  • 4ème feuille : "Intervenant" = extraction des formations suivies en tant que intervenant et seulement en interne


Google n'étant pas fait que pour les autres, j'ai pu trouver un code VBA qui pouvait copier les données avec un seul critère de recherche mais aussi les données de toute la ligne alors que je voudrais des colonnes spécifiques. Est-il possible de créer un code indiquant qu'il faut copier la ligne SAUF certaines colonnes ?


Ce que je voudrais obtenir, idéalement :

  • pour la feuille "Participant", les formations suivies en tant que participant ET en interne avec uniquement les données figurant dans les colonnes "Date" "Formation" Durée" (colonnes A, C, E) ;
  • pour la feuille "E-learning" les formations suivies au moyen du e-learning avec uniquement les données figurant dans les colonnes "Date" "Formation" Durée" (colonnes A, C, E) ; et
  • pour la feuille "Intervenant", les formations suivies en tant qu'intervenant ET en interne avec uniquement les données figurant dans les colonnes "Date" "Formation" Durée" et "Heures validées" (colonnes A, C, E et G).


Ne doivent donc pas figurer dans les autres feuilles les formations suivies à l'extérieur car les données exportées serviront à établir des attestations internes.

Les critères de recherche sont dans les colonnes B ("Statut" participant ou intervenant) et D ("Lieu" interne, externe ou e-learning).

Un code figure sur la feuille "E-learning" (un seul critère mais toute la ligne est sélectionnée).

*****
Sub Elearning()

Dim LSearchRow As Integer
Dim LCopyToRow As Integer

On Error GoTo Err_Execute

'on commence la recherche en ligne 2 de la feuille 1
LSearchRow = 2

'on se prépare à copier les données trouvées dans la ligne 2 de la feuille 5
LCopyToRow = 2

While Len(Range("A" & CStr(LSearchRow)).Value) > 0

'Si la valeur dans la colonne D = "E-learning", la ligne entière est copiée en feuille 5
If Range("D" & CStr(LSearchRow)).Value = "E-Learning" Then

'La ligne de la feuille 1 correspondante est sélectionnée et copiée
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy

'La ligne est collée dans la feuille 5
Sheets("Elearning").Select
Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
ActiveSheet.Paste

'La ligne suivante de la feuille 1 sera copiée sur la ligne suivante de la feuille 5
LCopyToRow = LCopyToRow + 1

'Retour en feuille 1 pour continuer la recherche
Sheets("Recap").Select

End If

LSearchRow = LSearchRow + 1

Wend

'Position dans la cellule A2
Application.CutCopyMode = False
Range("A2").Select

MsgBox "Les données correspondantes ont été copiées."

Exit Sub

Err_Execute:
MsgBox "Une erreur est survenue."

End Sub

**********
Merci d'avance pour toute l'aide que vous voudrez bien m'apporter.

G.
 

Pièces jointes

  • Attestations.xls
    56 KB · Affichages: 131
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : Excel/VBA : copier certaines cellules selon deux critères dans une autre feuille

Bonjour tsikoudia91, Une proposition, le code est dans le code de la feuille, Cordialement
 

Pièces jointes

  • Attestations(2).xls
    56.5 KB · Affichages: 374

tsikoudia91

XLDnaute Nouveau
Re : Excel/VBA : copier certaines cellules selon deux critères dans une autre feuille

autre question : si je modifie mon document (insertion/suppression de colonnes), existe-t'il un moyen de nommer les colonnes pour éviter d'avoir à modifier le code ou dois-je m'en tenir au numéro des colonnes ? (oula, même en tapant ma question j'ai du mal à la comprendre... :eek: )

Je m'explique :
puis-je remplacer Cells(i, 2) par Cells(i, "statut") par exemple ?

Merci.

G.
 

Efgé

XLDnaute Barbatruc
Re : Excel/VBA: copier certaines cellules selon deux critères dans une autre feuille

RE, En selectionnant les colonnes A, C, E j'ai mis un nom Zone1, et Zone2 pour les colonnes A, C, E ,G. Cordialement
 

Pièces jointes

  • Attestations(3).xls
    57 KB · Affichages: 135

tsikoudia91

XLDnaute Nouveau
Re : Excel/VBA: copier certaines cellules selon deux critères dans une autre feuille

merci beaucoup la version 4 me semble plus claire mais quand je l'applique à mon fichier Excel avec toutes les colonnes que j'avais enlevées pour plus de clarté, j'ai une erreur d'exécution "424" (Objet requis). :confused:
Ci-joint mon fichier, avec les colonnes/lignes qui figurent dans le fichier initial.

(raaaah)
 

Pièces jointes

  • Attestations v2.xls
    52 KB · Affichages: 185

Efgé

XLDnaute Barbatruc
Re : Excel/VBA: copier certaines cellules selon deux critères dans une autre feuille

Re
Si tu veux utiliser des plages nommées, il faudrait peut être les créer :D (Selectionne la colonne A, puis tape dans la zone a gauche de la barre de formule "Date" et ainsi de suite pour les autres colonnes)
Cordialement
 

tsikoudia91

XLDnaute Nouveau
Re : Excel/VBA: copier certaines cellules selon deux critères dans une autre feuille

OMFG si je n'affiche pas la barre des formules, je vais avoir effectivement du mal à comprendre... :eek:

Merci de ta patience et bonne soirée :D
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16