XL 2013 Macro VBA : Copié/Insérer ligne/Collage

Goulou

XLDnaute Nouveau
Bonjour à tous et merci de prendre le temps de me lire.

Voilà mon problème,

Pour que cela soit compréhensible j'ai réduit au minimum les informations.

J'ai deux onglets dans mon fichier Excel : Entry-Data (Données Brutes) et Results (données Traitées)

1. Dans mon onglet Entry-data, dans la colonne A du tableau, je rentre la date. Je souhaiterais sélectionner la dernière cellule qui représente la dernière date active de mon tableau. ( Les dates sont insérer à la main dans le sens chronologique, la date la plus récente est la dernière ajoutée) soit A5

2. Je veux copier cette cellule et aller dans mon onglet Results.

3. Insérer une ligne au dessus de la date la plus récente et coller cette date. Chaque tableau (8) doit ajouter cette nouvelle date. Soit A5 insérer

Je bloque sur l'insertion de la ligne et de conserver la date précédente en la déplaçant d'une case vers le bas

Mon code est le suivant :
Code:
Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A2").Select
    Selection.End(xlDown).Select
    Selection.Copy
    Sheets("Results").Select
    ActiveSheet.Paste
End Sub

Mon fichier joint avec des noms lambdas afin de faciliter la lecture.

je vous remercie,

Guillaume
 

Pièces jointes

  • test.xlsx
    15.9 KB · Affichages: 29
  • test.xlsx
    15.9 KB · Affichages: 38

Goulou

XLDnaute Nouveau
Re : Macro VBA : Copié/Insérer ligne/Collage

Bonjour,

J'ai marqué à la fin de mon poste que j'ai remplacé les dates par des noms lambdas pour simplifier. Ça sera des dates au lieu de ces noms. Cela ne change rien à la macro.

Merci
 

vgendron

XLDnaute Barbatruc
Re : Macro VBA : Copié/Insérer ligne/Collage

Désolé
j'ai remplacé les dates par des noms lambdas pour simplifier.
ca fait l'effet inverse..

Cela ne change rien à la macro.
si justement. Excel fait la différence entre des dates et du texte..

1. Dans mon onglet Entry-data, dans la colonne A du tableau, je rentre la date.
ou ca? quelle ligne?

Je souhaiterais sélectionner la dernière cellule qui représente la dernière date active de mon tableau.

dernier date active.. = celle que tu viens de rentrer?
sélectionner la dernière.. toujours la meme?

( Les dates sont insérer à la main dans le sens chronologique, la date la plus récente est la dernière ajoutée) soit A5

dans ton fichier exemple.. la dernière ajoutée.. en admettant que Poulet soit une date.. c'est A7 pas A5..

donc....

en faisant un effort.. je me dis que tu viens de rentrer la date "poulet" en A7..
oui et?? que veux tu en faire dans la feuille Results?
tu la copies 5 fois? en colonne B D F H J ??

bref.. pas clair du tout..
 

Goulou

XLDnaute Nouveau
Re : Macro VBA : Copié/Insérer ligne/Collage

Bonjour,

Effectivement ce n'est pas très clair.

J'ai remis le fichier avec les dates.


1. Dans le tabeau Entry-Data, Colonne A j'ai mes dates par ordre de la plus ancienne à la plus récente.
Dans mon fichier les dates vont de A2 à A7.

2. Lorsque je rentre une nouvelle date en A8 qui représente la derniere date rentrée. Je veux que la macro soit capable de prendre en compte la dernière date du tableau à chaque fois que j'en ajoute 1.

3. Dans l'onglet Results, je souhaiterais que la derniere cellule copié (Dans notre exemple : A8) viennent s'insérer en A2, C2, D2, E2, G2, I2

4 La nouvelle date est insérée et l'ordre chronologique s'inverse. La date la plus récente est toujours en ligne 2 sous la barre de titre des colonnes A,C,E,G,I.

5. Je veux qu'à chaque fois que je rentre une nouvelle date dans ma colonnne A (Onglet Entry-Data), cette date s'insère dans mes différents tableaux à la ligne 2 (Onglet Results). Les dates sont conservées et glissent d'une ligne vers le bas à chaque ajout d'une nouvelle date.

Est-ce que c'est plus clair ?
 

Pièces jointes

  • test.xlsx
    15.6 KB · Affichages: 28
  • test.xlsx
    15.6 KB · Affichages: 28
Dernière modification par un modérateur:

vgendron

XLDnaute Barbatruc
Re : Macro VBA : Copié/Insérer ligne/Collage

Effectivement.. on y voit un peu plus clair ;-)

donc. proposition ci jointe (qui va certainement évoluer)

comme tu as eu la très bonne idée d'utiliser des tables, il suffit d'ajouter une date dans la feuille Entry-Date en fin de table pour que la table s'ajuste automatiquement (j'ai supprimé l'affichage du quadrillage pour que ce soit plus visible)

ensuite, tu as aussi des tables dans la feuille results..
puiqu'il s'agit de reprendre la table "entryData" en ordre inverse, j'ai utilisé une formule Grande.valeur

la macro se contente donc de rajouter une ligne au haut de chacune des 5 tables feuille Results..
et la formule se recopie automatiquement..
 

Pièces jointes

  • test (7).xlsm
    21.8 KB · Affichages: 31
  • test (7).xlsm
    21.8 KB · Affichages: 31

Goulou

XLDnaute Nouveau
Re : Macro VBA : Copié/Insérer ligne/Collage

Super merci beaucoup.

J'en profite pour te poser une autre question toujours dans le même thème :

Objectif : Créer un bouton me permettant de duppliquer un tableau avec les mêmes mises en formes.

1. (BLEU) Les colonnes A et D sont les colonnes où les données sont ajouter à la main (Date et numéro de la séance)

2. (ROUGE) Les colonnes B C E F G H I J sont les colonnes où les données sont fixes. Le format et le contenu des cellules est conservé

3. (JAUNE) Les colonnes K à AI sont les colonnes où je vais rentrer mes données brutes, je veux qu'elles soient vides lorsque je les colle.

Dans mon exemple, je souhaite que le tableau à partir de A1 jusqu'à A51 soit copié et insérer à la ligne 52. Autant de fois que j'appuis sur le bouton le tableau est duppliqué et insérer en dessous.

merci de ta patience
 

Pièces jointes

  • test 2.xlsx
    25.3 KB · Affichages: 35
  • test 2.xlsx
    25.3 KB · Affichages: 34

Goulou

XLDnaute Nouveau
Re : Macro VBA : Copié/Insérer ligne/Collage

Merci beaucoup vgendron de ton aide :)

Par contre, il ne prend pas en compte Les colonnes Rouges de mon tableau que je veux copier et coller

Bonne continuation
 
Dernière modification par un modérateur:

vgendron

XLDnaute Barbatruc
Re : Macro VBA : Copié/Insérer ligne/Collage

Hello

Dans mon exemple, je souhaite que le tableau à partir de A1 jusqu'à A51 soit copié et insérer à la ligne 52.

j'ai donc pris de A1:A51

maintenant, si le besoin est de copier coller toute la zone A1:J51

suffit de remplacer avec la bonne colonne
Code:
Sub ajoute()
Range("A1:J51").Copy Destination:=Range("A65536").End(xlUp).Offset(1, 0)
End Sub
 

Goulou

XLDnaute Nouveau
Re : Macro VBA : Copié/Insérer ligne/Collage

Je te remercie cela fonctionne très bien :)

En ayant fait le tour des différentes discussions sur le forum et que je ne souhaite pas en ouvrir une.

Mon projet à légèrement changé, finalement je me retrouve avec des dates en doublons sur mon entrée de donnée.

1. Finalement, il faut que je puisse extraire les dates de la colonne A sans doublons dans les tableaux de la feuille résultats.

J'ai regardé effectivement pour utiliser la fonction de filtre avancés pour filtrer sans doublons mais le problème c'est que cela n'est pas automatique, je dois relancer le filtre à chaque fois que j'ajoute une date. Alors que je souhaiterais que ça se fasse automatiquement.

Merci de ton aide
 

vgendron

XLDnaute Barbatruc
Re : Macro VBA : Copié/Insérer ligne/Collage

Hello

Une idée en PJ
Passer par un second tableau "Liste Sans Doublon"
les 5 tables de la feuille Results sont alimentées par ce nouveau tableau
 

Pièces jointes

  • test (7) (1).xlsm
    22 KB · Affichages: 44
  • test (7) (1).xlsm
    22 KB · Affichages: 51

Discussions similaires

Statistiques des forums

Discussions
312 845
Messages
2 092 764
Membres
105 529
dernier inscrit
StarExcel