macro copie de données

  • Initiateur de la discussion Initiateur de la discussion Seb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Seb

Guest
bonjour le FORUM nocturne !

je cherche à faire qu'une macro me copie des données sur une feuille du même classeur ... et que chaque copie des données aille à côté des autres précédemment enregistrées.

merci par avance !!!!

Seb
 

Pièces jointes

Salut Seb !

Une macro simple.

Sub Macro1()
Range("D5:E29").Select
Selection.Copy
Sheets("sauvegarde").Select
If Range("D5") <> "" Then
Range("D5").End(xlToRight).Offset(0, 1).Select
Else: Range("D5").Select
End If
ActiveSheet.Paste
End Sub


@ +

Moa
 

Pièces jointes

Hello "Moa"

je te remercie bcp c'est ce exactement ce que je demandais !

merci encore ... et si j'abusais, j'aimerais savoir si tu pouvais m'expliquer ce que chaque ligne de codes signifie. Je suis un jeune novice en VB ... je suis en train d'apprendre.

A+

Seb
 
Salut !

Range("D5:E29").Select

Selectionner Plage de Cellule de D5 à E9

Selection.Copy

Copier dans le presse-papier tout le contenu

Selectionner Feuille Nommée "sauvegarde"

Notion If Then Else : Si Alors Sinon

Si tel condition est remplie Alors Faire Blabla Sibon Faire autre chose.

If Range("D5") <> "" Then :

Si la Cellule D5 n'est pas vide Alors

Range("D5").End(xlToRight).

Va en cellule D5, Va à la dernière cellule non vide à sa droite

Offset(0, 1).Select

Fait un décalage de 0 ligne et une colonne et sélectionne cette cellule

Else: Range("D5").Select : Sinon, si la condition n'est pas respectée, alors
sélectionne la Cellule D5

Active.Sheet.Paste : Copie le contenu du presse-papier précedemnt gardé en mémoire.

Et voilà, c'est une forme très simple, mais il y a d'autres manières plus évoluées.

Cette fonctionnera tant que ce cas de figure sera respecté, mais si par exemple tu avais des colonnes vides dans ton tableau, elle ne fonctionnerait plus dès le deuxième lancement.

Il faudrait alors ne plus partir de ta cellule D5, mais de la dernière colonne de ta feuille et faire un "End (xlToLeft)".

Maintenant "ActiveSheet.Paste", te copie toute la cellule, cad le contenu, la formule, le format etc...

Si tu ne voulais que la valeur il faudrait faire un Paste special=xlValue.

Le mieux pour apprendre et faire une macro, est de lancer l'enregistreur de macro, tu fais toutes tes manips manuellement, puis tu ouvres ta macro Via Vbe et tu la modifies pour soit y ajouter une boucle de test ou simplement virer les termes en trop.

@ +

Mo
 
Je peux compliquer l'affaire?
Disons que dans SauvegardePhegor.zip que les lignes et colonnes A1:E15 soit remplies. Et admettons que la feuille excel dite "sauvegarde" soit une feuille excel de presentation differente (que j'appele PSD) que celle de la page saisie (SAISI). Je veux copier les cellules "chats" - "Noir" et "chien" - "blanc" dont à priori je connais pas l'emplacement exact dans la matrice A1:E15 de PSD.
J'ai bien essayé avec rechercheV et rechercheH mais impossible d'incrementer à une ligne inferieur.
J'espere avoir été clair.
Merci d'avance.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour