Copier une ligne automatiquement sous condition

Bonjour à tous,

Je suis nouveau sur le forum, alors merci d'excuser mes erreurs.

J'aide une association (centre équestre) à la création d'outils pour sa gestion.

J'ai créé un fichier excel pour la gestion des reprises (cours)

Sur une feuille on trouve : nom, prénom, niveau puis 20 cellules pour la saisie des dates ou son pris les cours ensuite une cellule qui compte le nombre de cours pris, une cellule ou on saisi le crédit en reprise, une cellule qui compte le solde restants de cours et enfin une cellule ou on entre la date de paiement.

Je souhaite pouvoir copier les lignes automatiquement sur une seconde feuille selon 2 conditions cumulées soit :

1 valeur est au moins présente dans les colonnes date de reprise (cours)

le solde est égale à 0

D'autre part la ligne copier doit venir se positionner dans la seconde feuille à la suite sans supprimer des valeurs existantes (il s'agit en fait d'avoir un archivage dès qu'une carte a été "consommé".

Je sais qu'avec VBA cela est possible mais je suis ultra débutant et à l maison mon mac ne me donne pas accès aux fonctionnalités

Merci pour votre aide

51reprise-test.zip (11.68 Ko)

Bonjour et bienvenue sur le forum

Je ne comprends pas très bien tes formules en colonne Z où tu soustraits un nombre d’heures à un crédit ( ?) .

Il faudrait que tu donnes un exemple de ce que tu veux obtenir sur la fiche « Archive Reprises », à partir de la fiche « Gestion des reprises PONEY »

A te lire

Bonjour

Code Module

Sub Archive()
Application.ScreenUpdating = False
Dim MaCellule As Object, DerLgn As Variant, i
For Each MaCellule In Range("X4", Range("X4").End(xlDown))
If MaCellule > 1 And MaCellule.Offset(, 2) = 0 Then
MaCellule.EntireRow.Cut
i = MaCellule.Row
Sheets("Archive Reprises").Activate
DerLgn = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row + 1
Rows(DerLgn).Select
ActiveSheet.Paste
Range("A1").Select
Sheets("Gestion des reprises-PONEY").Activate
Rows(i).Select
Selection.EntireRow.Delete Shift:=xlUp
End If
Next MaCellule
Application.CutCopyMode = False
Range("A1").Select
End Sub

Cordialement

52reprise-test.zip (23.03 Ko)

Bonjour et merci à vous pour le temps consacré,

Pour gmb, en fait la formule en colonne Z soustraits un nombre de cours pris à un nombre de cours acheter. Je sais les termes ne sont peut être pas adéquates. Je veux obtenir sur la fiche « Archive Reprises » une simple copie pour conservé une historique des dates ou les cours ont été effectué.

Pour Amadéus

Merci pour le retour je teste dès que possible et vous tiens informé.

D'autre part, j'ai commencé à regardé les cours VBA, le langage semble abordable reste à trouver un PC pour approfondir.

Encore merci et à bientôt

Bonjour à tous et bonne année,

Je reviens vers vous car nous avons testé le fichier qui fonctionne à merveille. Cependant est-il possible de modifier la macro pour conserver le nom prénom et niveau après l'archivage sur la première feuille. Je vous joins le dernier fichier que nous avons un peu modifié (ajout d'un niveaux car une carte peut servir pour une famille et donc plusieurs niveaux).

De nouveau un grand merci pour votre aide précieuse.

Bonjour. Meilleurs Voeux

Voir si cela convient

Cordialement

Bonsoir, tous mes vœux également

Merci pour la réponse ultra rapide, je vous tiens informé.

Cordialement

Bonjour à tous,

Je reviens vers vous car nous avons manifestement un bug lorsque que nous procédons à l'archivage.

Nous avons une erreur d'exécution 13 avec le message incompatibilité de type.

En mode débogage il affiche cette ligne en surbrillance : If MaCellule > 1 And MaCellule.Offset(, 2) = 0 Then

Pouvez vous m'aider ?

Je vous joins le fichier

Merci d'avance


Désolé,

Je viens de m'apercevoir qu'une nouvelle contrainte est apparu dans le fichier ce qui pourrait être la cause du problème. En effet il a été mis en place des forfaits au mois sans limite de reprise et cette donnée saisie dans le fichier doit être la cause du bug. Peut-on ignorer ces lignes si l'on à la mention forfait dans la colonne Z "crédits reprises".

Merci encore

Bonjour

Peut-être en "rusant" et sans modifier le Code

Si on attribue une valeur de 100 (ou toute autre valeur numérique) aux forfaits, il suffit de remplacer la formule en colonne AA

=Z5-Y5

par

=SI(Z5="Forfait";100;Z5-Y5)

et tout rentre dans l'ordre

Cordialement

Merci Amadéus,

J'ai trouvé cet après midi une solution en remplaçant dans la liste de validation "Forfait" par une valeur numérique. Ta solution est cependant plus lisible en laissant la mention Forfait apparaître dans le tableau.

Je vous remercie pour votre aide précieuse et clôture donc le sujet.

Bonjour à tous,

Je reviens vers vous car nous rencontrons un problème sur l'archivage. L'utilisation du bouton à bien fonctionner la première fois, seulement lorsque nous avons réutiliser celui-ci rien n'a fonctionné.

Je me permets donc de vous solliciter car malgré une bonne volonté, je suis incapable d'identifier l'erreur.

Je vous mets le fichier à votre disposition et vous remercie à l'avance pour votre aide précieuse.

Bonne journée

Rechercher des sujets similaires à "copier ligne automatiquement condition"