Recopie dans une autre feuille sous condition (novice macro)

Bonjour à tous,

Je cherche à créer une macro mais je n'y arrive pas.

Après 2 jours de recherche et d'essais, je m'adresse à vous.

J'ai créé un classeur avec 5 feuilles "COURSES", "PLAT", "TROT", "MONTE", "OBSTACLES".

Dans la colonne C de "COURSES", il y a P ou T ou M ou O.

Je souhaiterais copier les lignes où figurent "P" dans la feuille "PLAT", les "T" dans la feuille "TROT" et ainsi de suite.

Pour l’utilisation, j’utiliserai un bouton associé à cette macro.

Je sélectionnerai les lignes à recopier dans la feuille "COURSES" avant d’appuyer sur un bouton associé à cette macro.

Je voudrais bien sûr que ces lignes se recopient à partir de la première ligne vide de la feuille de destination.

Qui connait la formule magique ?

Merci beaucoup de m'aider, je suis autodidacte.

mais là, je sèche !!!

Bonjour,

Quelques questions :

  • tu copies quelles cellules dans ta ligne
  • tu les copies vers quelles cellules dans la feuille P, T ect... ?

Le mieux est de joindre ton fichier. Ce sera plus rapide et facile de te donner une solution.

Amicalement

Dan

Ci-joint mon fichier version light

https://www.excel-pratique.com/~files/doc2/fWgi0pat76.xls

Dans la feuille course, à chaque fois que je saisis des nouvelle ligne, ces lignes puissent être recopiée directement dans une autre feuille en fonction de la valeur en colonne C.

(donc à la fin de ma nouvelle saisie je voudrais lancer la macro pour recopier entièrement ces lignes).

Merci d'avance.

Pat

re,

ok mais repars tu à zéro sur ta feuille course. En gros il faut que je sache si après l'exécution de ta macro les lignes peuvent être effacées de ta feuille Courses.

Le cas contraire, tu pourrais avoir des doublons dans chacune de tes feuilles.

Merci de tes précisions

A te relire

Dan

J'aurai voulu historiser toute ma saisie dans la feuille "course".

Si cela pose des problème de doublon alors je m'arrangerai pour enregistrer ailleurs une copie de toute la saisie cumulée.

Donc il faudrait donc que je rentre uniquement les nouvelles saisies dans cette feuille "course" (sachant qu'une fois la macro exécutée les lignes copies disparaissent)

Je joins le fichier (feuille 1 modifiée) en conséquence avec uniquement les nouvelles saisies.

https://www.excel-pratique.com/~files/doc2/lK0TKpat76.xls

Merci de ton aide Dan

5pointage-test.xlsm (210.00 Ko)

re,

Ton fichier en retour avec un bouton sur la feuille "courses".

Une fois ta feuille "courses" complétée, clique sur le bouton pour copier les lignes sur les différentes feuilles.

Fichier

Amicalement

Dan

Merci beaucoup Dan pour ta réponse rapide.

ça marche impec, mais il reste quand même un problème:(je suis désolé, c'est de ma faute mon fichier n'était pas assez rempli!!)

la recopie ne se fait donc pas vers la première ligne vide mais après la dernière ligne qui contient de la saisie (nuance); en effet, je souhaiterai conserver sous les lignes de données des lignes reservées aux totaux ou stats.

En résumé, j'ai besoin d'insérer une nouvelle ligne sous la dernière ligne de saisie en feuille de destination.(ceci afin d'éviter de ne plus avoir de ligne vides disponible entre les données du haut de la feuille et les lignes de totaux ou stats.)

Je fais de monmieux pour être clair ....

Je te renvoie le fichier modifié.

https://www.excel-pratique.com/~files/doc2/LocRDpat76_a.xls

re,

Pour faire simple on peut rajouter une ligne dans le code qui mettrait "Total-Stat" (ou autre chose) sur la dernière ligne en cellule A13 (ton exemple) et la colorier en vert comme tu l'as fait.

Cela te conviendrait ?

A te relire

Dan

DAN

As-tu reçu mon lien et mon message sur ta messagerie ?

@ bientôt

PAT

Bonsoir

Sub exporter()

Range("H65536").End(xlUp).Offset(1, -5).Select

R = Selection

Select Case R

Case Is = "T"
Selection.Offset(0, 4).Select
Range(Selection, Selection.Offset(0, -6)).Copy
Sheets("TROT").Select
Range("A65536").End(xlUp).EntireRow.Insert
Application.CutCopyMode = False
Sheets("COURSES").Select
Selection.Offset(0, 1) = "Exporter"
Case Is = "O"
Selection.Offset(0, 4).Select
Range(Selection, Selection.Offset(0, -6)).Copy
Sheets("OBSTACLE").Select
Range("A65536").End(xlUp).EntireRow.Insert
Application.CutCopyMode = False
Sheets("COURSES").Select
Selection.Offset(0, 1) = "Exporter"
End Select

End Sub

Tu trouveras une proposition moin sexy, couplée avec celle de NAD DAN, désolé je suis pas encore au niveau pour te la proposer.

Amicalement

Edit Dan : Post supprimé - Doublon avec le post précédent

Re,

Oui Pat76, j'ai bien reçu ton message. Je regarde dès que j'ai un moment puis te donnerai le code final.

Je te tiens au courant

Air si tu me le permets, il faut éviter les "Select" dans les codes qui ne font que ralentir l'exécution d'une macro.

Faire en sorte que toutes les variables que tu utilises soient déclarées avant leur utilisation.

Bonne soirée à vous deux

Dan

Merci à vous deux pour votre aide... on approche du but

DAN, j'attends avec impatience ta solution.

PAT

Re,

Merci de ton fichier bien trop lourd pour le forum.

Pour le forum je poste donc la solution :

Sub copie()
'Macro dan pour Pat76
'http://www.excel-pratique.com/forum/viewtopic.php?t=13584
Dim plage As Range, cel As Range
Dim dlg As Integer
With Worksheets("Saisie")
Set plage = .Range("D" & .Range("o2").End(xlDown)(2).Row & ":D" & .Range("A2").End(xlDown)(2).Row - 1)
For Each cel In plage
Select Case cel
Case Is = "T": course = "Trot"
Case Is = "H": course = "Haies"
Case Is = "SC": course = "Steeple"
Case Is = "P": course = "Plat"
Case Is = "M": course = "Monte"
End Select
dlg = Worksheets(course).Range("A2").End(xlDown)(2).Row
.Range(Cells(cel.Row, "A"), Cells(cel.Row, "M")).Copy Worksheets(course).Range("A" & dlg)
With Worksheets(course)
    .Range("A" & dlg).Interior.ColorIndex = xlNone
    .Range("A" & dlg + 1).EntireRow.Insert Shift:=xlDown
End With
.Range("O" & .Range("o2").End(xlDown)(2).Row) = Format(Date, "dd/mm/yy")
Next
End With
End Sub

Amicalement

Dan

Dan,

C'est exactement ce que je voulais comme résultat !

Je te remercie pour ta disponibilité et la qualité de ton aide.

(désolé pour la taille de mon fichier ...)

@ plus

Pat

Rechercher des sujets similaires à "recopie feuille condition novice macro"