Transfert de lignes - Modification macro

Bonsoir,

J'utilise une macro avec bouton, sur des onglets s'étalant de 1 à 31 selon les mois, pour transférer des données d'un jour à l'autre sous conditions.

Sauriez-vous modifier la formule ci-après, pour la rendre commune à toutes les feuilles afin d'alimenter une base située après le dernier jour?

Peut-on adapter cette macro pour qu'elle ne puisse pas recopier les mêmes lignes si le bouton est activé deux fois par mégarde?

Merci.

Sub transfertfeuille()
          Dim n As Byte, lig As Long
          n = ActiveSheet.Index  'défini le numéro de la feuille active
               For lig = 13 To Sheets(n).Range("B" & Rows.Count).End(xlUp).Row 'de la ligne 13 à la dernière ligne rempli de la feulle active
             Sheets(n).Range("B" & lig & ":E" & lig).Copy Destination:=Sheets(n + 1).Cells(Sheets(n + 1).[B65536].End(xlUp).Row + 1, 2)
             Next lig
        End Sub

Bonsoir

Curtis Newton a écrit :

Sauriez-vous modifier la formule ci-après, pour la rendre commune à toutes les feuilles afin d'alimenter une base située après le dernier jour?

A voir

A la vue de ton code tu copies de la page 1 (x) vers la page 2 (x+1) ligne par ligne

Surement que l'on peut faire par bloc entier (B13:E" ligne de fin)

Curtis Newton a écrit :

Peut-on adapter cette macro pour qu'elle ne puisse pas recopier les mêmes lignes si le bouton est activé deux fois par mégarde?

A voir

Dans ce cas soit on recherche une donnée unique commune à la page source et à la page de destination et si l'on trouve cette donnée on écrit dessus

On marque la ligne copiée et lors du clic suivant, on teste cette marque

Mais pour adapter cette macro il faut impérativement ton fichier

Merci Banzaï64,

Dans le fichier joint, j'ai exploité le code en module 8, en lui soustrayant la ligne avec la condition "if". La suite, je ne maîtrise plus.

Banzai64 a écrit :

Bonsoir

Curtis Newton a écrit :

Sauriez-vous modifier la formule ci-après, pour la rendre commune à toutes les feuilles afin d'alimenter une base située après le dernier jour?

A voir

A la vue de ton code tu copies de la page 1 (x) vers la page 2 (x+1) ligne par ligne

Surement que l'on peut faire par bloc entier (B13:E" ligne de fin)

Curtis Newton a écrit :

Peut-on adapter cette macro pour qu'elle ne puisse pas recopier les mêmes lignes si le bouton est activé deux fois par mégarde?

A voir

Dans ce cas soit on recherche une donnée unique commune à la page source et à la page de destination et si l'on trouve cette donnée on écrit dessus

On marque la ligne copiée et lors du clic suivant, on teste cette marque

Mais pour adapter cette macro il faut impérativement ton fichier

Bonjour

N'appuies pas sur "Citer", cela encombre le message inutilement, appuies sur "Répondre" en bas à gauche du dernier message

Peux tu préciser

Curtis Newton a écrit :

Sauriez-vous modifier la formule ci-après, pour la rendre commune à toutes les feuilles afin d'alimenter une base située après le dernier jour?

car actuellement ta macro est commune à toutes les pages contenant le bouton "Report consignes - dossiers à traiter"

Pour neutraliser l'appuie successif sur le bouton, j'ai repris l'idée de marquer la ligne copiée (on peut changer le marquage, la colonne (qui peut être masquée) )

A tester

Excellent comme procédé Banzaï, cela me convient parfaitement.

Je dirais même que laisser l'inscription "ligne copiée" assure visuellement le bon transfert des données sur la page suivante.

Ma première question traitait du transfert de toutes les lignes écrites écrites du mois entier dans une base. Je sais bidouiller des lignes de commande mais cela reste limité.

La base de données sera exploitée comme moteur de recherche à postériori.

Marco

Bonjour

Il faut préciser certains points

Quelles lignes sont à copier ?

Dans le classeur, en plus des feuilles des jours, il n'y aura que 2 feuilles supplémentaires (Liste et Base de données) ?

A suivre

Oui, c'est exactement cela, il y aura deux feuilles, en plus des jours du mois.

Les lignes renseignés à reporter dans la base, sont celles comprises dans la plage A13:C106 (je précise bien A13 et non B13).

Merci par avance.

Bonjour

Voilà que ta réponse amène d'autres questions

Curtis Newton a écrit :

la plage A13:C106

Donc la date du jour,heure et Objet ?

On ne recopie pas Commentaires ni suite donnée

Il faut modifier les entêtes des colonnes de la page "Base de données" ?

Car tu as Heure, Objet, Commentaires et suite donnée

A suivre

Ah, Pardon pour cet oubli.

Dans la base de données, sont recopiées les lignes entièrement, à partir de la 13 ème de chaque feuille.

Ce qui apparait sur la feuille Base de données, j'ai omis de l'agencer en conséquence.

Bonjour

A tester

La boucle est bouclé,

Le fichier fonctionne admirablement bien.

Une petite mise en page est le fichier sera prêt à l'emploi.

Je ne te remercierais jamais assez de m'avoir apporter ton aide.

Rechercher des sujets similaires à "transfert lignes modification macro"